replica-omnisciente/.aurelio/connectors/registry.yaml
Raphael Cautus (Maestro) 749432fefc feat(brain): garden, mirrors, vault-sync, provider registry consolidation
- .aurelio/garden/: model + agent garden (Google Cloud entries)
- .aurelio/mirrors/: sync-mirrors.yaml + state tracking
- .aurelio/skills/gcp/: Google Cloud skill
- Consolidation audit + execution plan (2026-07-30)
- vault-sync.py: Obsidian → GBrain MCP ingestion daemon
- brain-to-gbrain.py: brain → GBrain migration tool
- Provider registry + dist mirrors updated
- .gitignore: exclude .runner, .mimocode/.cron-lock, drift/target

Co-authored-by: Álvaro de Campos <campos@portugalfuturista.org>
2026-07-31 14:57:24 +01:00

345 lines
12 KiB
YAML

# Aurélio Connector Hub — single source of truth
#
# ONE place external integrations are declared. All surfaces derive from it via
# scripts/generate-connector-mirrors.py:
#
# * .aurelio/connectors/dist/mcp.connectors.json -> MCP fleet / model router
# * .aurelio/connectors/dist/theia.connectors.json -> @aurelio/mcp Connections view
#
# Schema per entry:
# id stable machine id
# label human label (UI)
# category saas | cad | daw | edm | devops | cloud | iot | other
# kind mcp | oauth | api-key | sidecar
# mcp -> remote MCP server (existing *.portugalfuturista.org fleet)
# oauth -> SaaS OAuth2 (authorization-code) — needs a tenant/client id
# api-key -> SaaS token
# sidecar -> local native-host bridge (COM / Remote Script / OSC)
# auth none | oauth2 | api_key | sidecar
# endpoint remote base url (kind=mcp) or api root (oauth/api-key); null for sidecar
# surfaces which downstreams get this connector: mcp | theia | portal
# status declared | provisioned | live
# declared -> catalogued only; no secrets/host wired yet
# provisioned -> secrets present / sidecar built; not exercised
# live -> verified end-to-end against the real host
# scopes OAuth scopes (auth=oauth2) — documentation until provisioned
# host sidecar host platform (kind=sidecar): windows | macos | any
# notes provenance / caveats
#
# Regenerate mirrors after editing:
# python3 scripts/generate-connector-mirrors.py --write-in-place
# python3 scripts/generate-connector-mirrors.py --check # CI guard
#
# NOTE: `status: declared` is the honest default — real OAuth tenants, MCP
# servers, and native sidecars are per-connector follow-ups, NOT implied by
# listing here. Declaring a connector is the catalog step, not the integration.
version: 1
connectors:
# ── DevOps (forges / IaC / k8s) ───────────────────────────────────────────
- id: forgejo
label: Forgejo (self-hosted git + actions)
category: devops
kind: api-key
auth: api_key
endpoint: https://code.portugalfuturista.org
surfaces: [mcp, theia, portal]
status: live
scopes: []
host: null
notes: DEFAULT forge (self-hosted first policy). LAN origin 192.168.0.9:3001. CLI = tea. Tokens in Vaultwarden.
- id: github
label: GitHub — upstream mirror source
category: devops
kind: api-key
auth: api_key
endpoint: https://api.github.com
surfaces: [mcp, theia]
status: declared
scopes: [repo, read:org]
host: null
notes: |
Upstream source for the mirror pipeline (GitHub → Forgejo) and public mirrors.
Forgejo is the default forge. PAT (classic, repo+read:org scope) in GITHUB_MIRROR_TOKEN.
Configured in .aurelio/mirrors/sync-mirrors.yaml under targets.forgejo. CLI = gh.
- id: kubernetes
label: Kubernetes
category: devops
kind: sidecar
auth: sidecar
endpoint: null
surfaces: [theia]
status: declared
scopes: []
host: any
notes: CLI-driven (kubectl/helm). k3s on Proxmox is the self-hosted target; kubeconfig per cluster.
- id: terraform
label: Terraform / OpenTofu
category: devops
kind: sidecar
auth: sidecar
endpoint: null
surfaces: [theia]
status: declared
scopes: []
host: any
notes: "CLI-driven IaC. Prefer OpenTofu (license). State backend: MinIO S3 (self-hosted)."
- id: ansible
label: Ansible
category: devops
kind: sidecar
auth: sidecar
endpoint: null
surfaces: [theia]
status: declared
scopes: []
host: any
notes: CLI-driven config management for the Proxmox fleet (asus/gigabyte/lattepanda).
# ── Cloud (public + self-hosted emulators) ────────────────────────────────
- id: aws
label: AWS
category: cloud
kind: api-key
auth: api_key
endpoint: https://aws.amazon.com
surfaces: [mcp, theia]
status: declared
scopes: []
host: null
notes: Production AWS only when explicitly required. Dev = aws-localstack/minio endpoints. CLI = aws.
- id: aws-localstack
label: LocalStack (AWS emulator)
category: cloud
kind: api-key
auth: api_key
endpoint: http://192.168.0.40:4566
surfaces: [mcp, theia]
status: declared
scopes: []
host: null
notes: Self-hosted AWS emulation on lattepanda. CLI = aws --endpoint-url or awslocal.
- id: minio
label: MinIO (S3-compatible, self-hosted)
category: cloud
kind: api-key
auth: api_key
endpoint: http://192.168.0.40:9000
surfaces: [mcp, theia, portal]
status: declared
scopes: []
host: null
notes: Self-hosted S3 on lattepanda (console :9001). Default object store + Terraform state backend.
- id: google-cloud
label: Google Cloud
category: cloud
kind: oauth
auth: oauth2
endpoint: https://cloudresourcemanager.googleapis.com
surfaces: [mcp, theia, portal]
status: provisioned
scopes:
- cloud-platform
- https://www.googleapis.com/auth/gmail.readonly
- https://www.googleapis.com/auth/calendar.readonly
- https://www.googleapis.com/auth/userinfo.profile
- https://www.googleapis.com/auth/contacts.readonly
- https://www.googleapis.com/auth/cloud-platform.read-only
host: null
notes: |
PF default Google Cloud project civil-rarity-497813-r6 (€25k credits).
Vertex AI Model Garden + Gemini APIs enabled; OAuth client configured for Workspace research ingestion.
CLI = gcloud. Service-account fallback via GOOGLE_APPLICATION_CREDENTIALS for batch/background jobs.
Self-hosted dev: firebase emulators / fake-gcs-server only; no full GCP emulator.
- id: google-cloud-vertex
label: Google Cloud Vertex AI (Model Garden)
category: cloud
kind: api-key
auth: api_key
endpoint: https://us-central1-aiplatform.googleapis.com
surfaces: [mcp, theia, portal]
status: provisioned
scopes: []
host: null
notes: |
Vertex AI enterprise inference endpoint. Uses GOOGLE_CLOUD_API_KEY or service-account.
See .aurelio/garden/model-garden/google-cloud.yaml for model IDs and context windows.
- id: azure
label: Microsoft Azure
category: cloud
kind: oauth
auth: oauth2
endpoint: https://management.azure.com
surfaces: [mcp, theia]
status: declared
scopes: [user_impersonation]
host: null
notes: CLI = az. Dev storage = azure-azurite.
- id: azure-azurite
label: Azurite (Azure Storage emulator)
category: cloud
kind: api-key
auth: api_key
endpoint: http://192.168.0.40:10000
surfaces: [mcp, theia]
status: declared
scopes: []
host: null
notes: Self-hosted Azure Storage emulation on lattepanda (blob :10000, queue :10001, table :10002).
- id: cloudflare
label: Cloudflare
category: cloud
kind: api-key
auth: api_key
endpoint: https://api.cloudflare.com/client/v4
surfaces: [mcp, theia]
status: declared
scopes: []
host: null
notes: Tunnel pf-tunnel-v2 on asus terminates *.portugalfuturista.org. CLIs = cloudflared, wrangler.
- id: vercel
label: Vercel
category: cloud
kind: api-key
auth: api_key
endpoint: https://api.vercel.com
surfaces: [mcp, theia]
status: declared
scopes: []
host: null
notes: CLI = vercel. Edge deploys only when Forgejo Pages/static hosting is not enough.
# ── IoT ───────────────────────────────────────────────────────────────────
- id: aws-iot
label: AWS IoT Core
category: iot
kind: api-key
auth: api_key
endpoint: https://iot.amazonaws.com
surfaces: [mcp, theia]
status: declared
scopes: []
host: null
notes: Device registry/shadows for savearth firmware. Uses aws connector credentials. CLIs = aws iot, mosquitto-clients.
- id: mqtt-local
label: MQTT (self-hosted broker)
category: iot
kind: api-key
auth: api_key
endpoint: null
surfaces: [mcp, theia]
status: declared
scopes: []
host: null
notes: Self-hosted mosquitto/EMQX broker — endpoint TBD when deployed. CLIs = mosquitto_pub/sub.
# ── SaaS (Office / Atlassian) ─────────────────────────────────────────────
- id: microsoft-graph
label: Microsoft 365 (Graph)
category: saas
kind: oauth
auth: oauth2
endpoint: https://graph.microsoft.com/v1.0
surfaces: [mcp, theia]
status: declared
scopes: [User.Read, Mail.Read, Calendars.Read, Files.Read, offline_access]
host: null
notes: Entra ID app registration required; exposes Outlook/OneDrive/Calendar/Teams via Graph.
- id: atlassian
label: Atlassian (Jira + Confluence) — upstream mirror source
category: saas
kind: api-key
auth: api_key
endpoint: https://api.atlassian.com
surfaces: [mcp, theia]
status: declared
scopes: [read:jira-work, read:confluence-content.all, offline_access]
host: null
notes: |
Uppstream source for the mirror pipeline (Jira → Plane, Confluence → Outline).
Uses API-token auth (email + token), not OAuth, for server-side sync.
Configured in .aurelio/mirrors/sync-mirrors.yaml under targets.plane/outline.
Fetch tokens from Vaultwarden; env vars JIRA_API_TOKEN/JIRA_USER_EMAIL and
CONFLUENCE_API_TOKEN/CONFLUENCE_USER_EMAIL.
# ── Self-hosted mirrors (receive upstream via sync-mirrors.py) ────────────
- id: plane
label: Plane (issue tracker — Jira mirror)
category: devops
kind: api-key
auth: api_key
endpoint: https://plane.portugalfuturista.org
surfaces: [mcp, theia, portal]
status: live
scopes: []
host: null
notes: |
Self-hosted Plane. Mirror target for Jira issues via scripts/sync-mirrors.py --sync plane.
Workspace: savearth. Token env: PLANE_API_TOKEN. REST API under /api/v1/.
- id: outline
label: Outline (docs — Confluence mirror)
category: devops
kind: api-key
auth: api_key
endpoint: https://docs.portugalfuturista.org
surfaces: [mcp, theia, portal]
status: live
scopes: []
host: null
notes: |
Self-hosted Outline. Mirror target for Confluence pages via scripts/sync-mirrors.py --sync outline.
Collection: "Savearth Mirror". Token env: OUTLINE_API_TOKEN. REST API under /api/.
# ── Creative / CAD hosts (sidecar bridges, NOT VSIXs) ─────────────────────
- id: solidworks
label: SolidWorks
category: cad
kind: sidecar
auth: sidecar
endpoint: null
surfaces: [theia]
status: declared
scopes: []
host: windows
notes: Windows-only. Bridge = COM/ISldWorks automation agent (or VBA add-in) -> MCP over loopback. Surfaces part/assembly/drawing ops.
- id: ableton-live
label: Ableton Live
category: daw
kind: sidecar
auth: sidecar
endpoint: null
surfaces: [theia]
status: declared
scopes: []
host: any
notes: Bridge = Ableton Remote Script (Control Surface) or Max-for-Live device -> OSC/MCP. Surfaces transport/track/clip/scene ops.
# ── Reference: an already-live MCP connector (documents the `live` shape) ──
- id: knowledge-mcp
label: Knowledge MCP
category: other
kind: mcp
auth: none
endpoint: https://knowledge-mcp.portugalfuturista.org/sse
surfaces: [mcp, theia]
status: live
scopes: []
host: null
notes: Existing fleet member in .aurelio/mcp_config.json — listed as the reference `live` connector shape.