Skip to content

Onboarding desk: a labelled, disposable production run through the live API - #1852

Merged
mishrasanjeev merged 1 commit into
mainfrom
feat/onboarding-desk-production-run
Oct 28, 2026
Merged

mishrasanjeev merged 1 commit into
mainfrom
feat/onboarding-desk-production-run

Conversation

@mishrasanjeev

Copy link
Copy Markdown
Owner

A one-off script that proves the onboarding desk in a production deployment, end to end but for the checks, with a tenant it creates and retires itself.

What it runs, through the public API

  • A signed lead from a partner form with SMS and email consents. An unsigned post is refused, and a repeated post finds the existing lead.
  • The contact rules for the lead (decisions only). The tenant has no message senders and auto_contact / sms_conversation are off, so nothing can be sent.
  • A signed link and the applicant's own session. A synthetic certificate is read and its three values confirmed, a US postal code for an Ontario address is refused, and the rest is answered and submitted.
  • No case is opened (auto_open off). Production refuses the mock provider and the example policies by design, and the checks need the verification partner's credential. The full flow with checks, decision and push stays in make e2e-onboarding-desk in CI.
  • The evidence pack verifies against the published key, both as built and as served.
  • The report counts one lead and one submitted application, and no contact attempt was recorded.
  • Retirement: the webhook source is switched off (a signed lead is then refused) and the tenant is soft-deleted. The rows stay for the audit trail.

The script prints one JSON summary with no secrets, tokens or contact values, and exits 0 only if every step passed. Runbook: docs/onboarding-desk/production-run.md.

Tests

  • tests/unit/test_onboarding_desk_production_run.py: 14 tests against a fake API and desk. They cover the full run, --keep, broken promises (a case opened, a contact attempt, an evidence mismatch) that still retire the tenant, the desk-off preflight, and the confirmation guard. They also check that the synthetic certificate is read by the real document reader.
  • 99% line coverage of the script.

…ve API

scripts/onboarding_desk_production_run.py creates its own tenant (named and tagged as a disposable
production run, no message senders, nothing automatic, no case on submission) and drives the desk
through the public API: a signed lead with consents (unsigned refused, repeat idempotent), the
contact rules, the applicant session with a synthetic certificate read and confirmed, a refused
postal code, the submission, the evidence pack verified with the published key as built and as
served, and the report with no contact attempt. It then switches the webhook source off and
soft-deletes the tenant. The checks stay in CI: production refuses the mock provider and the
example policies.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-28T03:36:25.601076Z f94a9a5 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f94a9a5fb3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

3. a signed link to the application, then the applicant's own session: a synthetic certificate is read
and its values confirmed, a wrong postal code is refused, the remaining answers are saved and the
application is submitted;
4. no governed case is opened (``auto_open`` off): the checks need the verification partner's credential,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use the required accredited-issuer terminology

The new script calls the credential holder a “verification partner” here and repeats that term in its runtime summary, changelog entry, and runbook. The root AGENTS.md explicitly requires “accredited issuer” instead of “verification partner”; replace these newly introduced occurrences consistently so the operational output and documentation follow the repository’s mandated terminology.

AGENTS.md reference: AGENTS.md:L41-L45

Useful? React with 👍 / 👎.

@mishrasanjeev
mishrasanjeev merged commit 364aea0 into main Oct 28, 2026
27 checks passed
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