{"id":51403567,"url":"https://github.com/debeski/django-microsys","last_synced_at":"2026-07-04T09:04:06.028Z","repository":{"id":337149448,"uuid":"1151808146","full_name":"debeski/django-microsys","owner":"debeski","description":"lightweight, reusable Django app providing comprehensive system integration services, including user management, abstract users, permissions, localization, and automated activity logging","archived":false,"fork":false,"pushed_at":"2026-06-07T14:50:07.000Z","size":6606,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-07T16:21:00.877Z","etag":null,"topics":["django","extension","framework","ux"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/django-microsys/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/debeski.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-06T23:29:16.000Z","updated_at":"2026-06-07T14:49:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/debeski/django-microsys","commit_stats":null,"previous_names":["debeski/microsys","debeski/django-microsys"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/debeski/django-microsys","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debeski%2Fdjango-microsys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debeski%2Fdjango-microsys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debeski%2Fdjango-microsys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debeski%2Fdjango-microsys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/debeski","download_url":"https://codeload.github.com/debeski/django-microsys/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debeski%2Fdjango-microsys/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35115747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-04T02:00:05.987Z","response_time":113,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","extension","framework","ux"],"created_at":"2026-07-04T09:04:05.549Z","updated_at":"2026-07-04T09:04:06.021Z","avatar_url":"https://github.com/debeski.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Django microSYS - System Integration Service\n\n\u003e [!IMPORTANT]\n\u003e ## ⚠️ Renamed \u0026 no longer maintained here — continued as **django-lux**\n\u003e\n\u003e `django-microsys` has been rebranded and now lives on as\n\u003e **[`django-lux`](https://github.com/debeski/django-lux)**. This repository is\n\u003e **archived for historical reference** and will receive no further updates; all\n\u003e development continues under the new name.\n\u003e\n\u003e - **New package:** `pip install django-lux` — [PyPI](https://pypi.org/project/django-lux/)\n\u003e - **New repository:** \u003chttps://github.com/debeski/django-lux\u003e\n\u003e - **Already running `django-microsys`?** Upgrade an existing deployment in place\n\u003e   with the [migration guide](https://github.com/debeski/django-lux/blob/main/docs/migrating-from-microsys.md)\n\u003e   (`pip install django-lux` → `python manage.py dlux_migrate_from_microsys`).\n\u003e\n\u003e The final `django-microsys` release is **2.4.1**; `django-lux` **1.0.0** is\n\u003e feature-equivalent (the framework is unchanged — only the name).\n\n[![PyPI version](https://badge.fury.io/py/django-microsys.svg)](https://pypi.org/project/django-microsys/)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/debeski/django-microsys/main/microsys/static/img/login_logo.webp\" alt=\"microSys Logo\" width=\"450\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://chatgpt.com/g/g-6a14ac8cbb0c8191aad3b3619e5bef21-microsys-agent\"\u003e\u003cstrong\u003eOpen microSYS Agent on ChatGPT\u003c/strong\u003e\u003c/a\u003e\u003cbr/\u003e\n  \u003csub\u003eSpecialized custom GPT for django-microsys integration, configuration, extension, and troubleshooting.\u003c/sub\u003e\n\u003c/p\u003e\n\nmicroSYS is a multilingual Django app that gives a project-level system layer for user management, branding, translations, scopes, navigation, activity logging, guided onboarding, data export, and dynamic CRUD tooling. It is not just a themed admin shell: it is a fairly large internal-systems toolkit that bundles runtime configuration, user operations, auditability, UI infrastructure, and zero-boilerplate management patterns into one package. The package keeps the landing README short, You can view the long-form operating and integration guidance at [`docs/`](docs/README.md).\n\n## What microSYS gives you\n\n- A first-launch setup wizard at `/sys/setup/` for identity, explicit language catalog management, translation-matrix overrides, access/security toggles, UI-first Microsys email delivery, themes, default table density, global home URL, and sidebar structure, including full sidebar disable, runtime sidebar-toolbar, and user-reordering controls.\n- A runtime system UI for users and superusers, including Options, user management, profiles, 2FA, activity logs, scopes, and system settings.\n- A disabled-by-default public registration playground for email-first local signup with mandatory email verification, Microsys email readiness checks, public-account provenance badges, throttles, and optional approval.\n- A database-backed `SystemSettings` singleton layered over `MICROSYS_CONFIG`, so projects can seed defaults in code and refine them in the UI later.\n- A framework-owned `django_tables2` platform that auto-adopts stock tables, ships built-in pagination and per-page controls, exposes a public `MicrosysTable` base class, and supports per-table `microsys_table`, `microsys_density`, `microsys_per_page`, and `microsys_actions` overrides.\n- A `ScopedModel` base with audit fields, soft-delete behavior, actor tracking, filtered managers, and automatic scope handling.\n- Zero-boilerplate sections and dynamic modal CRUD flows for auxiliary models, plus a reusable context-menu/event model for richer interactions.\n- A built-in audit trail with signal-based logging, merged User/Profile updates, diff capture, masked sensitive fields, and download/export log entries.\n- Universal data helpers such as `fetch_file`, `fetch_excel`, sticky-form autofill, tutorial overlays, and persistent UI preferences.\n\n## Requirements\n`note: all the requirements will be installed automatically when you install django-microsys.`\n\n- Python 3.11+\n- Django 5.1+\n- `django-crispy-forms`\n- `crispy-bootstrap5`\n- `django-tables2`\n- `django-filter`\n- `pillow` \"for image handling\"\n- `babel` \"for translations\"\n- `psutil` \"for system monitoring\"\n- `pyotp` \"for TOTP 2FA\"\n- `qrcode` \"for TOTP 2FA QR codes\"\n- `cryptography` \"for encrypted TOTP and SMTP secret storage\"\n\n## Installation\n\n```bash\npip install django-microsys\n# OR\npip install git+https://github.com/debeski/django-microsys.git\n```\n\n## Scaffold a New Project or App\n\n```bash\npython -m microsys startproject myproject\ncd myproject\npython -m microsys startapp billing --register\n```\n\n`python -m microsys startproject` creates a new Django project already wired for MicroSys. `python -m microsys startapp` creates a MicroSys-native app skeleton with models, forms, filters, tables, translations, templates, tests, and optional project registration.\n\nGenerated projects also include a baseline Docker stack with `compose.yml`, `compose.dev.yml`, a `config/celery.py` worker entrypoint, and a `/health/` endpoint via `django-health-check`.\nThey also generate `.secrets/.env` with the bootstrap secrets used by the standard decrypter/startup flow.\nThe scaffolded settings baseline now also includes `django-cors-headers` and `django-csp` with their apps, middleware, and starter CORS/CSP policy settings.\n\n## Minimal Quick Start\n\n1. Add the MicroSys helper at the end of your project `settings.py`.\n\n```python\nfrom microsys.utils import microsys_settings\n\nmicrosys_settings(globals())\n```\n\nThat helper prepends the required apps, inserts `django.middleware.locale.LocaleMiddleware` and `microsys.middleware.MicrosysMiddleware` in the supported order, adds the Microsys context processor, sets the Crispy Bootstrap 5 defaults, adds a Bootstrap-friendly `MESSAGE_TAGS` error mapping, and seeds the standard MicroSys runtime defaults for language, timezone, i18n/tz flags, `FORMAT_MODULE_PATH`, and charset unless your project already defines them.\n\n__Proceed to [Getting Started](docs/getting-started.md) if you prefer to wire everything manually.__\n\nPublic registration is documented separately at [Public Registration Playground](docs/registration.md). It is disabled by default and is not part of the optional SSO packages.\n\n\n2. Mount `microsys.urls` at project root so the bundled auth and system routes stay at `/accounts/...` and `/sys/...`.\n\n```python\nfrom django.urls import include, path\n\nurlpatterns = [\n    path(\"\", include(\"microsys.urls\")),\n]\n```\n\nWith that root include in place, microsys provides `/accounts/...` and `/sys/...`. If your project does not define its own `/` view, microsys falls back from an unresolved `/` request into its login/setup flow instead of leaving a 404. On a fresh and unconfigured install, Microsys also guards ordinary anonymous requests so a public root page cannot bypass first-time setup; once setup is complete, your existing root view continues to behave normally.\n\n3. Run the setup command.\n\n```bash\npython manage.py microsys_setup\n```\n\n4. Sign in as a superuser and complete the first-launch wizard at `/sys/setup/`. On a fresh install, an anonymous request may be sent through `/sys/setup/` and then to login before the wizard can be completed. After setup, the main runtime UI lives under `user_hub`.\n\nFor a fuller setup path, prefix-mount guidance, and first-launch expectations, use the [Getting Started guide](docs/getting-started.md).\n\n\n## Key Capabilities\n\n- Onboarding and runtime configuration:\n  first-launch setup wizard, Options view, runtime System Settings modal, source-tabbed translation overrides, setup import/export, language/theme defaults, and a global Home destination.\n- User and security operations:\n  interactive user wizard, grouped translated permissions, four-tier staff authorization (superuser, Global Staff, Central Staff, Scoped Staff), permission-based sidebar visibility, profile management, multiple 2FA flows (App, Email, Backup), trusted device tracking for 30 days, and runtime preference persistence.\n- Generic CRUD infrastructure:\n  dynamic sections, AJAX-driven modal CRUD, automatic form/table/filter discovery, context-menu actions, and reusable event dispatch.\n- Navigation and UI infrastructure:\n  resolver-driven sidebar builder with permission-based visibility, runtime tree rendering, optional user-level reordering, configurable sidebar toolbar visibility, a shared theme registry, tutorial overlays, theme-aware system surfaces, and template injection hooks.\n- Data movement and productivity helpers:\n  universal file download, Excel export, smart autofill, sticky-form cloning, and generic list/filter helpers.\n- Audit and governance:\n  signal-based activity logging with configurable IP resolution (direct/proxy/header), diff capture, masked sensitive fields, deduplicated entries, download/export logging, and scoped visibility.\n- Optional SSO:\n  `django-microsys-sso` and `django-microsys-sso-client` live as separate optional packages for OIDC provider/client deployments without changing core Microsys runtime behavior.\n- Standalone backup viewer:\n  `tools/msb-viewer/` is a dependency-free, cross-platform binary for inspecting encrypted `.msb` system backups offline — browse models, rows, and stored files without a running instance. Prebuilt binaries ship with each release.\n- Framework-level automation:\n  translation patches, scoped-model auto-injection, actor tracking, soft-delete, and config layering across defaults, project settings, and runtime UI.\n\n## Documentation\n\n- [Documentation Hub](docs/README.md)\n- [Security Policy](SECURITY.md)\n- [Contributing Guide](CONTRIBUTING.md)\n- [Code of Conduct](CODE_OF_CONDUCT.md)\n- [Getting Started](docs/getting-started.md)\n- [Admin Guide](docs/admin-guide.md)\n- [Developer Guide](docs/developer-guide.md)\n- [Customization Guide](docs/customization-guide.md)\n- [Reference](docs/reference.md)\n- [MSRP-1 Security Standard](docs/security-msrp-1.md)\n- [Optional SSO Packages](docs/sso.md)\n- [Standalone .msb Backup Viewer](tools/msb-viewer/README.md)\n- [Releasing](docs/RELEASING.md) — tag-driven PyPI + GitHub release flow\n- [Features](docs/FEATURES.md) — complete feature inventory\n- [Changelog](CHANGELOG.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebeski%2Fdjango-microsys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebeski%2Fdjango-microsys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebeski%2Fdjango-microsys/lists"}