feat(identity): add release-selected remote managed identity - #7601
Closed
baxen wants to merge 2 commits into
Closed
feat(identity): add release-selected remote managed identity#7601baxen wants to merge 2 commits into
baxen wants to merge 2 commits into
Conversation
Capture remote signing authority separately from login lifecycle, preserve OSS local custody, and gate local-secret capabilities. Fail closed before corporate media transport and bound managed read proofs to backend policy. Signed-off-by: Bradley Axen <baxen@squareup.com>
The d7a54a8 mobile scope/cancellation content was already integrated and fully tested in the feature tree. Resolve overlapping hunks to that exact tested tree without reapplying the base behavior. Signed-off-by: Bradley Axen <baxen@squareup.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack and scope
Draft; not rollout/staging-ready. Depends on async EventSigner extraction #7600. Target is
baxen/async-event-signer-extraction, not main. Closest existing PR: #7600 (the neutral extraction); no existing remote-managed-identity PR was found before creating this draft.Adds release-selected organization-held identity to desktop and mobile, with captured
RemoteEventSignercapabilities separate from login/token ownership. OSS retains local custody and optional local media auth. Managed mode cannot fall back to generating/importing/exporting a local human key. Nostr event construction and publication remain outside the signer; exact returned event fields, author, ID and signature are verified. Relay/session generation and ACK-ID checks fence asynchronous operations.Local-secret-dependent pairing, key backup/export, encrypted personal sync/reminders, local managed-agent custody and analogous operations are explicitly unavailable rather than silently replaced by plaintext publication. See desktop/MANAGED_IDENTITY.md and mobile/MANAGED_IDENTITY.md for product differences, lifecycle and exclusions.
Media review fixes
Cross-repository contract
POST <signerUrl>v1/buzz/identity/ensureandPOST <signerUrl>v1/buzz/identity/sign; default deployment prefix/cash-app/goose/, no legacy aliases. Sign returns a signature, never ordinary publication. Ensure's initial provisioning is separate.signerUrl,issuer,clientId,audience,organization,connection,redirectUri. Releaseenvironmentis not an eighth client field.signerUrlincludes deployment prefix, not a full endpoint; no client secrets/tokens in build configuration.http://127.0.0.1:<fixed-port>/enterprise-callback(busy bind fails); mobilebuzz://enterprise-login.squareup/cash-server#124571at703f02195041fd53deadbdd95ee885f6f75a4919, release draftsquareup/buzz-releases#94ated54ec3ba7ceb2c1835bf68450771c0a77432731. Auth0 Terraform draft Add agent conversation domain model #1385 remains unbound/deny-only pending corporate-authority choice and active-infrastructure authorization. These are source contracts, not deployed-service evidence.Validation and provenance
Fresh full affected suites on frozen source (HEAD was
59ad3ee6…with prepared changes), subsequently verified byte-identical to committed treeb3d50467f5bd3a9ff752a8490bc1a57e690d675c:cargo test --locked --manifest-path desktop/src-tauri/Cargo.toml: 3203 unit + 10 integration passed; 21 ignored.cargo test … compiled_corporate -- --ignored: 2 passed, including real AppState no-key/import guard and new zero-transport regression. Native source matches final tree; no live credentials.cargo clippy --locked … --all-targets -- -D warnings: passed.flutter test --no-pub --reporter expanded: 2171 passed;flutter analyze --no-pub: clean; Dart format 563 files, zero changes; Rust fmt/diff whitespace checks passed.Reused, not rerun, from matching unchanged source manifests: WS 25 tests/clippy; frontend 6504 JS tests, 2 synthetic Chromium login tests, TypeScript/Biome/text checks and protected internal/OSS build matrix; actual compiled config parser tests, intended missing-system-keyring guard; mobile synthetic define parser (1), actual release source check and three actual Swift emoji sources compiled for iOS 16 arm64 simulator. Native/Flutter suites were rerun because their packages changed. Existing frontend warnings remain as documented in prior evidence.
Full frozen patch SHA256 including all new files:
1596261030009319ddaa0c21f6607cd78d93a2e488ecfb6ac19bfd126c1ab902. Feature-only patch againstd7a54a876…:3242be95c6e29fcc372681453882420e28a384a1e949341d0d498de665913e4b. Local durable evidence:/Users/baxen/Development/buzz-remote-managed-identity-artifacts/final-38c81a13/(logs, before/after manifests, full patches, self-review); inherited evidence attribution is explicit, not a claim all suites ran at the merge SHA. Package/static checks were run directly; wrapper hooks were skipped to avoid installing through shared dependency symlinks or packaging empty sidecar placeholders. A fresh repository-widejust ci/packaged-app build was not run.The extraction's newer mobile content had already been integrated manually. A normal local merge records
d7a54a876…ancestry, resolving six overlapping files to the reviewed/tested content; merge tree equals feature content tree exactly. No published history rewritten. Size measured honestly: 145 files +5790/−409 feature-only; combined stack from original baseline 164 files +7262/−567, versus original enterprise implementation 104 files +3721/−318. This is not a file-count reduction claim.Remaining limitations / blocked runtime gates