Controls Matrix
| Concern | Ghostable Control | Evidence |
|---|---|---|
| Client supply-chain tampering | Release checksums + signed build provenance + SBOM publication | Release assets: SHA256SUMS, SBOM, and attestation evidence (public for CLI; internal for desktop) |
| In-transit confidentiality | TLS transport and signed client payloads for secret updates | API request signatures (client_sig) |
| Push race conditions / lost updates | Optimistic concurrency via if_version, strict conflict mode, explicit force override | API 409 conflict payloads (conflicts[]), CLI --conflict-mode and --force-overwrite |
| Unauthorized push attempts | Device ownership validation and revocation checks | Push API rejects unknown/revoked devices |
| Least-privilege access | Role + permission model with scoped project/environment operations | Organization roles/permissions and permission matrix endpoint |
| External monitoring visibility | Audit webhook destinations with signed event delivery, retries, and dead-letter state | Audit webhook API + delivery status fields |
| Auditability | Structured activity logging across org/project/environment actions | Organization/project/environment history endpoints and activity export |
| SaaS dependency resilience | Encrypted backup + restore workflows | backup create / backup restore command flow |
API Endpoints for Evidence Collection
GET /api/v2/organizations/{organization}/permission-matrixGET /api/v2/organizations/{organization}/audit-webhooksPOST /api/v2/organizations/{organization}/audit-webhooksPOST /api/v2/organizations/{organization}/audit-webhooks/{auditWebhook}/rotate-secretPOST /api/v2/organizations/{organization}/audit-webhooks/{auditWebhook}/disablePOST /api/v2/organizations/{organization}/audit-webhooks/{auditWebhook}/test
Dashboard UI: Audit Webhooks
Audit webhooks can be managed in the Ghostable dashboard:- Open your organization in Ghostable.
- Go to Settings.
- Open the Notifications tab.
- Use the Audit Webhooks section.
What You Can Do in the UI
- Create a webhook with:
- a friendly name (for example,
Security SIEM) - an endpoint URL (
https://...)
- a friendly name (for example,
- Copy the signing secret shown once at creation/rotation time.
- Review delivery health fields:
- status (
active,disabled,dead_letter) - consecutive failures
- last delivery/error details
- status (
- Use the action dropdown per webhook row:
- Send test event
- Rotate signing secret
- Disable webhook
Only organization admins can create or manage audit webhooks in the dashboard UI.
Webhook Signature Verification
Ghostable audit webhooks include the following headers:X-Ghostable-Timestamp: unix timestamp in seconds.X-Ghostable-Signature: HMAC in the formatsha256=<hex_digest>.
- Read the raw request body exactly as received.
- Build the signed message as
<timestamp>.<raw_body>. - Compute
HMAC-SHA256(message, signing_secret). - Compare the result to
X-Ghostable-Signatureusing constant-time comparison. - Reject the request if
abs(now - timestamp) > 300seconds.
id for at least 5-10 minutes and reject duplicates.
Notes
push_force_overwriteactivity events are emitted when optimistic locking is intentionally bypassed.- Teams with strict change control should require
--conflict-mode strictin CI workflows.