Skip to content

UI

Target Architecture — Final-State Design

This page describes the final-state Integration management surfaces inside Factory Studio, the factory's operator and developer experience. These surfaces are backed by the public APIs through a backend-for-frontend and are tenant-scoped, role-gated, and fully audited.

Integration management in Factory Studio gives operators and developers a single place to configure external connectivity, govern credentials, manage webhooks, and watch external health — without ever handling raw secrets. Every action maps to a governed API call, every change emits a canonical event, and everything is filtered by tenantId.

Surface Map

flowchart LR
    Studio["Factory Studio"] --> Conn["Connections"]
    Studio --> Prov["Providers & API Clients"]
    Studio --> Hooks["Webhooks"]
    Studio --> Health["External Health"]
    Conn --> Runs["Connection Runs & Failures"]
    Prov --> Creds["Credentials & Rotation"]
    Hooks --> Subs["Subscriptions"]
    Hooks --> Deliv["Deliveries"]
Hold "Alt" / "Option" to enable pan & zoom

Connections

The primary operator surface. Lists every IntegrationConnection for the tenant with provider, status, and live health.

  • List & filter connections by provider category, status (Active / Degraded / Retired), and project.
  • Establish connection wizard: pick a registered provider, choose an auth mode, bind a credential (by Key Vault reference — never by typing a secret into the page), set provider configuration, and run a live test.
  • Connection detail: health timeline, recent IntegrationRuns, configuration, and the bound credential reference. Drill into a run to see attempts, latency, and externalRef.
  • Retire connection with confirmation; emits IntegrationConnectionRetired.

Providers & API Clients

The Vendor Registry surface. Browse and register the providers and versioned ExternalApiClients the factory supports.

  • Provider catalogue with category, capabilities, auth model, and status, including global shared providers.
  • Register provider form and register API client (assembly + semver + declared capabilities), surfacing the Implemented clients (ConnectSoft.Deputy.ApiClient, ConnectSoft.Braze.ApiClient, ConnectSoft.Bill.ApiClient, the SMS providers, etc.) as ready-to-use.
  • Capability matrix showing which operations each provider/client supports.

Credentials & Rotation

Credential governance without secret exposure.

  • Credential list shows keyVaultRef, authMode, currentVersion, lastRotatedAt, and expiresAtnever the secret value.
  • Rotate now action (calls POST /integrations/credentials/rotate) with live verification status; shows whether the new version passed its verification run before promotion.
  • Rotation policy editor (cadence, expiry warnings). Upcoming expirations surface as alerts.

Webhooks

Both directions of the webhook gateway.

  • Subscriptions (outbound): create/edit subscriptions binding a factory eventType to an HTTPS endpoint with a signing-secret reference; toggle active; view egress audit.
  • Deliveries: searchable log of inbound and outbound WebhookDelivery records with direction, status, attempts, signature status, and per-attempt detail. Replay a delivery from its preserved payload (governed action).

External Health

A real-time view fed by the ExternalApiHealthWorker.

  • Health dashboard: per-provider/connection health (Healthy / Degraded / Unhealthy), latency, error rate, and open circuits.
  • Failure feed: live IntegrationFailure stream grouped by category, with links to the originating run/delivery and escalation status.
  • Cross-links into Observability dashboards for deeper trace analysis.

UX & Governance Principles

  • No secrets in the browser. Credential surfaces show references and metadata only; secret material never transits the UI.
  • Role-gated actions. Establishing connections, rotating credentials, and replaying deliveries require the corresponding security scopes; the UI hides actions the user cannot perform.
  • Every action is audited. UI-initiated changes carry the operator identity and traceId into the emitted event for full traceability.
  • Tenant-scoped by default. Operators only see their tenant's connections, providers, and deliveries.