No description
  • Go 93.3%
  • Makefile 5.1%
  • Dockerfile 1.6%
Find a file
zemdregon 6ae78b13f9
Some checks are pending
CI / test (push) Waiting to run
CI / build (push) Waiting to run
CI / docker (push) Blocked by required conditions
CI / lint (push) Waiting to run
chore(deps): bump actions/setup-go to v7 (#22)
* chore(deps): bump actions/setup-go to v7

Self-hosted CI workflows.

* ci: setup-go v7 + cache false
2026-08-12 09:47:32 -05:00
.github chore(deps): bump actions/setup-go to v7 (#22) 2026-08-12 09:47:32 -05:00
cmd/module chore: align module with starter template and CI 2026-07-22 19:10:04 -05:00
deploy fix: change default gRPC port to avoid collision with media-rename 2026-08-07 10:46:28 -05:00
internal Advertise settings capability (v0.1.6). 2026-08-10 04:32:33 -05:00
test feat: secrets-file module — encrypted vault following starter template 2026-06-12 09:20:54 -05:00
.dockerignore feat: secrets-file module — encrypted vault following starter template 2026-06-12 09:20:54 -05:00
.env.example fix: change default gRPC port to avoid collision with media-rename 2026-08-07 10:46:28 -05:00
.gitignore chore: align module with starter template and CI 2026-07-22 19:10:04 -05:00
.golangci.yml ci: set explicit golangci-lint config version (#14) 2026-08-09 19:28:51 -05:00
CHANGELOG.md Advertise settings capability (v0.1.6). 2026-08-10 04:32:33 -05:00
COMPATIBILITY.md chore: align module with starter template and CI 2026-07-22 19:10:04 -05:00
CONTRIBUTING.md chore: align module with starter template and CI 2026-07-22 19:10:04 -05:00
Dockerfile feat: secrets-file module — encrypted vault following starter template 2026-06-12 09:20:54 -05:00
go.mod Expose store_path and key_file via RegisterSettings mesh. 2026-08-10 02:41:11 -05:00
go.sum Expose store_path and key_file via RegisterSettings mesh. 2026-08-10 02:41:11 -05:00
LICENSE feat: secrets-file module — encrypted vault following starter template 2026-06-12 09:20:54 -05:00
Makefile chore: align module with starter template and CI 2026-07-22 19:10:04 -05:00
muxcore.json Advertise settings capability (v0.1.6). 2026-08-10 04:32:33 -05:00
README.md fix: change default gRPC port to avoid collision with media-rename 2026-08-07 10:46:28 -05:00
SECURITY.md chore: align module with starter template and CI 2026-07-22 19:10:04 -05:00

Secrets File Vault

CI Go Version License: GPL-3.0

AES-256-GCM encrypted file-backed secrets vault for MuxCore.

A MuxCore sidecar module that stores secrets in a local JSON file, encrypting each value with AES-256-GCM under a 32-byte master key. Provides the secrets capability via gRPC (Get / Set / Delete / List).


How It Works

Module request ──→ secrets-file (gRPC) ──→ AES-256-GCM vault ──→ secrets.json

Each secret is stored as {"n": <nonce>, "d": <ciphertext>}. The master key never leaves the process; values are decrypted only on Get.


Configuration

Variable Default Description
SECRETS_MASTER_KEY `` Hex-encoded 32-byte master key (takes precedence)
SECRETS_KEY_FILE `` Path to hex-encoded master key file (auto-created if missing)
SECRETS_STORE secrets.json Encrypted secrets store path
SECRETS_GRPC_ADDR :9550 gRPC listen address

Quick Start

go build -o secrets-file ./cmd/module

export MUXCORE_INSECURE_DISABLE_TLS=true
export SECRETS_MASTER_KEY="$(openssl rand -hex 32)"
./secrets-file --muxcore-mesh-addr localhost:9090

Capability

secrets — Encrypted secrets storage

License

GPL-3.0