DAT CMS

DAT CMS certificates بناتا، database میں محفوظ کرتا اور issuing و verifying services کو مناسب certificates دیتا ہے۔ Protocol behavior کی تفصیل DAT CMS specification میں ہے۔

Runtime configuration بنائیں

DAT certificate management service

dns

Server

PortDefault: 8088
HostnameDefault: Auto
terminal

چلانے کا command

bash
API چیک کریں
bash
database

Database

API cacheDefault: 60
verified_user

DAT certificate

Signature algorithm
Encryption algorithm
Certificate issuance delaysecondshelp
DAT issuance periodsecondshelp
DAT TTL (lifetime)secondshelp
DAT certificate generation schedule (Cron)help
lock

Access control

Master token
DAT certificates generate اور server version حاصل کریں
Full Cert token
Full (Pair Key, Hash Key) certificates حاصل کریں
Verify Cert token
Verify (Verify Key Only) certificates حاصل کریں

Docker کے ساتھ چلائیں

Container کو non-root user کے طور پر چلائیں۔ SQLite میں writable data directory mount کریں۔ tokens اور database passwords کو command history کے بجائے secret-injection mechanism سے دیں۔

docker run --rm --name dat-cms -p 8088:8088 \
  --user 10001:10001 \
  -v "$PWD/dat-cms-data:/data" \
  -e PORT=8088 \
  -e DB_URI='sqlite:/data/data.db' \
  -e TOKEN_MASTER='replace-with-a-secret' \
  -e TOKEN_CERT_FULL='replace-with-a-secret' \
  -e TOKEN_CERT_VERIFY='replace-with-a-secret' \
  sarolab/dat-cms

Database

SQLite، PostgreSQL یا MySQL connection کے لیے DB_URI استعمال کریں۔ MariaDB، MySQL protocol سے connect ہوتا ہے۔ CMS query results کو snapshot میں cache کرتا اور storage refresh عارضی ناکام ہو تو آخری کامیاب snapshot دیتا رہتا ہے۔

DB_CACHE_SECS snapshot refresh interval اور DB_QUERY_TIMEOUT_SECS refresh queries کی limit مقرر کرتا ہے۔ کامیاب snapshot نہ ہو اور storage نہ پڑھا جا سکے تو service DAT_STORE_UNAVAILABLE دیتی ہے۔

Access roles

Environment variablePermissionاستعمال
TOKEN_MASTERCertificates register اور protected version حاصل کرناOperations
TOKEN_CERT_FULLFull certificates حاصل کرناDAT issuing services
TOKEN_CERT_VERIFYVerify-only certificates حاصل کرناVerification اور decryption services

ہر variable comma-separated alphanumeric tokens لیتا ہے۔ role کی token list خالی ہو تو endpoints کھل جاتے اور warning log ہوتی ہے۔

Certificate generation

Master role signature algorithm، encryption algorithm، propagation delay، issuance period اور TTL بتا کر certificate register کرتا ہے۔ propagation delay میں services certificate کے issuable ہونے سے پہلے اسے synchronize کرتی ہیں۔

Client integration

  1. Issuing services کے لیے full token اور full-certificate endpoint استعمال کریں۔
  2. Verifying services کے لیے verify token اور verify-only option استعمال کریں۔
  3. پہلے synchronization کا result check کریں؛ startup ناکام کرنا ہو تو immediate synchronization API call کریں۔
  4. Automatic synchronization فعال ہو تو shutdown پر manager بند کریں۔

ہر زبان کے builder اور shutdown behavior کے لیے library guides دیکھیں۔

Operational checks

  • /health اور /version/api بغیر authentication status بتاتے ہیں۔
  • Role configured ہو تو /version کے لیے master token درکار ہے۔
  • Standard output اور standard error سے logs جمع کریں۔
  • Shutdown signals forward کرکے database اور scheduler کو بند ہونے کا وقت دیں۔

Kubernetes

Container port اور probes کو service port سے ملائیں، اور non-root user کے write access کے ساتھ data directory mount کریں۔ Secrets سے tokens اور database connection details inject کریں۔

securityContext:
  runAsNonRoot: true
  runAsUser: 10001
  runAsGroup: 10001
containers:
  - name: dat-cms
    image: sarolab/dat-cms
    ports: [{ containerPort: 8088 }]
    readinessProbe: { httpGet: { path: /health, port: 8088 } }
    livenessProbe: { httpGet: { path: /health, port: 8088 } }