{
  "id": "studio-be1f435f-c55b-4664-8a6d-76589833fe6b",
  "scope": "studio_project",
  "source_of_truth": "supabase.studio_artifacts",
  "source_path": "studio_artifacts/be1f435f-c55b-4664-8a6d-76589833fe6b",
  "source_kind": "supabase_json",
  "visibility": "internal",
  "renderer_id": "design_doc.dreamborn-forge.generated.v1",
  "design_system": "dreamborn-design-system:forge",
  "generated_at": "2026-05-10T18:19:39.277Z",
  "artifact_type": "connector-credential-spec",
  "schema_version": "connector-credential.v1",
  "title": "Bezel Workflow connector-credential-spec",
  "summary": "connector-credential-spec artifact · for Bezel Workflow · status draft",
  "status": "draft",
  "version": 1,
  "phase_id": null,
  "project_id": "d7ee6565-842e-4d74-9eda-84c2ed2fe1d6",
  "project_slug": "redkey-bezel-workflow-d7ee6565",
  "project_title": "Bezel Workflow",
  "client_id": "redkey",
  "platform_project_id": null,
  "created_at": "2026-05-09T13:17:31.395084+00:00",
  "updated_at": "2026-05-09T13:17:30.522+00:00",
  "format_source": "supabase_json",
  "content_shape": [
    "kind",
    "repo",
    "project",
    "purpose",
    "created_by",
    "updated_at",
    "schema_version",
    "n8n_gap_to_match",
    "source_memory_id",
    "connector_manifest",
    "bezel_differentiators",
    "architecture_decision_ref",
    "credential_reference_model",
    "initial_connector_sequence",
    "self_healing_policy_levels"
  ],
  "content_data": {
    "kind": "connector-credential-spec",
    "repo": "/Users/justinking/Vaults/Projects/bezel-api",
    "project": "Bezel Workflow",
    "purpose": "Define the connector and credential model needed to compete with n8n/Zapier while preserving Bezel’s agent-native pull queue architecture.",
    "created_by": "atlas-codex",
    "updated_at": "2026-05-09T13:17:30.522Z",
    "schema_version": "connector-credential.v1",
    "n8n_gap_to_match": [
      "large credential library",
      "node/action catalog",
      "workflow execution visibility",
      "manual testing from builder"
    ],
    "source_memory_id": "99edd8d2-5780-43a2-bbd0-03982353768a",
    "connector_manifest": {
      "id": "gmail",
      "auth": [
        {
          "type": "oauth2",
          "scopes": [
            "gmail.send",
            "gmail.readonly"
          ],
          "credential_fields": []
        }
      ],
      "name": "Gmail",
      "roles": [
        "roles.gmail"
      ],
      "actions": [
        {
          "id": "email.send",
          "title": "Send email",
          "self_heal": "schema_interpretation_allowed",
          "input_schema_ref": "gmail.email_send.input.v1",
          "output_schema_ref": "gmail.email_send.output.v1"
        },
        {
          "id": "email.search",
          "title": "Search email",
          "self_heal": "limited",
          "input_schema_ref": "gmail.email_search.input.v1",
          "output_schema_ref": "gmail.email_search.output.v1"
        }
      ],
      "version": "1.0.0",
      "triggers": [
        {
          "id": "email.received",
          "type": "poll|webhook",
          "output_schema_ref": "gmail.email_event.v1"
        }
      ],
      "rate_limits": {
        "strategy": "connector_default|credential_scoped|workspace_scoped"
      },
      "local_adapter": "mcp:gmail or sdk:gmail",
      "hosted_adapter": "oauth-backed Bezel connector runner"
    },
    "bezel_differentiators": [
      "role-based connector agent pools",
      "step-level pull claims",
      "self-healing response interpretation",
      "structured completion events",
      "runtime redaction boundary"
    ],
    "architecture_decision_ref": "3a1bb081-67f9-41ae-9600-a91fbb14ecda",
    "credential_reference_model": {
      "audit": [
        "created_by",
        "last_used_at",
        "last_used_by_run_id",
        "last_used_by_step_id"
      ],
      "scope": "workflow|workspace|user|local_machine",
      "auth_type": "oauth2|api_key|service_account|local_env|doppler|mcp_session",
      "connector": "gmail",
      "credential_ref": "cred_gmail_ops",
      "secret_pointer": "opaque pointer only; never raw secret",
      "vault_provider": "local_keychain|doppler|gcp_secret_manager|cloudflare_secret|postgres_encrypted_reference",
      "allowed_actions": [
        "email.send",
        "email.search"
      ]
    },
    "initial_connector_sequence": [
      "HTTP webhook/request",
      "Gmail",
      "Google Sheets",
      "HubSpot",
      "Slack",
      "Local filesystem/repo command connector for internal dogfooding"
    ],
    "self_healing_policy_levels": [
      {
        "level": "none",
        "behavior": "Strict schema; fail on unexpected response."
      },
      {
        "level": "interpret_response",
        "behavior": "Agent may map unexpected but semantically obvious response fields to expected output schema and record evidence."
      },
      {
        "level": "retry_with_adjusted_request",
        "behavior": "Agent may adjust request params/body within declared action schema and retry."
      },
      {
        "level": "human_approval_required",
        "behavior": "Agent proposes connector repair/remediation and pauses for approval before continuing."
      },
      {
        "level": "code_repair_prohibited_v1",
        "behavior": "No autonomous connector code changes in V1 production runtime."
      }
    ]
  },
  "sections": [
    {
      "title": "Artifact Shape",
      "level": 2,
      "body": "- kind: connector-credential-spec\n- repo: /Users/justinking/Vaults/Projects/bezel-api\n- project: Bezel Workflow\n- purpose: Define the connector and credential model needed to compete with n8n/Zapier while preserving Bezel’s agent-native pull queue architecture.\n- created by: atlas-codex\n- updated at: 2026-05-09T13:17:30.522Z\n- schema version: connector-credential.v1\n- n8n gap to match: 4 items\n- source memory id: 99edd8d2-5780-43a2-bbd0-03982353768a\n- connector manifest: id: string, auth: object, name: string, roles: object, actions: object, version: string, triggers: object, rate_limits: object, local_adapter: string, hosted_adapter: string\n- bezel differentiators: 5 items\n- architecture decision ref: 3a1bb081-67f9-41ae-9600-a91fbb14ecda"
    }
  ],
  "html_path": "projects/redkey-bezel-workflow-d7ee6565/artifacts/connector-credential-spec-be1f435f.html",
  "json_path": "projects/redkey-bezel-workflow-d7ee6565/artifacts/connector-credential-spec-be1f435f.json"
}