Skip to content

fix(configurator): support Automatic Corporate networks and post-login orders - #135

Merged
lweberru merged 4 commits into
mainfrom
fix/application-corporate-ipv4
Oct 23, 2026
Merged

lweberru merged 4 commits into
mainfrom
fix/application-corporate-ipv4

Conversation

@lweberru

@lweberru lweberru commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Corporate orders with Automatic network size and inherited DNS passed validate but failed the provider's IPv4 validation during Plan. The native module now reads the attached regional SNA default and supplies the effective prefix while keeping DNS. Explicit prefixes and Public networks avoid that lookup. The Application Runner is pinned to the reviewed native commit 1ed855609d4dcbfded6759c7c8b4fabf7bd6725d; migrations retain existing source allowlists and immutable versions/State bindings.

Orders created before the owner's valid STACKIT login can now complete their missing verified owner binding in place, before any approval or job exists. SQL independently restricts the completion to the same current owner/tenant and declared context roles, with immutable before/after audit. A genuine changed identity or existing execution evidence remains protected. The UI refreshes the same order and explains those boundaries.

The Assistant explains Automatic inheritance and proposes the exact requested numeric/null setting. Updated knowledge, production grounding and factual positive/negative tests distinguish the native fix from an invented provider upgrade and preserve unrelated settings. Human provider diagnostic details are now visible after the existing redaction, excluding structured snippets/expressions.

Validation:

  • Complete npm run check: 1010 passed, 71 environment-gated skipped.
  • Isolated PostgreSQL identity/Application suite: 51/51, including migrations 065/066, concurrent completion and authorization/immutability boundaries.
  • Desktop/mobile identity browser regressions: 6/6; existing catalogue browser flow: 10/10.
  • Offline native Application root/module/pinned compiler suites: 16 + 13 + 36 passed. Seven local-only tests with the real pinned provider cover invalid raw combinations and known/deferred effective prefixes; no customer access.
  • Actual local Runner packaging/initial-engine probes: 3 passed, 131 intentionally unselected tests skipped.
  • Final targeted real-model qualification: five affected project-template cases twice, 10/10, execution disabled. Earlier failed experiments remain in local receipts; this does not replace release qualification.

English/German user, native-module and contributor documentation is updated. New sources require a new published template version/order; existing orders retain their reviewed source. A partial infrastructure Apply must be recovered against its existing State separately; this PR does not import, unlock, retry or replace customer infrastructure.

Refs #93. Real Corporate/Public cloud acceptance remains open.

Integrated with current main on 2026-10-23: published recovery migration 064 remains byte-for-byte unchanged; new source and identity migrations now follow as 065/066. The combined recovery/identity database scenario uses the same bounded 30-second budget as the neighboring extended scenario (the former 5-second limit expired under the combined workload; no assertions were removed). Full local check: 1049 passed / 71 gated skipped; real isolated identity/Application database suite: 51 passed; platform State/recovery database suite: 63 passed. Earlier timed-out runs are retained in local logs.

The user has since confirmed first-attempt Public Plan/Apply including Observability and successful Corporate recovery on the prior runtime (#93). These results do not qualify this PR's new Automatic prefix or identity-completion behavior in the cloud.

@lweberru
lweberru marked this pull request as ready for review October 22, 2026 09:39
lweberru added a commit that referenced this pull request Oct 22, 2026
A failed Application Apply currently leaves the same order permanently
blocked at the disabled Cloud Plan button. This adds a checkpoint-bound
way to request a fresh Plan without creating another order or losing its
State binding.

For a normally reported `apply_failed`, the original Application Owner
can check the Application checkpoint and enable replanning directly,
without another Platform Owner approval or waiting for the old grant to
expire. SQL requires terminal execution, a consumed package-bound
ticket, matching output evidence and no recovery record. The API reads
the exact bound S3 key, verifies the order contract, checks locks before
and after reading, and rechecks a five-minute encrypted proof on
confirmation. State contents and backend credentials never leave the
server.

Uncertain completion retains a separate original-approver
operator-attestation path after execution windows expire. State-write
failures, separate recovery State, locks and mismatched checkpoints stay
blocked. Clearance records neither independently verified cloud
consistency nor Apply permission: historical dispatches and State remain
unchanged, and SQL requires a newly created Plan before any subsequent
Apply. The normal Plan refresh and explicit Apply review remain
mandatory.

Both UI languages explain the block and the next action. No cloud
mutations, customer Plan/Apply, State edits, credential rotation or
deployment were performed.

Validation:
- Full application check: 1,040 passed; 71 environment-gated tests
skipped.
- Real isolated database suite: 66 passed, including both clearance
modes, concurrent idempotence, role/tenant boundaries, consumed-ticket
replay rejection and the fresh-Plan/Apply lifecycle.
- Platform-State database regressions: 63 passed.
- Desktop/mobile organisation and Application browser flows: 118 passed,
including selfservice, stale proof and operator review.
- Final focused API/checkpoint tests: 96 passed; one native-engine test
skipped. Typecheck, build, lint and diff checks passed.
- Independent review of API/UI/contracts/docs found no remaining
security blocker; SQL was separately reviewed and exercised against the
real database.

This deliberately keeps the deployed Application Accelerator source pin
unchanged so existing partially applied orders remain compatible.
Merge/deploy this recovery path before the separate source update in
#135; that PR will need its pending migration numbers rebased
afterwards. No release workflow or Assistant qualification gate is
changed.
@lweberru
lweberru merged commit 489cf99 into main Oct 23, 2026
13 checks passed
@lweberru
lweberru deleted the fix/application-corporate-ipv4 branch October 23, 2026 08:29
lweberru added a commit that referenced this pull request Oct 23, 2026
## Problem and resulting behavior

The qualified Dev release for #135 stopped before build/deployment: both
`dns-owner` repetitions asked for known DNS metadata/contact decisions
instead of preparing the explicitly requested reviewable completion
(122/124 cases passed; continuous journey passed). Those failures remain
recorded in release 39925017270.

Supply DNS intent classification with stable zone keys, validated
field-presence flags and confirmed contact-source availability. Actual
domain/contact values and unknown fields are excluded from this
additional context. Require an explicit DNS-task decision in the serving
schema while retaining legacy parser compatibility. Keep a semantic
remaining-settings decision coherent with draft mode and distinguish
metadata completion from source-evidenced add/replace operations.
Existing field/contact/preservation/evidence/acceptance guards and all
factual oracles remain unchanged; nothing is persisted or executed by
classification.

Regenerate source-bound knowledge/catalogue metadata and update EN/DE
contributor guidance. Add regression coverage for contradictory advice
mode, actual classifier context, required task selection and downstream
rejection of missing/invented/overbroad proposals. Informational
requests retain advice behavior.

## Validation and limits

Final lint/build/type checks passed locally; full unit suite: 1052
passed, 71 environment-gated skipped. All eight DNS cases passed twice
against the configured real model (16/16) on this final source,
including both owner-contact completion repetitions. The earlier
restricted-loopback test run is not counted as a functional pass; the
complete suite passed with the required local test permissions.
Intermediate experiments are not qualification: one earlier version
failed collection-evidence checks, another had a truncated model
response. No failed repetition is relabelled as success. A fresh full
qualified release remains mandatory before Dev promotion.

No migrations, IAM grants, customer Plan/Apply, State changes or
production operations. Related #95 and #93; no acceptance criterion is
weakened.
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