Skip to content

Renew STACKIT sign-in safely and propose template service permissions - #173

Merged
lweberru merged 1 commit into
mainfrom
fix/coherent-stackit-sign-in
Oct 28, 2026
Merged

lweberru merged 1 commit into
mainfrom
fix/coherent-stackit-sign-in

Conversation

@lweberru

@lweberru lweberru commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Natural requests to give future Public Landing Zone orderers Kubernetes permissions could produce a long IAM explanation instead of an actionable proposal. This change routes existing-template IAM requests through the bounded proposal path, adds official SKE permissions for the requested recipient, preserves unrelated settings, and asks which template when the target is ambiguous. The server also checks ambiguity when the classifier guesses an existing template key.

PKCE sign-in now redirects immediately in the current tab. Encrypted server-side refresh grants renew the same verified STACKIT identity without extending the absolute eight-hour Configurator session or organization-owner permission proofs. Rotation is serialized across API instances; browser tokens remain opaque. Existing sessions without a refresh grant need one new sign-in. This cannot renew the independent STACKIT Portal browser cookie.

Draft checkpoints preserve configuration ID/revision, saved baseline and navigation through reauthentication. Recovery requires the same user/workspace and fresh membership for workspace restoration. Heartbeats preserve focused edits, explicit reload URLs win over stale checkpoint navigation, and generation-scoped logout clears retained drafts across tabs. Expired sessions retain local editing/download; configuration saving remains available while the app session is valid. Device Flow keeps its code dialog.

Validation:

  • Independent security/behavior review with all findings addressed.
  • Full Configurator checks: 1,309 passed, 76 expected skips. Isolated PostgreSQL integration: 74/74 passed.
  • Complete desktop/mobile browser suite: 398/398 passed without retries, including direct PKCE sign-in, renewal, session expiry, scope isolation, logout and original configuration revision preservation.
  • Source-bound real-model template scenarios: 30/30 passed (15 cases twice), with exact draft-preservation oracles; failed earlier-source receipts retained. Full repeated suite and continuous journey remain required by the qualified Dev release.
  • No customer Plan, Apply, State or lock changes.

@lweberru
lweberru merged commit 82d08c5 into main Oct 28, 2026
14 checks passed
@lweberru
lweberru deleted the fix/coherent-stackit-sign-in branch October 28, 2026 08:26
lweberru added a commit that referenced this pull request Oct 28, 2026
Users can discard an Assistant proposal without deleting their
conversation or losing unsaved configuration or template edits. The
revision-bound action persists across reloads, closes the pending turn
in model history and rejects stale or concurrent writes.

The qualified release of #173 also exposed overlong preset output and an
unhelpful Kubernetes overview. The intent contract now selects bounded
preset branches, derives preset permissions on the server and keeps
explicit permission lists bound to their source and recipient. Additions
preserve existing rights; replacements require the corresponding intent.
Kubernetes advice uses the reviewed native field overview. Existing
output limits and qualification oracles remain in force; the Kubernetes
oracle additionally rejects repetitive meta prose.

The final review also removed a runtime fallback that could treat a
missing explicit list operation as replacement. Missing operations now
fail closed, covered by a negative regression. A separate qualification
receipt exposed a German DNS-preservation false negative (“behält … DNS
… bei”); the oracle now recognizes that bounded, non-negated clause and
retains negative checks for removal, unrelated preservation and
mandatory /24 claims. Failed receipts remain retained; output budgets
and factual requirements were not relaxed.

Validation: full local check passes (1,336 tests; 76 expected skips),
full PostgreSQL regression passes (75 tests), and four focused
desktop/mobile discard tests pass. Affected template cases were
qualified twice with synthetic data; the DNS-language oracle correction
is separately repeated and source-bound. Kubernetes advice is repeated
under the final source. Independent reviews covered discard
authorization/concurrency and the final permission-list contract. GitHub
CI and the subsequent full qualified Dev release remain pending. No
production or customer infrastructure execution is included.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant