Skip to content

Add sinedge stack with secure credential loading - #7

Merged
sindoc merged 1 commit into
mainfrom
sinedge/cdn-credential-loading
Mar 25, 2026
Merged

sindoc merged 1 commit into
mainfrom
sinedge/cdn-credential-loading

Conversation

@sindoc

@sindoc sindoc commented Mar 25, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Full sinedge stack under edge/: Docker images (CentOS 7 base, edge-site JDK 11 server, nginx CDN, mock DGC), Java interface layer (io.sindoc.collibra.edge), Claude API agent, K8s installer, and three compose modes (dev/cloud/production)
  • CDN live TV proxy: IRIB3 and PersianGulf HLS vhosts with caching, playlist rewriting, and multi-channel player driven by mms-channels.json
  • Secure credential loading: entrypoint.sh sources secrets from 1Password CLI (op) → ~/.collibra/creds → env vars. Stream tokens (ONETV_TOKEN) injected at container startup so the repo stays token-free
  • Gitignore: .env, certs, JARs, build artifacts, Claude settings, and installer bundles excluded

Credential flow

Priority Source Mechanism
1st 1Password op item get "CDN Streams" --fields ONETV_TOKEN
2nd ~/.collibra/creds Sourced as shell env file
3rd Environment variables Standard docker compose --env-file

What is NOT committed

  • No tokens, passwords, or API keys
  • No .env (gitignored, .env.example provided)
  • No TLS certs
  • No build artifacts (.class, .jar)
  • No javad/bitbucket content

Test plan

  • docker compose -f edge/docker-compose.cloud.yml --env-file edge/.env up -d
  • curl -sk https://localhost/healthz returns 200
  • With ONETV_TOKEN set, container logs show token injection
  • Without creds, entrypoint falls back gracefully

🤖 Generated with Claude Code

Full edge stack: Docker images (base, edge-site, CDN, mock DGC),
Java interface layer (io.sindoc.collibra.edge), Claude API agent,
and K8s installer scripts.

CDN additions: IRIB3 and PersianGulf HLS proxy vhosts with caching,
multi-channel player, and runtime envsubst templating.

Credential handling: entrypoint.sh loads secrets from 1Password CLI
(op), then ~/.collibra/creds, then environment variables. Stream
tokens are stripped from committed files (mms-channels.json) and
injected at container startup via ONETV_TOKEN env var.

No secrets, tokens, or credentials are committed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sindoc
sindoc merged commit 931cdb9 into main Mar 25, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant