Infrastruktur
Inga hemligheter i konfigurationen. Inga hemligheter i loggar.
Varje plattform, varje orkestrerare, varje CI-runner. Proxyn fungerar med allt som gör HTTP-anrop. CLI fungerar med allt som kan köra skalkommandon. Om ditt system är äldre än din karriär, fungerar det fortfarande.
Proxyn är den universella integrationen.
Om din arbetsbelastning gör HTTPS-anrop injicerar Clavitor-proxyn inloggningsuppgifter på nätverksnivå. Inga kodändringar. Inga SDK:er. Inga hemligheter i miljövariabler, konfigurationsfiler eller loggar. Ställ in HTTPS_PROXY och din befintliga kod fungerar oförändrad – proxyn löser clavitor://-referenser i request-headers innan anropet lämnar maskinen.
$ export HTTPS_PROXY=http://localhost:1983 $ curl -H "Authorization: Bearer clavitor://Stripe API/key" \ https://api.stripe.com/v1/charges # The agent never sees sk_live_... — only clavitor:// appears in logs
Containrar
Docker och Kubernetes
Docker Compose
Kör Clavitor-proxyn på värden och peka dina containrar mot den. Inloggningsuppgifter injiceras transparent i utgående anrop – inga hemligheter i miljövariabler, inga hemligheter inbakade i images.
# On the Docker host $ clavitor-proxy serve &
# docker-compose.yml — containers route through the host-mode proxy
services:
app:
environment:
- HTTPS_PROXY=http://host.docker.internal:1983
extra_hosts:
- "host.docker.internal:host-gateway"Eller använd render för att lösa en konfigurationsmall vid uppstart:
$ clavitor-cli render app.config.template.yml | docker compose -f - up
Kubernetes
Skapa hemligheter från valvet utan att hårdkoda värden i manifest:
$ kubectl create secret generic app-secrets \ --from-literal=db-pass="$(clavitor-cli get 'Production DB' --field password)" \ --from-literal=api-key="$(clavitor-cli get 'Stripe API' --field key)"
För injektion av inloggningsuppgifter vid runtime, driftsätt proxyn som en sidecar-container i din pod. Applikationscontainrar ställer in HTTPS_PROXY till sidecar. Inloggningsuppgifter löses per anrop, lagras aldrig i etcd.
IaC
Terraform, Ansible, Pulumi
Terraform
Lös inloggningsuppgifter till provider-miljön innan terraform apply. AWS-providern läser sina inloggningsuppgifter från standardmiljövariabler – Clavitor fyller i dem inline, .tf-filen nämner ingen hemlighet.
$ export AWS_ACCESS_KEY_ID=$(clavitor-cli get "AWS Root" --field access_key_id) $ export AWS_SECRET_ACCESS_KEY=$(clavitor-cli get "AWS Root" --field secret_key) $ terraform apply
provider "aws" {}-blocket förblir tomt i din kod. Samma mönster fungerar för alla Terraform-providers som stöder env-var-inloggningsuppgifter (vilket de flesta gör).
Ansible
- name: Get database password
command: clavitor-cli get "Production DB" --field password
register: db_pass
no_log: true
- name: Configure app
template:
src: app.conf.j2
vars:
db_password: "{{ db_pass.stdout }}"Pulumi
import { execSync } from 'child_process';
const dbPass = execSync('clavitor-cli get "Production DB" --field password').toString().trim();
new aws.rds.Instance("db", { masterPassword: new pulumi.secret(dbPass) });CI/CD
GitHub Actions, GitLab CI, Jenkins
Token skickas via stdin i varje exempel nedan – håller den borta från argv så att den inte visas i /proc/<pid>/cmdline eller byggloggar.
GitHub Actions
- name: Deploy
env:
CLAVITOR_TOKEN: ${{ secrets.CLAVITOR_TOKEN }}
run: |
echo "$CLAVITOR_TOKEN" | clavitor-cli init
kubectl create secret generic app-secrets \
--from-literal=api-key="$(clavitor-cli get 'Deploy Token' --field key)" \
--dry-run=client -o yaml | kubectl apply -f -GitLab CI
deploy:
script:
- echo "$CLAVITOR_TOKEN" | clavitor-cli init
- clavitor-cli get "Deploy Key" --field private_key | ssh-add -
- ssh deploy@production "systemctl restart app"Jenkins
pipeline {
stages {
stage('Deploy') {
steps {
sh 'echo "$CLAVITOR_TOKEN" | clavitor-cli init'
sh 'clavitor-cli get "Deploy Key" --field private_key | ssh-add -'
sh 'ssh deploy@production "systemctl restart app"'
}
}
}
}SSH
Nycklar lagrade i valvet
$ clavitor-cli get "Deploy Key" --field private_key | ssh-add - $ ssh deploy@production
Privatnyckeln skickas direkt till ssh-add. Den rör aldrig disk, visas aldrig i shell-historiken och rensas från agenten när sessionen avslutas.
Äldre system
Om den gör ett HTTP-anrop fungerar det.
Proxyn bryr sig inte om vilket språk som gjorde anropet. COBOL, FORTRAN, Perl, Visual Basic, ett 30 år gammalt batchjobb – om processen gör en HTTPS-begäran, avlyssnar proxyn den, löser clavitor://-referensen och injicerar de verkliga inloggningsuppgifterna. Inga kodändringar krävs.
För system som inte kan göra HTTP-anrop, använd clavitor-cli render för att lösa en konfigurationsmall innan processen startar. Mallen är säker att lagra var som helst. Den lösta utdatan går till stdin eller en temporär fil med begränsade behörigheter.
# Resolve credentials before the batch job starts $ clavitor-cli render db-connect.template.cfg > /tmp/db-connect.cfg $ chmod 600 /tmp/db-connect.cfg $ /opt/legacy/batch-job --config /tmp/db-connect.cfg $ rm /tmp/db-connect.cfg
Mönstret är alltid detsamma.
CLI för skript och pipelines. Proxy för HTTP-arbetsbelastningar. Render för konfigurationsfiler. Varje hemlighet löst vid runtime, aldrig lagrad.