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.
Jeffrey Smith 20572ef665
All checks were successful
CI/CD / detect-changes (pull_request) Successful in 4s
CI/CD / test-runners (pull_request) Has been skipped
CI/CD / e2e-smoke (pull_request) Has been skipped
CI/CD / test-frontend (pull_request) Successful in 5s
CI/CD / test-sqlite (pull_request) Successful in 2m54s
CI/CD / test-go-pg (pull_request) Successful in 2m56s
CI/CD / build-and-deploy (pull_request) Successful in 1m1s
Feat v0.7.6 code hygiene + test coverage
Clean up channels-era dead code, align migrations, add 92 tests,
and fix backup download + admin storage tab bugs before v0.8.x
kernel expansion.

Critical fixes:
- Remove `channels` from allowedViews in db_module.go
- Fix 5 dead API routes in workflow.html → public workflow API
- Fix RenderWorkflow handler to use route param as entry token

Dead code removal:
- Delete SeedTestChannel(), RunContext.ChannelID, webhook.ChannelID
- Fix stale comments in storage.go, prometheus.go, workflow_module.go

Migration hygiene:
- Add SQLite placeholder 013_cluster_registry.sql, renumber to 014
- Compat rename in migrate.go for existing SQLite databases
- Document missing migration 008 in both 009 files

Test coverage:
- 82 workflow routing tests (all operators, branch rules, stage resolution)
- 10 middleware tests (permissions, admin, rate limiter)

Bug fixes:
- Remove dead Admin Storage tab from System category
- Fix backup download: sw.auth.token() → sw.auth._getToken()

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 17:31:46 +00:00
2026-03-31 23:25:37 +00:00
2026-04-02 17:02:35 +00:00
2026-04-02 17:02:35 +00:00
2026-04-01 20:19:45 +00:00
2026-03-31 23:25:37 +00:00
2026-03-17 22:31:34 +00:00
2026-03-31 23:25:37 +00:00
2026-03-31 23:25:37 +00:00
2026-03-31 23:25:37 +00:00
2026-02-03 21:28:18 +00:00
2026-03-31 12:01:51 +00:00
2026-03-31 23:25:37 +00:00

Armature

A self-hosted extension platform. Identity, teams, permissions, workflows, and a package system. Everything else ships as installable extensions.

What This Is

Armature is the kernel. It provides the primitives that extensions build on: users, teams, groups, scoped credentials, a Starlark sandbox, workflow orchestration, notifications, and a package installer. It does not include AI chat, providers, personas, or any domain-specific features — those are all extension packages.

Stack

  • Backend: Go / Gin
  • Frontend: Preact + htm (no build step)
  • Database: PostgreSQL (production) + SQLite (dev/test/edge)
  • Sandbox: Starlark with capability-gated modules
  • Deployment: Single Docker image, Kubernetes

Quick Start

# Docker (recommended)
docker compose up --build
# → http://localhost:3000  (admin/admin)

# Or from source
git clone <repo-url> && cd armature
cp server/.env.example server/.env  # edit DB credentials
cd server && go run .
# → http://localhost:8080

Bundled packages (workflows, surfaces, task manager) are auto-installed on first boot. See Distribution Guide for production deployment and customization.

Kernel Features

  • Auth: Builtin password, mTLS (client cert), OIDC (Keycloak et al.)
  • Teams & Groups: Horizontal isolation + vertical permissions
  • Packages: Unified registry for surfaces, extensions, libraries, workflows
  • Starlark Sandbox: Capability-gated server-side scripting for extensions
  • Workflows: Staged processes with forms, review, and webhooks
  • Connections: Scoped credential storage (global/team/personal), AES-256-GCM encrypted
  • Notifications: In-app with per-type preferences
  • Audit Log: All admin operations logged
  • Object Storage: PVC or S3-compatible
  • Multi-Replica HA: PG-backed WS tickets and rate limit counters

Documentation

Project Status

v0.5.0 — Realtime pub/sub primitive, dialog audit, and admin permissions UI. Extensions can now publish events to WebSocket channels via Starlark; clients subscribe with sw.realtime.subscribe(). Admin Packages page gains per-permission grant/revoke controls and status badges. See ROADMAP.md for the full journey from v0.1.0 kernel extraction through v0.3.x workflows, v0.4.x Notes surface, to v0.5.x realtime and chat.

License

Proprietary. All rights reserved.

Description
No description provided
Readme Apache-2.0 23 MiB
v0.9.9 Latest
2026-04-03 20:11:58 +00:00
Languages
Go 52.1%
JavaScript 34.6%
CSS 5.5%
Shell 3.8%
HTML 2%
Other 1.9%