- 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>
95 lines
2.6 KiB
Markdown
95 lines
2.6 KiB
Markdown
# Package Registry
|
|
|
|
The package registry lets admins browse and install packages from an external
|
|
JSON index — a lightweight alternative to manually uploading `.pkg` files.
|
|
|
|
## Registry JSON Format
|
|
|
|
The registry is a static JSON file matching the `RegistryResponse` struct:
|
|
|
|
```json
|
|
{
|
|
"packages": [
|
|
{
|
|
"id": "notes",
|
|
"title": "Notes",
|
|
"version": "0.8.0",
|
|
"description": "Markdown notes with backlinks and graph view",
|
|
"author": "armature",
|
|
"type": "extension",
|
|
"tier": "core",
|
|
"download_url": "https://cdn.example.com/pkg/notes.pkg",
|
|
"size": 48200,
|
|
"updated_at": "2026-03-20T00:00:00Z"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Required Fields
|
|
|
|
| Field | Description |
|
|
|----------------|------------------------------------------------|
|
|
| `id` | Package identifier (matches `manifest.json`) |
|
|
| `title` | Display name |
|
|
| `version` | Semver version string |
|
|
| `description` | Short description |
|
|
| `download_url` | HTTPS URL to the `.pkg` file (must be HTTPS) |
|
|
|
|
### Optional Fields
|
|
|
|
| Field | Description |
|
|
|--------------|------------------------------------------|
|
|
| `author` | Package author |
|
|
| `type` | `extension` or `library` |
|
|
| `tier` | `core`, `official`, or `community` |
|
|
| `size` | File size in bytes |
|
|
| `updated_at` | ISO 8601 timestamp of last update |
|
|
|
|
## Configuring the Registry URL
|
|
|
|
### Via Admin UI
|
|
|
|
Navigate to **Admin > Settings > Package Registry** and enter the registry URL.
|
|
|
|
### Via API
|
|
|
|
```bash
|
|
curl -X PUT /api/v1/admin/settings/package_registry \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"value": {"url": "https://cdn.example.com/pkg/registry.json"}}'
|
|
```
|
|
|
|
## Generating a Registry
|
|
|
|
Use `scripts/generate-registry.sh` to build a `registry.json` from a
|
|
directory of `.pkg` files:
|
|
|
|
```bash
|
|
# Default: reads dist/, uses placeholder base URL
|
|
./scripts/generate-registry.sh
|
|
|
|
# Custom directory and base URL
|
|
./scripts/generate-registry.sh ./my-packages https://cdn.example.com/pkg > registry.json
|
|
```
|
|
|
|
Requirements: `jq`, `unzip`, and `stat` (GNU or BSD).
|
|
|
|
## Self-Hosting
|
|
|
|
Any HTTPS-capable file server works. Upload your `.pkg` files and the
|
|
generated `registry.json` to the same directory, then point the admin
|
|
setting to the `registry.json` URL.
|
|
|
|
Example with a static file server:
|
|
|
|
```
|
|
/var/www/packages/
|
|
registry.json
|
|
notes.pkg
|
|
chat.pkg
|
|
chat-core.pkg
|
|
```
|
|
|
|
The registry is fetched and cached for 5 minutes on each browse request.
|