fix(consuldemocracy): verify end-to-end + harden seed/OIDC [#653]
Seed verification over marker trust (observed exit-0 no-op seed), first-boot-only OIDC auto-enable, logo added, docs synced (JOURNAL s17, counts 17/~57). grind-stack verified: homepage 200, OIDC SSO button live. Detail: https://projects.knownelement.com/issues/653#note-5044
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
> **Human read-only. Agents maintain this file automatically after each work
|
||||
> session.** Do not edit by hand — the next agent run will overwrite it.
|
||||
>
|
||||
> **Last updated:** 2026-09-06 by ZCode (GLM-5.3) — NetBox packaged
|
||||
> **Last updated:** 2026-09-06 by ZCode (GLM-5.3) — ConsulDemocracy packaged (17th; verified via grind lifecycle)
|
||||
> (#648, Infrastructure, 16th package); auth gate verdict: native OIDC via
|
||||
> python-social-auth (OpenIdConnectAuth + SOCIAL_AUTH_OIDC_*) wired to the
|
||||
> platform provider; official-image wrapper of netboxcommunity/netbox
|
||||
@@ -13,14 +13,14 @@
|
||||
|
||||
## Current State: STABLE (packaging phase, ongoing)
|
||||
|
||||
Cloudron packaging pipeline is operational. 16 of ~57 upstream applications are
|
||||
Cloudron packaging pipeline is operational. 17 of ~57 upstream applications are
|
||||
packaged, committed, and pushed. Packaging templates exist for the core
|
||||
patterns. The gardening protocol (this file + AGENTS.md) keeps docs in sync.
|
||||
All remaining apps now carry build tickets (#633-#678) under umbrella
|
||||
[#632](https://projects.knownelement.com/issues/632) in Redmine project 55 —
|
||||
ready for the sequential grind-driver pattern.
|
||||
|
||||
## Completed Packages (16)
|
||||
## Completed Packages (17)
|
||||
|
||||
| # | Application | Category | Pattern | Port(s) | Addons |
|
||||
|---|-------------|----------|---------|---------|--------|
|
||||
@@ -45,7 +45,7 @@ Each package lives in `Package-Workspace/<Category>/<app>/` and contains a
|
||||
`Dockerfile`, `CloudronManifest.json`, `README.md`, `CHANGELOG.md`, `logo.png`,
|
||||
and (where relevant) `start.sh` + `.env.example`.
|
||||
|
||||
## Build Ticket Map (46 filed 2026-09-01; 39 open — 7 landed: #639, #640, #648, #650, #651, #668, #669)
|
||||
## Build Ticket Map (46 filed 2026-09-01; 38 open — 8 landed: #639, #640, #648, #650, #651, #653, #668, #669)
|
||||
|
||||
All under umbrella [#632](https://projects.knownelement.com/issues/632)
|
||||
(Redmine project 55, tracker Feature). Excluded: **grist-core** (a Cloudron
|
||||
@@ -68,12 +68,12 @@ package already exists upstream — do not package).
|
||||
| #645 | OpenBoxes | Business-Apps | needs LDAP runtime verification (note 2026-09-06) |
|
||||
| #646 | Nautilus Trader | Financial-Trading | disposition (headless lib) |
|
||||
| #647 | Fleet | Monitoring | build (research queue) |
|
||||
| #648 | NetBox | Infrastructure | build (redis addon; strong candidate) |
|
||||
| #648 | NetBox | Infrastructure | DONE 2026-09-06 (16th package) |
|
||||
| #649 | SeaTunnel | Data-Management | disposition (service vs tool) |
|
||||
| #650 | Rathole | Infrastructure | build (proxy) |
|
||||
| #651 | Easy-Gate | Infrastructure | build (proxy) |
|
||||
| #652 | Huginn | Automation | blocked-on-auth (local-only Devise; note 2026-09-06) |
|
||||
| #653 | ConsulDemocracy | Collaboration | build |
|
||||
| #653 | ConsulDemocracy | Collaboration | DONE 2026-09-06 (17th, grind-verified) |
|
||||
| #654 | BOINC | Scientific-Computing | disposition (server packaging heavy) |
|
||||
| #655 | Slurm | System-Administration | disposition (likely out of scope) |
|
||||
| #656 | Gophish | Security | blocked-on-auth |
|
||||
@@ -122,7 +122,7 @@ Full write-ups of each pattern + challenges are in [`JOURNAL.md`](JOURNAL.md).
|
||||
| Monitoring | 6 | 1/6 | healthchecks done |
|
||||
| Automation | 4 | 1/4 | windmill done |
|
||||
| Business-Apps | 8 | 1/8 | elabftw done |
|
||||
| Collaboration | 2 | 0/2 | |
|
||||
| Collaboration | 2 | 1/2 | consuldemocracy done |
|
||||
| Communication | 1 | 0/1 | |
|
||||
| Data-Management | 2 | 0/2 | |
|
||||
| DevOps-Tools | 1 | 1/1 (100%) ✅ | fx done |
|
||||
@@ -142,7 +142,7 @@ Auth capability is a hard gate before packaging (see
|
||||
LDAP acceptable (risk flag), 🔄 = auth-proxy (no users), ❌ = local-only
|
||||
(unacceptable / blocked-on-auth).
|
||||
|
||||
### Completed packages (16)
|
||||
### Completed packages (17)
|
||||
|
||||
| App | OIDC | LDAP | Verdict | Note |
|
||||
|-----|------|------|---------|------|
|
||||
@@ -162,6 +162,7 @@ LDAP acceptable (risk flag), 🔄 = auth-proxy (no users), ❌ = local-only
|
||||
| ChirpStack | yes | no | ✅ preferred | **Packaged**; native `[user_authentication.openid_connect]` wired to `CLOUDRON_OIDC_*`; OIDC-registered users are non-admin — one-time `CHIRPSTACK_AUTH_MODE=internal` bootstrap links the seeded `admin` to your SSO email (README) |
|
||||
| eLabFTW | no | yes | ⚠️ risk (LDAP) | **Packaged**; no OIDC upstream (auth = local/SAML/LDAP per `src/Enums/AuthMethod.php`); `ldap` addon enabled, README maps `CLOUDRON_LDAP_*` → sysconfig LDAP panel — must be validated on the live Cloudron before production; SAML possible via external IdP |
|
||||
| NetBox | yes | plugin | ✅ preferred | **Packaged**; python-social-auth OIDC (`REMOTE_AUTH_BACKEND=OpenIdConnectAuth` + `SOCIAL_AUTH_OIDC_*`) wired from `CLOUDRON_OIDC_*`; local Django login retained for admin bootstrap; SSO users register without privileges (README) |
|
||||
| ConsulDemocracy | yes | no | ✅ preferred | **Packaged**; omniauth_openid_connect (discovery) wired into generated secrets.yml; `feature.oidc_login` auto-enabled on first boot when the provider is present (admin-panel toggle afterwards); SAML also available; local admin seeded |
|
||||
|
||||
### Candidates researched
|
||||
|
||||
|
||||
Reference in New Issue
Block a user