- Rename Go module switchboard-core → armature (155+ files) - Rename Docker image → gobha/armature - Rename K8s resources, secrets, deployments - Rename Prometheus metrics switchboard_* → armature_* - Rename env vars SWITCHBOARD_ADMIN_* → ARMATURE_ADMIN_* - Rename DB names switchboard_core* → armature* - Update all frontend branding, notification templates, docs - Update CI scripts, e2e tests, Keycloak realm, nginx conf - Rename scripts/switchboard-ca.sh → scripts/armature-ca.sh - Rename k8s/switchboard.yaml → k8s/armature.yaml - Rename chart alerting/dashboard files - Fix: DockerHub push uses env: binding for secret injection - Helm chart updated (name, labels, template functions, dashboard, alerting) - Replace favicon/icon assets with Armature brand No functional changes. Pure mechanical rename + CI fix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
82 lines
2.3 KiB
JSON
82 lines
2.3 KiB
JSON
{
|
|
"id": "chat-core",
|
|
"title": "Chat Core",
|
|
"type": "library",
|
|
"tier": "starlark",
|
|
"version": "0.2.0",
|
|
"description": "Core chat library — conversations, messages, participants, read cursors. Usable by other packages via lib.require().",
|
|
"author": "armature",
|
|
|
|
"permissions": ["db.write", "realtime.publish"],
|
|
|
|
"exports": [
|
|
"create", "send", "history",
|
|
"add_participant", "remove_participant", "mark_read"
|
|
],
|
|
|
|
"api_routes": [
|
|
{"method": "GET", "path": "/conversations"},
|
|
{"method": "POST", "path": "/conversations"},
|
|
{"method": "GET", "path": "/conversations/*"},
|
|
{"method": "PUT", "path": "/conversations/*"},
|
|
{"method": "DELETE", "path": "/conversations/*"},
|
|
{"method": "GET", "path": "/messages/*"},
|
|
{"method": "POST", "path": "/messages/*"},
|
|
{"method": "PUT", "path": "/messages/*"},
|
|
{"method": "DELETE", "path": "/messages/*"},
|
|
{"method": "GET", "path": "/participants/*"},
|
|
{"method": "POST", "path": "/participants/*"},
|
|
{"method": "DELETE", "path": "/participants/*"},
|
|
{"method": "POST", "path": "/read/*"},
|
|
{"method": "GET", "path": "/search"},
|
|
{"method": "GET", "path": "/unread"}
|
|
],
|
|
|
|
"db_tables": {
|
|
"conversations": {
|
|
"columns": {
|
|
"title": "text",
|
|
"type": "text",
|
|
"created_by": "text",
|
|
"updated_at": "text"
|
|
},
|
|
"indexes": [["created_by"], ["updated_at"]]
|
|
},
|
|
"participants": {
|
|
"columns": {
|
|
"conversation_id": "text",
|
|
"participant_id": "text",
|
|
"participant_type": "text",
|
|
"display_name": "text",
|
|
"role": "text",
|
|
"joined_at": "text"
|
|
},
|
|
"indexes": [
|
|
["conversation_id"],
|
|
["participant_id"],
|
|
["conversation_id", "participant_id"]
|
|
]
|
|
},
|
|
"messages": {
|
|
"columns": {
|
|
"conversation_id": "text",
|
|
"participant_id": "text",
|
|
"content": "text",
|
|
"content_type": "text",
|
|
"edited_at": "text"
|
|
},
|
|
"indexes": [["conversation_id"]]
|
|
},
|
|
"read_cursors": {
|
|
"columns": {
|
|
"conversation_id": "text",
|
|
"participant_id": "text",
|
|
"last_read_message_id": "text"
|
|
},
|
|
"indexes": [["conversation_id", "participant_id"]]
|
|
}
|
|
},
|
|
|
|
"schema_version": 1
|
|
}
|