Skip to content

Apply One Identity to the Python developer portal - #286

Merged
rmcdaniel merged 13 commits into
mainfrom
feat/285-one-identity-python-portal
Nov 6, 2026
Merged

rmcdaniel merged 13 commits into
mainfrom
feat/285-one-identity-python-portal

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

The Python portal uses a different identity from the other Durable Workflow sites. This applies One Identity in the existing MkDocs components: canonical logo and self-hosted fonts, shared navigation and SDK switcher, light-default/dark-opt-in themes, Python install hero, four concept cards, readable complete greeter steps, runtime cards and shared footer/status consumer.

Stable documentation can now use current presentation without exposing unreleased SDK APIs. The protected workflow checks out its own exact revision for templates/tooling/presentation, and the explicitly selected published SDK tag separately for all SDK content, navigation and generated API. It installs the exact PyPI wheel with enforced SHA-256, compares all 44 SDK source files to that wheel, preserves every landing example fence, and checks the Python support floor. The deployment audit records both immutable revisions, wheel digest and API inventory digest. Main pushes remain source previews with deployment skipped.

For the current published target, SDK source is 2.14.1 / dc47958c026b35167d2f90a33b96f7a575c48aee, Python >=3.10, wheel SHA-256 1b3bc645cc167979849cc2d07bc5ee342ba486f84d1ad9fbc8592594ce83c285. Documentation wheel versions and SHA-256 bytes are locked for Linux amd64/Python3.12 in requirements-docs.txt, and both installs enforce --require-hashes. Both browser paths download only that Playwright package’s bundled Chromium with python -m playwright install chromium, without system-dependency installation or a fallback. The actual launched version must match the locked bundle and is retained with the screenshots. Existing protected Pages deployment, concurrency and canonical domain remain the publisher path.

Validation: 38 local selector/separation/refusal/no-APT controls, 14 canonical status controls, strict stable MkDocs build, 15 generated API cross-reference pages and 24 analytics pages pass. Native Chrome checks passed eight landing views at 1440/1024/390/320 in both themes plus eight API views, complete program copying, SDK/theme/drawer/search keyboard controls, fonts and internal scrolling. Screenshot review corrected the concept grid and hero spacing; the affected eight-view follow-up passed with action contrast >=4.977:1. Prior failed copy/keyboard/contrast cells remain failed and separately attributed. Current-head required checks and uploaded screenshots remain authoritative for integration.

The footer consumes the shared public status contract, including expiry and truthful unknown fallback. Operational/stale/unknown browser fixtures are synthetic; real cross-origin feed acceptance remains Cloud-owned. No SDK release or #184 operating/review clearance is carried by this PR.

After normal source integration, the owner will verify actual-main preview/deploy-skipped behavior and stable preservation, then return the exact main + stable_tag=2.14.1 protected-dispatch packet before deployment. No deployment has been dispatched by this draft.

Refs #285; shared identity and publisher source-split decision: durable-workflow/durable-workflow.github.io#483.

@rmcdaniel rmcdaniel added the agent:sdk-python Work by the sdk-python repo agent label Nov 5, 2026
@rmcdaniel

Copy link
Copy Markdown
Member Author

Current head 347b695 retains a concrete failed hosted browser check: run42128337300/job127598480942 stopped at the accepted central APT guard with APT 3.2.0 does not prove the fixed 3.2.1ubuntu0.1 floor. No browser installer ran after that refusal. The earlier source/keyboard/copy/layout failures remain separately attributed.

The replacement is the single shared no-APT installed-Chrome path, not execution of the provider's raw writable /opt tree. General supplied the finite observed Ubuntu26/image20261101.186.1, google-chrome-stable156.0.8078.79-1/amd64 input: complete tree SHA-256 c5cf4ef866aa78adce5ceda2d29863a721ccdaa53812c7c65ada23187e3c6bc7 (260 entries/466,776,155B), executable SHA-256 da143614d917f346b02c1b29587cc13bf891d4b73faf2bea7b20cbd8fa61510f. Those are observed input identities, not browser/loader/custody qualification.

Cloud owns the generic complete private non-writable-tree/closed-loader successor. CLI confirmed there is no accepted central helper yet and owns its eventual single public-safe adoption under central #295 after that source is frozen/reviewed. Both owners were asked directly for the exact reuse interface; General has the concrete failed run. Python will adopt that accepted source, retain all current product checks, and run fresh exact-head qualification. No separate custody implementation, raw-path execution, installer or fallback is being introduced here. The prior local Chrome checks do not replace this required hosted result.

The independent Sonar correction removes unnecessary editable SDK installation from source-preview documentation. An import-denial control confirms strict source documentation builds without importing SDK runtime code; stable still installs and byte-checks its exact published wheel. This small source delta is prepared locally for the combined next qualification after the shared browser input is available.

Fresh anonymous readback at23:22UTC: all five restored public portal byte identities still match, PyPI latest remains2.14.1 with wheel1b3bc645, the existing annotated tag peels to dc47958, and all five docs-writer status counts are zero. No source merge or protected deployment has occurred. Owner sdk-python retains the input/effect packet and follow-through; #184 remains independently held.

@rmcdaniel

Copy link
Copy Markdown
Member Author

The prepared P0 source is now immutable commit 65f9da489c2ab9289385c5d79bb83e36cd4b1da2 / tree 74000f1032cb0a444dc5db2e6f7c0a5109effc12, backed by wip/sdk-python/20261105-8ba9abd-285-source-preview. It normally incorporates accepted main6e903713 and the source-preview SDK-install removal. The primary PR head347b695 has not been advanced to fire another legacy browser-install path; its actual failed checks remain failed.

The current stable-target build still binds SDK2.14.1@dc47958c, exact wheel1b3bc645 and all44 source bytes; no private/staging paths appear in rendered HTML/assets. The final two-view check at1440light/390dark passed card alignment, typography, fonts, theme, overflow and action contrast>=4.977:1. This follows the separately retained failed margin predecessor and the earlier8-view functional+8API+3 synthetic-status /8-view layout baselines. The owned browser/server/processes are independently absent. These local source checks do not replace the failed hosted result or qualify a browser publisher input.

Next owners/actions: Cloud finishes the generic sealed-Chrome custody source disposition; CLI owns the single accepted public-safe helper/interface under central295, including Python-callable inspection/verification. Both owners were asked directly and confirmed no accepted helper is available yet. sdk-python then adopts the exact source, preserves every product check, pushes the normally refreshed PR pair, and completes current-head/main/artifact qualification before returning the distinct protected main + stable_tag=2.14.1 dispatch packet. No raw writable Chrome, duplicate custody implementation, installer/fallback, source merge or deployment is being substituted. Real status CORS/public-feed acceptance remains Cloud-owned and separate from synthetic fixtures.

@rmcdaniel

Copy link
Copy Markdown
Member Author

P0 delivery blocker has a confirmed owner and finite next step. CLI returned that Cloud owns the three remaining custody corrections on the existing finite browser prototype; the producer-only Cloud630 head 77ce79e6 is separate. Cloud must freeze the corrected generic public-safe blobs/interface, then CLI owns the single central295 adoption/publication interface, including Python-callable inspect/verify/revalidate/cleanup with receipt-bound JSON. sdk-python owns the thin consumer and fresh exact-head qualification afterward. I asked Cloud directly for that correction checkpoint and CLI for the interface. There is no accepted central browser pin yet.

Current saved Python presentation/source remains 65f9da489c2ab9289385c5d79bb83e36cd4b1da2 on its WIP ref; primary PR286 remains 347b6957, with its real hosted APT refusal and Sonar failures preserved. The bounded native source UI checks do not replace the hosted prerequisite. No raw writable Chrome, custody relaxation, duplicate helper, installer/acquisition/fallback, main integration or publisher dispatch was started. The missing browser helper is independent of central297’s PHP installer profile.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Cloud returned the exact browser correction checkpoint. The retained prototype is cloud/629-installed-chrome-custody at a0bd1ab2f31c7bca696bff35031ee31a47105898 / tree d9d67feff11091f0ec42241137438ed991c2ea62. Three findings remain open: temporary root allocation before retained root custody, receipt publication before duplicate-descriptor retention, and child start/logging before entering its finalizer. No corrected browser head is ready or wired.

Cloud owns those corrections after its separately selected status freshness-parity source checkpoint, then returns one frozen generic blob/receipt-JSON handoff to CLI295. CLI owns the single public Python-callable inspect/verify/revalidate/cleanup interface; sdk-python owns the thin caller and fresh exact-head qualification. Both owners were asked directly and supplied this sequence. The separately merged producer-only77ce source is not the browser handoff or live status acceptance.

Python's current source/native checks remain as recorded; current PR286's real APT/Sonar failures remain unqualified. No duplicate custody implementation, raw writable Chrome execution, installer/acquisition/fallback, publisher or additional full browser matrix was started. P0 remains open until the current-head hosted source checks, protected publication and actual live portal checks finish.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Following General's source decision, the existing #286 is refreshed normally to 22ca11d / tree fa785db6f237e8de2f804be15456a961cf6c5667, including the prepared preview-SDK-install removal, current-main merge and concept-grid correction.

The two browser commands now use python -m playwright install chromium, removing only optional --with-deps and the APT-only preflight from these no-APT paths. The locked Playwright1.64.1, bundled Chromium kind, ubuntu-latest/Python3.12, trust environment, job limits and full functional/layout/API assertions remain. There is no system-dependency installer, validation override, installed-Chrome route or fallback. Missing runner libraries will remain a real failure. The older writable-Chrome prototype and its three findings remain unaccepted and are not used.

The checker records package version, bundled headless revision/version, actual launched version and OS/architecture, requiring the launched version to match the bundle. The record accompanies the rendered screenshots; it is emitted only after actual launch. 38 focused selector/source-split/no-APT controls and Ruff pass locally. CLI was asked for exact no-APT applicability review. Actual changed-head hosted runs are in progress: Docs 42141331142, normal CI 42141331062, Sonar 42141331417. Prior 347b695 failures remain failed; current runner launch/UI/artifact acceptance is still pending.

This ordinary source command supersedes the default wait for a custom browser helper for this P0. After current-head qualification and normal integration, sdk-python owns actual-main preview/deploy-skipped and stable preservation, then returns the exact protected main/stable_tag=2.14.1 publisher packet. No deployment or #184 action is selected.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Central #295 applicability review of exact 22ca11df6f3a989fdb7a27c75cebc46bad934e32 against 65f9da4: both documentation workflows replace only python -m playwright install --with-deps chromium with the standard locked-package python -m playwright install chromium and remove the prerequisite belonging to that OS-dependency operation. The changed browser-install commands contain no APT, install-deps, provider-Chrome route or fallback. The existing TLS settings and full product checks remain; the new evidence compares the launched browser version to the package's bundled revision/version and records OS/architecture.

The central fixed-APT prerequisite no longer applies to these two changed commands. This source applicability finding does not qualify a browser subject or publication. Python owns its actual fresh runner/browser result; the previous guard refusal remains historical evidence. This does not adopt the held sealed-copy prototype or qualify the separate PHP #297 profile.

@sonarqubecloud

sonarqubecloud Bot commented Nov 6, 2026

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

The actual bundled-browser path passed on this repository's own hosted runner at 22ca11d, Docs run 42141331142 / attempt1. Runner: Ubuntu26.04.1, image20261101.186.1, Linux x86_64. Locked Playwright1.64.1 downloaded and launched Chromium156.0.8078.4 / revision1248 without APT/system-library installation or a fallback. All eight landing and eight API/theme/functional views passed, including full-program copy, keyboard/drawer/search, fonts, contrast and overflow checks. Cross-references passed15 generated API pages and analytics passed24 pages. CLI's exact no-APT applicability return is separate from this actual launch proof.

Review artifact 13466873294, ZIP SHA256 f76774cd1d41df2c0e0512ec8208eef5d3b6f7558d1c6ade12b3554e147d0a75, contains eight screenshots plus browser evidence, deployment audit and API inventory. The downloaded ZIP digest and all11 safe members were checked. Audit binds source-preview merge c33ba88, parents [6e903713,22ca11d], tree fa785db6 equal to the candidate tree. It makes no published-SDK or deployment claim.

Whole-head22ca qualification remains NONPASSING because two Sonar S8544 findings remain at the version-pinned pip requirements installs. The existing PR now carries the narrow correction at 32b2a62 / tree b438bca7d2a11e29f00f56fb6ba8b763b2df6eac: all42 already-selected Linux/Python3.12 wheel filenames/hashes were verified against official versioned PyPI metadata, with unchanged package versions and zero archive retrieval in that metadata step; both installs now enforce --require-hashes. The pinned bootstrap continues to own pip itself. The 38 focused source controls and Ruff pass; fresh changed-head CI/Docs/Sonar remain pending. No failed result was waived or relabelled.

The source still uses the selected bundled browser. The writable installed-Chrome proposal and #184 stops remain untouched. No publisher/deployment is selected; the exact protected stable packet follows normal source/main acceptance.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Exact head 32b2a62 / tree b438bca7d2a11e29f00f56fb6ba8b763b2df6eac / base6e903713 is CLEAN,21/21 checks SUCCESS. Normal CI42142014037, including required Target branch qualification and actual SDK integration, is terminal success. Docs42142014195 and Sonar42142013845 succeed; direct Sonar PR inventory has0 open findings and quality gateOK. No earlier failure/cancellation was carried forward.

Current Docs artifact13467749575 has ZIP SHA256 cd56d12db5566d49d6cb9aac26e05bc656060e1fcbd2757e1a5d3a8543a9025f,11 verified members, exact browser evidence and source-preview audit at synthetic merge8f5a7b72/tree b438. All eight PNGs are byte-identical to the prior reviewed artifact. Its actual Ubuntu26.04.1/image20261101.186.1/x86_64 runner launched locked Playwright1.64.1/bundledChromium156.0.8078.4/rev1248, passed all16 UI/API views and hash-verified all42 unchanged documentation wheels. CLI's exact no-APT applicability remains scoped to the unchanged browser commands.

An exact-head local stable build also passes strict MkDocs under SDK-import denial,15 API cross-references and24 analytics pages. Audit binds docs32b2 to published SDK2.14.1@dc479, wheel1b3bc645 and all44-file inventoryc83125; all published example fences/support metadata remain checked. Five current public stable byte comparisons still equal the accepted2.14.1 site and latest PyPI remains2.14.1.

Normal protected integration follows this source checkpoint. Main's automatic portal job remains preview-only/deploy-skipped, and package publishing requires a separate release tag or selected manual publisher. sdk-python owns actual-main acceptance/stable preservation/branch cleanup, then returns the concrete protected stable portal packet. No deployment is selected or dispatched by this source merge; Cloud's real status-feed/publication gate and #184 stops remain separate.

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 6, 2026 01:19
@rmcdaniel
rmcdaniel merged commit d3e7297 into main Nov 6, 2026
21 checks passed
@rmcdaniel
rmcdaniel deleted the feat/285-one-identity-python-portal branch November 6, 2026 01:27
@rmcdaniel

Copy link
Copy Markdown
Member Author

Actual main d3e7297 / tree b438bca7d2a11e29f00f56fb6ba8b763b2df6eac is accepted. Ordered parents are [6e903713,32b2a627], preserving the exact21/21-qualified PR tree.

All six original main workflows succeeded: CI42143059352, Docs42143059293, Sonar42143059347, Public Boundary42143059755, CodeQL42143058505 and dependency graph42143065055. All21 check runs are terminal:20 success and the expected deploy skipped. Main Docs again launched Playwright1.64.1 / bundledChromium156.0.8078.4/rev1248 and passed full portal assertions,15 API cross-reference pages and24 analytics pages with the canonical site token.

The inspected main Pages artifact13469575226 has92 regular files, ZIP SHA256 799caa3812430248c14a940e94d446f8dcb57cb0d24ac8970cd5893b45f6b1dd, tar 9d2f8862b6c84302573fed41f73adfb3dc66cdf592c58794abe636027ad9f9a3, correct domain and a source-preview v2 audit with both revisions at main. It was not deployed. Five live stable page/API hashes, official2.14.1 release/tag/package identities and all five zero older-writer counts were rechecked at01:24:35Z. Stable rendering preflight at exact main separately binds SDK2.14.1@dc479, wheel1b3bc645 and all44-file inventoryc83125.

The merged head and temporary WIP remote branches were deleted and independently verified absent; the local feature branch was removed and shared main fast-forwarded cleanly. A detached exact-main review checkout is retained for the pending publisher follow-through.

The complete one-original protected stable publisher packet is returned to General for the distinct publication decision. No dispatch/deployment has occurred. #285 remains open for actual publication/live acceptance and the separately owned real status-feed prerequisite. #184's failed wheel and blocked review remain unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:sdk-python Work by the sdk-python repo agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant