This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/server/static/swagger.html
Jeffrey Smith f0dd43144e rebrand: Switchboard Core → Armature
- 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>
2026-03-31 21:39:58 +00:00

267 lines
13 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="color-scheme" content="light dark" />
<title>Armature — API Docs</title>
<link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5/swagger-ui.css" />
<style>
/* ── Palette — WCAG AA 4.5:1 minimum contrast ────────────────── */
:root {
--sw-bg: #ffffff;
--sw-bg-secondary: #f5f5f7;
--sw-bg-section: #fafafa;
--sw-text: #1b1b1b; /* 17.8:1 on #fff */
--sw-text-secondary:#4e4e4e; /* 8.5:1 on #fff */
--sw-text-muted: #636363; /* 6.1:1 on #fff */
--sw-border: #d5d5d5;
--sw-link: #1a56a8; /* 7.8:1 on #fff */
--sw-code-bg: #f0f0f2;
--sw-code-text: #1b1b1b;
--sw-input-bg: #ffffff;
--sw-input-border: #b0b0b0;
}
@media (prefers-color-scheme: dark) {
:root {
--sw-bg: #161625;
--sw-bg-secondary: #1e1e30;
--sw-bg-section: #222236;
--sw-text: #dcdce4; /* 13.5:1 on #161625 */
--sw-text-secondary:#a8a8b8; /* 8.0:1 on #161625 */
--sw-text-muted: #8e8ea0; /* 5.7:1 on #161625 */
--sw-border: #363648;
--sw-link: #7cacf8; /* 8.0:1 on #161625 */
--sw-code-bg: #1c1c2e;
--sw-code-text: #dcdce4;
--sw-input-bg: #1e1e30;
--sw-input-border: #484860;
}
}
/* ── Global ──────────────────────────────────────────────────── */
body { margin: 0; background: var(--sw-bg); color: var(--sw-text); }
.swagger-ui { background: var(--sw-bg); color: var(--sw-text); }
.swagger-ui .wrapper { background: var(--sw-bg); }
/* Hide default Swagger branding bar */
.swagger-ui .topbar { display: none; }
/* ── Override low-contrast utility classes ────────────────────── */
.swagger-ui .silver,
.swagger-ui .light-silver { color: var(--sw-text-muted); }
.swagger-ui .moon-gray,
.swagger-ui .gray { color: var(--sw-text-secondary); }
/* ── Info header ─────────────────────────────────────────────── */
.swagger-ui .info .title,
.swagger-ui .info .title small pre { color: var(--sw-text); }
.swagger-ui .info .base-url { color: var(--sw-text-secondary); }
.swagger-ui .info p,
.swagger-ui .info li,
.swagger-ui .info table td,
.swagger-ui .info table th,
.swagger-ui .renderedMarkdown p,
.swagger-ui .markdown p { color: var(--sw-text-secondary); }
.swagger-ui .info a,
.swagger-ui .renderedMarkdown a,
.swagger-ui .markdown a { color: var(--sw-link); }
.swagger-ui .info h1,
.swagger-ui .info h2,
.swagger-ui .info h3 { color: var(--sw-text); }
/* ── Scheme / server selector ────────────────────────────────── */
.swagger-ui .scheme-container {
background: var(--sw-bg-secondary);
box-shadow: none;
border-bottom: 1px solid var(--sw-border);
}
.swagger-ui .scheme-container .schemes > label { color: var(--sw-text); }
/* ── Tag groups ──────────────────────────────────────────────── */
.swagger-ui .opblock-tag {
color: var(--sw-text);
border-bottom-color: var(--sw-border);
}
.swagger-ui .opblock-tag small { color: var(--sw-text-muted); }
.swagger-ui .opblock-tag a { color: var(--sw-text-secondary); }
/* ── Operation blocks ────────────────────────────────────────── */
.swagger-ui .opblock .opblock-summary-description { color: var(--sw-text-secondary); }
.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated { color: var(--sw-text); }
.swagger-ui .opblock-description-wrapper p,
.swagger-ui .opblock-external-docs-wrapper p { color: var(--sw-text-secondary); }
/* Operation block section headers */
.swagger-ui .opblock .opblock-section-header {
background: var(--sw-bg-section);
border-bottom: 1px solid var(--sw-border);
box-shadow: none;
}
.swagger-ui .opblock .opblock-section-header h4 { color: var(--sw-text); }
.swagger-ui .opblock .opblock-section-header label { color: var(--sw-text-secondary); }
/* Operation block body (expanded) */
.swagger-ui .opblock-body { background: var(--sw-bg); }
.swagger-ui .opblock-body pre.microlight { background: var(--sw-code-bg); color: var(--sw-code-text); }
/* ── Parameters table ────────────────────────────────────────── */
.swagger-ui .parameters-col_name,
.swagger-ui .parameter__name { color: var(--sw-text); }
.swagger-ui .parameter__type { color: var(--sw-text-muted); }
.swagger-ui .parameter__deprecated { color: #dc3545; }
.swagger-ui .parameter__name.required::after { color: #dc3545; }
.swagger-ui .parameter__in { color: var(--sw-text-muted); }
.swagger-ui table thead tr td,
.swagger-ui table thead tr th {
color: var(--sw-text);
border-bottom-color: var(--sw-border);
}
.swagger-ui table tbody tr td { color: var(--sw-text-secondary); }
.swagger-ui .parameters-container,
.swagger-ui .responses-wrapper { background: var(--sw-bg); }
/* ── Responses ───────────────────────────────────────────────── */
.swagger-ui .response-col_status { color: var(--sw-text); }
.swagger-ui .response-col_description { color: var(--sw-text-secondary); }
.swagger-ui .response-col_links { color: var(--sw-text-muted); }
.swagger-ui .response-control-media-type__accept-message { color: var(--sw-text-muted); }
.swagger-ui .responses-inner { background: var(--sw-bg); }
.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5 { color: var(--sw-text); }
.swagger-ui .response .response-col_description__inner p { color: var(--sw-text-secondary); }
/* ── Models / Schemas ────────────────────────────────────────── */
.swagger-ui .model-title { color: var(--sw-text); }
.swagger-ui section.models { border-color: var(--sw-border); background: var(--sw-bg); }
.swagger-ui section.models h4 { color: var(--sw-text); }
.swagger-ui section.models .model-container { background: var(--sw-bg); border-bottom-color: var(--sw-border); }
.swagger-ui .model { color: var(--sw-text-secondary); }
.swagger-ui .model .property { color: var(--sw-text-secondary); }
.swagger-ui .model .property.primitive { color: var(--sw-text-muted); }
.swagger-ui .model-box { background: var(--sw-bg-secondary); }
.swagger-ui .model-toggle::after { color: var(--sw-text-secondary); }
.swagger-ui span.model-toggle { color: var(--sw-text-secondary); }
/* ── Code / pre blocks ───────────────────────────────────────── */
.swagger-ui pre,
.swagger-ui pre.microlight {
background: var(--sw-code-bg);
color: var(--sw-code-text);
border: 1px solid var(--sw-border);
border-radius: 4px;
}
.swagger-ui .highlight-code > .microlight code { color: var(--sw-code-text); }
.swagger-ui .example code,
.swagger-ui .model code {
background: var(--sw-code-bg);
color: var(--sw-code-text);
}
.swagger-ui .copy-to-clipboard { background: var(--sw-bg-section); }
/* ── Form controls ───────────────────────────────────────────── */
.swagger-ui select {
background: var(--sw-input-bg);
color: var(--sw-text);
border-color: var(--sw-input-border);
}
.swagger-ui input[type=text],
.swagger-ui input[type=search],
.swagger-ui input[type=email],
.swagger-ui input[type=password],
.swagger-ui input[type=file] {
background: var(--sw-input-bg);
color: var(--sw-text);
border-color: var(--sw-input-border);
}
.swagger-ui textarea {
background: var(--sw-input-bg);
color: var(--sw-text);
border-color: var(--sw-input-border);
}
.swagger-ui .body-param textarea {
background: var(--sw-input-bg);
color: var(--sw-text);
}
/* ── Buttons ──────────────────────────────────────────────────── */
.swagger-ui .btn {
color: var(--sw-text);
border-color: var(--sw-input-border);
background: transparent;
}
.swagger-ui .btn:hover { background: var(--sw-bg-secondary); }
.swagger-ui .btn.authorize { color: #49cc90; border-color: #49cc90; }
.swagger-ui .btn.cancel { color: #dc3545; border-color: #dc3545; }
.swagger-ui .btn.execute { color: #fff; background: #4990e2; border-color: #4990e2; }
.swagger-ui .try-out__btn { color: var(--sw-text-secondary); border-color: var(--sw-input-border); }
/* ── Tabs ─────────────────────────────────────────────────────── */
.swagger-ui .tab li { color: var(--sw-text-secondary); }
.swagger-ui .tab li.active { color: var(--sw-text); }
.swagger-ui .tab li button.tablinks { color: inherit; }
.swagger-ui .opblock .tab-header .tab-item { color: var(--sw-text-secondary); }
.swagger-ui .opblock .tab-header .tab-item.active h4 { color: var(--sw-text); }
/* ── Auth dialog ─────────────────────────────────────────────── */
.swagger-ui .dialog-ux .modal-ux {
background: var(--sw-bg);
border: 1px solid var(--sw-border);
}
.swagger-ui .dialog-ux .modal-ux-header { border-bottom-color: var(--sw-border); }
.swagger-ui .dialog-ux .modal-ux-header h3 { color: var(--sw-text); }
.swagger-ui .dialog-ux .modal-ux-content p { color: var(--sw-text-secondary); }
.swagger-ui .dialog-ux .modal-ux-content h4 { color: var(--sw-text); }
.swagger-ui .dialog-ux .modal-ux-content label { color: var(--sw-text); }
.swagger-ui .dialog-ux .backdrop-ux {
background: rgba(0,0,0,0.5);
}
/* ── Auth wrapper ────────────────────────────────────────────── */
.swagger-ui .auth-wrapper { background: var(--sw-bg); }
.swagger-ui .auth-wrapper .auth-container h4 { color: var(--sw-text); }
.swagger-ui .auth-wrapper .auth-container p { color: var(--sw-text-secondary); }
/* ── Filter / search ─────────────────────────────────────────── */
.swagger-ui .filter-container { background: var(--sw-bg-secondary); }
.swagger-ui .filter-container .operation-filter-input {
background: var(--sw-input-bg);
color: var(--sw-text);
border-color: var(--sw-input-border);
}
/* ── Loading ──────────────────────────────────────────────────── */
.swagger-ui .loading-container .loading::after { color: var(--sw-text-muted); }
/* ── Arrows / toggles ────────────────────────────────────────── */
.swagger-ui .expand-operation svg { fill: var(--sw-text-secondary); }
.swagger-ui .models-control svg { fill: var(--sw-text-secondary); }
.swagger-ui .expand-methods svg { fill: var(--sw-text-secondary); }
/* ── Markdown content inside descriptions ─────────────────────── */
.swagger-ui .renderedMarkdown code {
background: var(--sw-code-bg);
color: var(--sw-code-text);
padding: 2px 4px;
border-radius: 3px;
}
.swagger-ui .renderedMarkdown pre code {
padding: 0;
}
</style>
</head>
<body>
<div id="swagger-ui"></div>
<script src="https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js"></script>
<script>
SwaggerUIBundle({
url: window.location.pathname.replace(/\/$/, '') + '/openapi.json',
dom_id: '#swagger-ui',
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIBundle.SwaggerUIStandalonePreset],
layout: 'BaseLayout',
});
</script>
</body>
</html>