Phase 1: read-only MVP (memberships, sessions, events, effective permissions, drift report, mapper) #2
Closed
KofTwentyTwo wants to merge 2 commits from
feature/phase-1-read-mvp into feature/phase-0-foundations
pull from: feature/phase-1-read-mvp
merge into: QRun-IO:feature/phase-0-foundations
QRun-IO:develop
QRun-IO:release/0.1
QRun-IO:merge/develop-into-release-0-1-rc13
QRun-IO:perf/policy-resolution-single-universe
QRun-IO:feat/session-policy
QRun-IO:fix/health-token-broker-develop
QRun-IO:fix/health-token-broker-only-when-tokens-on
QRun-IO:merge/develop-into-release-0-1-rc10
QRun-IO:feat/policy-1-1-deny-prefix
QRun-IO:fix/create-time-approval-20261106
QRun-IO:automation/qbit-rc-pending
QRun-IO:review/local-latest
QRun-IO:qualification/auth-bootstrap-order-20261103
QRun-IO:qualification/auth-bootstrap-threads2-20261103
QRun-IO:qualification/auth-bootstrap-threads-20261103
QRun-IO:qualification/auth-bootstrap-20261103
QRun-IO:main
QRun-IO:qualification/central-actions-20261031
QRun-IO:dependabot/maven/develop/maven-minor-and-patch-3ab577e7f8
QRun-IO:dependabot/github_actions/develop/github-actions-feffc63bfd
QRun-IO:feature/orb-0.8-track
QRun-IO:feature/orb-0.7.18
QRun-IO:feature/orb-0.7.17
QRun-IO:feature/orb-standardize-release-0.1
QRun-IO:feature/orb-main-standardization
QRun-IO:feature/shared-codeql
QRun-IO:feature/orb-0712-stable-gate
QRun-IO:feature/orb-rc-worker
QRun-IO:feature/align-shared-workers
QRun-IO:feature/orb-0.7.11
QRun-IO:feature/central-ci
QRun-IO:feature/maintenance-service-principal
QRun-IO:feature/mapper-group-attributes-warning
QRun-IO:feature/broker-probe-token-exchange
QRun-IO:ci/release-rc-secrets-inherit
QRun-IO:fix/help-bundle-version
QRun-IO:feature/health-checks
QRun-IO:feature/help-bundle
QRun-IO:feature/tables-populated-defaults
QRun-IO:feature/policy-full-access
QRun-IO:feature/log-effective-features
QRun-IO:feature/policy-editor-preview
QRun-IO:feature/orb-0.6.9
QRun-IO:feature/token-scopes
QRun-IO:feature/guardrails-rc6
QRun-IO:feature/token-management
QRun-IO:feature/token-preferences
QRun-IO:feature/arch-rc5
QRun-IO:feature/token-spec
QRun-IO:feature/mapper-automated-sessions
QRun-IO:feature/policy-feature-permissions
QRun-IO:feature/policy-cutover
QRun-IO:feature/release-rc-automation
QRun-IO:feature/user-group-crud
QRun-IO:feature/policy-editor
QRun-IO:feature/policy-model
QRun-IO:feature/policy-spec
QRun-IO:feature/v1-lifecycle
QRun-IO:feature/ga-only-release-tags
QRun-IO:feature/snake-case-table-names
QRun-IO:chore/qrun-repo-standard
2
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
3fde306601
|
feat: group permission mapper; harden phase 0/1 after code review
- AuthentikGroupPermissionMapper: token groups claim -> QQQ permissions via
the group graph and resolver; static fallbacks and bootstrapOperators;
Authentik unreachable grants only the fallbacks, never everything.
- Review fixes (general and silent-failure reviews):
- plain-text-only search, because Authentik's QLSearch could reach
sensitive fields
- thread-safe group graph
- a failed group-graph read shows "Unavailable", not empty permissions
- malformed qqq.io/* attributes are reported by the drift report
- operator filters may not widen the user scope; membership rows are
always scope-checked
- a missing pagination object is an error
- sorting by the key falls back to the default; strict booleans; ".."
keys refused
- https required except loopback / allowInsecureHttp; groupScopeNamePrefix
refused until implemented
- drift: unrunnable checks are ERROR "result unknown"; service-account
tokens filtered server-side, zero visible is a warning; deleted or
vanished targets flagged; only human users count as identity admins;
break-glass re-checked client-side
- redact error bodies before flattening; version check retried after a
failed fetch
- rehearse-phase0.sh: portable under Git Bash, waits for both blueprints,
derived is_superuser; passed on a synthetic production-like dump.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
||
|
|
1f0575ce26
|
feat: phase 1 read-only MVP (memberships, sessions, events, effective permissions, drift report)
- authentikGroupMember: virtual membership table served from a group (include_users), a user (groups_obj) or a bounded sweep; filters by group pk/name, user pk/username or key; user scope checked per member. - authentikSession and authentikEvent, behind identity.audit.read. - GroupGraph + EffectivePermissionResolver: groups and inherited parents to QQQ permissions; identity.* and catalog wildcards expanded, unknown names reported and never granted. Groups show inherited superuser status and effective permissions; users show effective permissions. - Identity drift report widget (identity.admin): version, blueprint status, service-account shape and self-minted tokens, break-glass, last identity admin, qqq.io/* attribute validity, and service-account changes to protected or superuser objects. - Contract tests on Authentik 2026.8.3 (real session via the flow executor; the drift report flags SuperuserFloorIT's lockout probes) and recorded fixtures for the new unit tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |