repo descriptions updated
This commit is contained in:
@@ -49,3 +49,12 @@ venv/
|
||||
.idea/
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Maintainer-only development context (never commit)
|
||||
.internal/
|
||||
AI_CONTENT.md
|
||||
AI_CONTENT_ANALYSE.txt
|
||||
AI_CONTEXT.md
|
||||
AI_CONTEXT_ANALYSE.txt
|
||||
DEVELOPMENT_NOTES.md
|
||||
DEVELOPMENT_CONTEXT.md
|
||||
|
||||
+10
-17
@@ -1,26 +1,19 @@
|
||||
# Contributing to AssetManager
|
||||
|
||||
Contributions, bug reports, and forks are welcome.
|
||||
Contributions and bug reports are welcome.
|
||||
|
||||
## Pull requests
|
||||
|
||||
- A pull request is a proposal. The maintainer decides whether, when, and in which form it is included.
|
||||
- By intentionally submitting a contribution, you confirm that you are authorized to publish it and that it may be licensed under the Apache License 2.0.
|
||||
- Do not copy third-party source code, graphics, or text without a demonstrably compatible license and all required copyright or license notices.
|
||||
- Mention other products in public source code, comments, release notes, and documentation only when documenting an actual integration, dependency, or required compatibility. Pure product comparisons do not belong in the public source tree.
|
||||
- Keep changes focused on the affected area and avoid modifying existing functionality without a valid technical reason.
|
||||
- Add every new user-visible string to the existing translation system for all supported languages.
|
||||
- New or changed user interfaces must work in both light and dark mode.
|
||||
- For a release, update `VERSION`, `app/version.py`, `README.md`, and the corresponding file under `docs/version-history/`.
|
||||
- Keep each pull request focused on a clear feature, fix, or documentation improvement.
|
||||
- Do not include credentials, personal data, private infrastructure details, logs, databases, backups, or runtime configuration.
|
||||
- Do not copy third-party source code, graphics, or text unless the license is compatible and all required notices are preserved.
|
||||
- Mention third-party products only when documenting an actual integration, dependency, or compatibility requirement.
|
||||
- Add user-visible text through the translation system for every supported language.
|
||||
- User-interface changes must remain usable in both light and dark mode.
|
||||
- Update relevant public documentation when released behavior changes.
|
||||
|
||||
## Before submitting
|
||||
|
||||
```bash
|
||||
python tools/check_public_release.py
|
||||
python tools/check_translations.py
|
||||
python tools/validate_release.py
|
||||
```
|
||||
By intentionally submitting a contribution, you confirm that you are authorized to publish it and that it may be distributed under the Apache License 2.0 used by this project.
|
||||
|
||||
## Third-party components
|
||||
|
||||
Review every new dependency for license compatibility, provenance, maintenance status, and security risks. Update `THIRD_PARTY_NOTICES.md` and preserve all required license or NOTICE files in distributed products.
|
||||
Review new dependencies for license compatibility, provenance, maintenance status, and security risks. Update `THIRD_PARTY_NOTICES.md` when a distributed dependency changes.
|
||||
|
||||
@@ -1,38 +1,39 @@
|
||||
# AssetManager 0.5.5.41
|
||||
# AssetManager 0.5.5.42
|
||||
|
||||
AssetManager is a self-hosted web application for managing IT equipment and other organizational assets. The project is released under the **Apache License 2.0** and may be used, modified, and redistributed for private and commercial purposes.
|
||||
AssetManager is a self-hosted web application for managing IT equipment and other organizational assets. It provides asset inventory, software inventory, remote job execution, reporting, privacy/retention documentation, and optional integration with MeshCentral.
|
||||
|
||||
The project is licensed under the **Apache License 2.0** and may be used, modified, and redistributed for private and commercial purposes under the terms of that license.
|
||||
|
||||
## Features
|
||||
|
||||
- configurable asset categories, fields, and status values
|
||||
- asset lists, detail views, history, assignment, and return workflows
|
||||
- Excel import and export, bulk changes, duplicate merging, and tree views
|
||||
- hardware and software inventory
|
||||
- job definitions and job execution with status tracking, callbacks, retries, and logs
|
||||
- local user management and optional LDAP authentication
|
||||
- protected local emergency administrator even when LDAP is enabled
|
||||
- roles, visibility rules, translations, dark mode, and configurable appearance
|
||||
- integrated backup and restore functions
|
||||
- configurable asset categories, fields, status values, images, and assignments
|
||||
- asset lists, detail views, history, bulk editing, Excel import/export, duplicate merging, and tree views
|
||||
- hardware and software inventory with comparison and aggregation views
|
||||
- job definitions and remote job execution with status tracking, callbacks, retries, and logs
|
||||
- optional MeshCentral integration through the MeshCtrl command-line interface
|
||||
|
||||
## MeshCentral integration
|
||||
|
||||
The integration is optional. AssetManager uses MeshCtrl for supported device queries and remote jobs. It does not access the MeshCentral database directly. MeshCentral and MeshCtrl are independent third-party projects and are not part of this repository; they are installed as dependencies during the Docker build.
|
||||
- local users, optional LDAP/Active Directory authentication, and a protected local emergency administrator
|
||||
- roles and asset visibility rules
|
||||
- multilingual user interface, dark mode, charts, and configurable appearance
|
||||
- integrated application backup and restore
|
||||
- privacy and retention documentation with text, HTML, and Excel exports
|
||||
|
||||
## Requirements
|
||||
|
||||
- Docker Engine with Docker Compose
|
||||
- a suitable DNS name and HTTPS reverse proxy are recommended for production installations
|
||||
- optionally, a reachable MeshCentral instance
|
||||
- optionally, LDAP or Active Directory
|
||||
- a supported PostgreSQL container as defined by `docker-compose.yml`
|
||||
- a suitable DNS name and HTTPS reverse proxy are recommended for production use
|
||||
- optional: reachable MeshCentral instance
|
||||
- optional: LDAP or Active Directory
|
||||
|
||||
## Installation
|
||||
|
||||
Create the local environment file:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Set at least these values in `.env`:
|
||||
Set at least the required secrets in `.env`:
|
||||
|
||||
```env
|
||||
POSTGRES_PASSWORD=CHANGE_ME
|
||||
@@ -41,13 +42,13 @@ LOCAL_ADMIN_USERNAME=emergency-admin
|
||||
LOCAL_ADMIN_PASSWORD=CHANGE_ME_MIN_12_CHARS
|
||||
```
|
||||
|
||||
Then start the application:
|
||||
Start the application:
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
By default, the application is available on port `8088`.
|
||||
By default, AssetManager is exposed on port `8088`.
|
||||
|
||||
## Persistent data
|
||||
|
||||
@@ -63,11 +64,29 @@ data/
|
||||
└── scripts/ deployed scripts
|
||||
```
|
||||
|
||||
These directories and `.env` may contain credentials, personal data, or internal operational data and must not be committed to a public repository.
|
||||
These directories and `.env` may contain credentials, personal data, or internal operational information and must not be committed to a public repository.
|
||||
|
||||
## Authentication
|
||||
|
||||
AssetManager supports local authentication and LDAP/Active Directory authentication. A protected local emergency administrator can be configured through environment variables so that administrative access remains possible if LDAP is unavailable.
|
||||
|
||||
LDAP debug logging is optional and should normally remain disabled. When disabled, LDAP logs contain only reduced authentication information.
|
||||
|
||||
## MeshCentral integration
|
||||
|
||||
MeshCentral integration is optional. AssetManager uses MeshCtrl for supported device queries, synchronization, presence information, file transfer, and remote jobs. AssetManager does not access the MeshCentral database directly.
|
||||
|
||||
MeshCentral and MeshCtrl are independent third-party projects and are not part of this repository. They are installed as dependencies during the Docker build.
|
||||
|
||||
## Privacy and retention
|
||||
|
||||
The application includes a **Security & Privacy** section for documenting processing activities, data categories, retention periods, recipients, international transfers, technical and organizational measures, and deletion checks. Reports can be exported as text, HTML, or Excel.
|
||||
|
||||
Deletion functions are restricted to administrators. Exported reports do not include passwords, callback tokens, or other secrets.
|
||||
|
||||
## Updating
|
||||
|
||||
Always back up `.env` and the complete `data/` directory before updating. Copy the new `assetmanager/` directory over the existing project directory and run:
|
||||
Back up `.env` and the complete `data/` directory before updating. Copy the new `assetmanager/` directory over the existing project directory and rebuild the application container:
|
||||
|
||||
```bash
|
||||
docker compose down
|
||||
@@ -75,45 +94,19 @@ docker compose up -d --build
|
||||
docker compose logs --tail=100 -f
|
||||
```
|
||||
|
||||
Detailed release notes are stored in [`docs/version-history/`](docs/version-history/README.md).
|
||||
|
||||
## Creating a sanitized public source archive
|
||||
|
||||
The exporter creates a sanitized ZIP archive with exactly one top-level directory named `assetmanager/`:
|
||||
|
||||
```bash
|
||||
python tools/create_github_source.py
|
||||
```
|
||||
|
||||
Before exporting, the script validates versions, license metadata, sensitive runtime files, and unwanted product-comparison references.
|
||||
|
||||
## Validation
|
||||
|
||||
```bash
|
||||
python tools/check_public_release.py
|
||||
python tools/check_translations.py
|
||||
python tools/validate_release.py
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Client communication and software deployment architecture](docs/architecture/SOFTWARE-CLIENT-ARCHITECTURE.md)
|
||||
- [Version history](docs/version-history/README.md)
|
||||
- [Contributing](CONTRIBUTING.md)
|
||||
- [Security policy](SECURITY.md)
|
||||
- [Third-party notices](THIRD_PARTY_NOTICES.md)
|
||||
|
||||
## Third-party components
|
||||
|
||||
Direct dependencies and their license types are listed in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). During the Docker build, license files from the installed Python and Node.js packages are collected under `/app/THIRD_PARTY_LICENSES/`.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions and forks are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md). A submission is a proposal and does not create an obligation to include it in the official project.
|
||||
Historical release notes are available in [`docs/version-history/`](docs/version-history/README.md).
|
||||
|
||||
## Security
|
||||
|
||||
Do not disclose credentials or exploitable details in a public issue. See [SECURITY.md](SECURITY.md).
|
||||
Do not commit credentials, tokens, private keys, personal data, runtime databases, logs, backups, or internal deployment details. Security reporting guidance is available in [SECURITY.md](SECURITY.md).
|
||||
|
||||
## Third-party components
|
||||
|
||||
Direct dependencies and license information are listed in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). During the Docker build, license files from installed Python and Node.js packages are collected under `/app/THIRD_PARTY_LICENSES/`.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions and bug reports are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for repository contribution requirements.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
APP_VERSION = "0.5.5.41"
|
||||
APP_VERSION = "0.5.5.42"
|
||||
__version__ = APP_VERSION
|
||||
|
||||
@@ -163,3 +163,5 @@ See [UPDATE-NOTE.md](UPDATE-NOTE.md).
|
||||
- [0.5.5.39](UPDATE-0.5.5.39.md) – Privacy read-only tabs and permission-aware dashboard counts.
|
||||
- [0.5.5.40](UPDATE-0.5.5.40.md) – Privacy exports available to all authenticated users.
|
||||
- [0.5.5.41](UPDATE-0.5.5.41.md) – Configurable MeshCentral matching and synchronization dry run.
|
||||
|
||||
- [0.5.5.42](UPDATE-0.5.5.42.md) — public repository documentation cleanup
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
# AssetManager 0.3.7 - Internationalization foundation
|
||||
|
||||
Stable rollback reference: 0.3.6.3 (German-only UI).
|
||||
|
||||
New:
|
||||
- English source/fallback language and German translation
|
||||
- Per-user language setting
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
# AssetManager 0.3.8.0 - Central field catalog and MeshCentral GUI configuration
|
||||
|
||||
IMPORTANT:
|
||||
- Stable rollback version before this structural migration: 0.3.7.10
|
||||
- Create a PostgreSQL/database backup before first start.
|
||||
- Do not copy .env, config.json, data, uploads or logs from this ZIP.
|
||||
|
||||
New database objects:
|
||||
- field_definitions
|
||||
- asset_field_values
|
||||
- mesh_field_mappings (prepared for future database-backed mappings)
|
||||
- category_fields.field_definition_id
|
||||
|
||||
Design:
|
||||
|
||||
@@ -11,5 +11,4 @@ Changes:
|
||||
|
||||
Important:
|
||||
- .env, config.json, database data, uploads and logs are not included.
|
||||
- The rollback version before this structural change remains 0.3.7.10.
|
||||
- Create a PostgreSQL backup before installation.
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
# AssetManager 0.5.5.42
|
||||
|
||||
## Repository documentation cleanup
|
||||
|
||||
- Simplified the public README to released functionality, installation, operation, security, privacy, dependencies, updating, contribution information, and licensing.
|
||||
- Removed proposal-style architecture documentation from the public documentation tree.
|
||||
- Removed historical rollback and tentative implementation notes from public release notes.
|
||||
- Added Git ignore rules for maintainer-only development context and AI/chat handover files.
|
||||
- Updated the public-source exporter and release checker so maintainer-only files cannot be included in public source archives.
|
||||
- No application runtime logic, database schema, or user configuration was changed.
|
||||
@@ -13,7 +13,7 @@ TEXT_SUFFIXES = {
|
||||
".css", ".env", ".html", ".ini", ".js", ".json", ".md", ".py",
|
||||
".sh", ".toml", ".txt", ".yaml", ".yml", ".ps1", ".cmd", ".bat",
|
||||
}
|
||||
SKIP_DIRS = {".git", ".venv", "venv", "__pycache__", "dist", "THIRD_PARTY_LICENSES"}
|
||||
SKIP_DIRS = {".git", ".venv", "venv", "__pycache__", "dist", "THIRD_PARTY_LICENSES", ".internal"}
|
||||
ALLOWED_RUNTIME_MARKER = ".gitkeep"
|
||||
FORBIDDEN_FILES = {
|
||||
".env",
|
||||
@@ -21,6 +21,8 @@ FORBIDDEN_FILES = {
|
||||
"data/config/APPINFO.json",
|
||||
"app/main_old.py",
|
||||
"PRUEFEN-0.5.5.5.sh",
|
||||
"AI_CONTENT.md", "AI_CONTENT_ANALYSE.txt", "AI_CONTEXT.md", "AI_CONTEXT_ANALYSE.txt",
|
||||
"DEVELOPMENT_NOTES.md", "DEVELOPMENT_CONTEXT.md",
|
||||
}
|
||||
FORBIDDEN_RUNTIME_DIRS = {
|
||||
"data/postgres", "data/uploads", "data/logs", "data/backups",
|
||||
|
||||
@@ -13,7 +13,7 @@ from zipfile import ZIP_DEFLATED, ZipFile
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
EXCLUDED_NAMES = {
|
||||
".git", ".venv", "venv", "__pycache__", ".pytest_cache", ".mypy_cache",
|
||||
".ruff_cache", "dist", "THIRD_PARTY_LICENSES",
|
||||
".ruff_cache", "dist", "THIRD_PARTY_LICENSES", ".internal",
|
||||
}
|
||||
EXCLUDED_FILES = {
|
||||
".env",
|
||||
@@ -22,6 +22,8 @@ EXCLUDED_FILES = {
|
||||
"app/main_old.py",
|
||||
"assetmanager.db",
|
||||
".public-release-local-patterns",
|
||||
"AI_CONTENT.md", "AI_CONTENT_ANALYSE.txt", "AI_CONTEXT.md", "AI_CONTEXT_ANALYSE.txt",
|
||||
"DEVELOPMENT_NOTES.md", "DEVELOPMENT_CONTEXT.md",
|
||||
}
|
||||
RUNTIME_DIRS = {
|
||||
"data/postgres", "data/uploads", "data/logs", "data/backups",
|
||||
|
||||
@@ -55,7 +55,6 @@ def check_repository_documentation() -> None:
|
||||
ROOT / "CONTRIBUTING.md",
|
||||
ROOT / "SECURITY.md",
|
||||
ROOT / "THIRD_PARTY_NOTICES.md",
|
||||
ROOT / "docs" / "architecture" / "SOFTWARE-CLIENT-ARCHITECTURE.md",
|
||||
ROOT / "docs" / "version-history" / "README.md",
|
||||
ROOT / "docs" / "version-history" / f"UPDATE-{(ROOT / 'VERSION').read_text(encoding='utf-8').strip()}.md",
|
||||
]
|
||||
@@ -117,10 +116,10 @@ def check_job_definition_frontend() -> None:
|
||||
|
||||
template_dir = APP_DIR / "templates" / "jobs"
|
||||
required_templates = {
|
||||
"powershell_wrapper.ps1": ["{{JobId}}", "{{CallbackUrl}}", "Eigene Befehle hier einfügen"],
|
||||
"python_wrapper.py.txt": ["{{JobId}}", "{{CallbackUrl}}", "Eigene Befehle hier einfügen"],
|
||||
"powershell_wrapper.ps1": ["{{JobId}}", "{{CallbackUrl}}"],
|
||||
"python_wrapper.py.txt": ["{{JobId}}", "{{CallbackUrl}}"],
|
||||
"bash_wrapper.sh": ["{{JobId}}", "{{CallbackUrl}}", "${status}", "${code}"],
|
||||
"cmd_wrapper.cmd": ["{{JobId}}", "{{CallbackUrl}}", "Eigene Befehle hier einfügen"],
|
||||
"cmd_wrapper.cmd": ["{{JobId}}", "{{CallbackUrl}}"],
|
||||
"powershell_test.txt": ["{{AssetName}}", "{{Hostname}}"],
|
||||
"python_test.txt": ["{{AssetName}}", "{{Hostname}}"],
|
||||
"bash_test.txt": ["{{AssetName}}", "{{Hostname}}"],
|
||||
|
||||
Reference in New Issue
Block a user