GH GambleHub

Transaction Audit Logs

(Section: Operations and Management)

1) Purpose and principles

The audit trail is the primary source of truth about who, what, where, when and why did, with the ability to prove the records are immutable and authentic.

Principles:
  • Completeness: the actions of people, services and external partners are covered.
  • Immutability: Records cannot be overwritten/deleted without a visible trace.
  • Attribution: The action is related to the subject, role, context, artifacts.
  • Repeatability - The event can be replayed in a report/dispute.
  • PII minimization: only necessary, with mask and tokens.

2) Coverage areas

User actions: entry/SSO/MFA, changing roles/limits, operations with PII.
Privileged operations: JIT/PAM sessions, break-glass, admin console.
Finance: price lists/taxes/FX publications, payments/disbursements, escrow, write-offs/returns.
Configurations/releases: phicheflags, schema migrations, deploy/rollback, keys/certificates.
Integrations: webhooks, signatures, receipts, idempotency keys.
Data: reading/exporting PII, creating/deleting artifacts, changing policies.

3) Architecture and immutability

Ingest gateway with authentication, quotas and circuit validation.
WORM storage (immutable buckets/append-only): version, Retention Lock, Legal Hold.
Crypto quitances: for critical events, a 'receipt _ hash' and a DSSE signature are formed.
Merkle chains: periodically built slices (checkpoint), root hash is published.
Chain of custody: tracing the movement of artifacts (who gained access, when, on what basis).
Time Sync: NTP/PTP, 'event _ time' and 'ingest _ time' labels, 'skew' adjustment.

4) Event diagram (reference)


audit_event {
id, event_time, ingest_time, producer, subject {
id, type: human    service    partner, roles[], mfa?, device_posture?
},
action: CREATE    READ    UPDATE    DELETE    EXECUTE    PUBLISH    APPROVE    ROLLBACK,
target { type, id, version?, region?, tenant? },
context { ip/asn, user_agent, env, trace_id, request_id },
policy_version, sod_check: pass    fail, justification?, ticket_ref?,
result: success    deny    error, error_code?,
diff_hash?, payload_hash?, receipt_hash?, dsee_signature?,
pii_classification: none    aggregated    tokenized    sensitive,
retention_class, labels[]
}

Optional: for financials - 'fx _ version/tax _ rule _ version/pricelist _ version'; for webhooks - 'webhook _ id', 'idempotency _ key'.

5) Data model and zones

Hot (RAM): 7-30 days, fast requests/dashboards.
Warm (OLAP): 6-24 months, analytics/searches.
Cold (archive/WORM): up to 7-10 years (regulatory).
Retention classes: 'operational', 'financial', 'security', 'legal _ hold'.
Policy versioning - all events are marked 'policy _ version'; Policy Change - Single Audit Event.

6) Access and privacy

RBAC/ABAC/ReBAC: visibility by role/tenant/region/case.
PII masking: tokenization of identifiers, output of the primary - only through approved jobs.
No direct deletion: only 'tombstone' + Legal Hold; planned "post-cleaning" with a separate magazine.
Audit of the audit itself: who watched/unloaded the logs is also logged.

7) Quality, consistency, takes

Data contracts: strict scheme and lambda validations at the input.
Idempotency & dedup: '(event_id, producer)'; «seen-cache» + KV.
Time correction: watermarks for late events.
Completeness control: comparison of source counters and ingest metrics.

8) Dashboards and queries

Operational: privileged actions, SoD violations, JIT rights lifts, access to PII.
Financial: FX/Tax/PriceList publications, quote↔checkout discrepancies, key signatures.
Integrations: webhook receipts, lag, retrai, takes.
Releases/configs: who/when/what turned on/rolled back, connection with incidents.
Search scripts: 'trace _ id', 'subject. id`, `target. id ', time/region/tenant,' policy _ version '.
Export: batch uploads on demand with receipt (signed manifest).

9) APIs and webhooks

'POST/audit/ingest '- receiving events (authentication, limits, scheme).
'GET/audit/search '- filters, pagination, limit on the result.
'GET/audit/trace/{ trace _ id} 'is a chain of events.
'POST/audit/receipt/verify '- check bill/DSSE.
Вебхуки: `SoDViolation`, `PrivilegedSession`, `PIIAccess`, `PolicyChanged`, `FinancialArtifactPublished`.

10) SLO/Audit Quality Metrics

Ingest Availability: ≥ 99. 95%.
Freshness (RAM): lag ≤ 30 with p95.
Completeness: ≥ 99. 5% of sources sent data to the window.
Correctness: checksum discrepancy ≤ 0. 1%.
Tamper-evidence: 100% of periods are certified by Merkle-roots/signatures.
PII Hygiene: 100% of events with sensitive class - with mask/token.

11) Playbooks and incidents

Suspicion of record spoofing: immediate verification of Merkle roots, reconciliation of DSSE receipts, access isolation, Legal Hold.
PII leak: search for affected events/exports, access audit, DPO/regulator notifications by time frame.
SoD violation: Operation block, temporary role removal, investigation and policy adjustment.
Ingest failure: buffering, degradation mode, replay after recovery, duplicate control.

12) Legal exposure and compliance

Retention by Jurisdiction: Finance/Tax - 5-10 years; security - by policy; personal data - minimum required period.
Legal Hold: removal freeze on case/regulator request.
Reporting artifacts: period index, root hashes, list of signatories, inventory of sources.
Non-refundability: crypto signatures, independent timestamping (internal TSA).

13) Specificity of iGaming/fintech

Payments/payouts: full trace of authorizations, clearing, refusals, chargeback; matching with bank receipts.
RTP/limits: profile publications, changes, observed RTP and limit decisions - with signatures and version.
Affiliates: reception of webhooks, dedup conversions, objections/escrow - only for signed artifacts.
Price lists/taxes/FX: artifact version in each order; rollbacks - with receipts.

14) RACI

AreaRACI
Architecture and WORMPlatform/DataCTOSecurity, LegalAudit
Schemes and policiesComplianceCCOData, SecurityProduct
Ingest и ObservabilityData Eng/SREHead of DataPlatformAll
Access and privacySecurity/PrivacyCISO/DPOLegalAudit
Legal Inquiries/ExportsComplianceCCOLegal, SecurityManagement

15) Risks and anti-patterns

Editable logs without a trace → legal non-support.
No time synchronization → non-overlapping timelines.
Shadow exports without receipts → leaks/disputes.
Secrets in the logs → compromise.
No association with SLO/incidents → "data graveyard" without benefit.

16) Implementation checklist

  • Define coverage areas and policy_version.
  • Deploy ingest with authentication, schemas, and quotas.
  • Include WORM, Merkle slices, DSSE signatures, TSA.
  • Set up Class and Legal Hold.
  • Enter RBAC/ABAC/ReBAC and audit log access.
  • Build dashboards: privileges, PII, finance, releases/configs.
  • Enable playbooks: tamper, PII leak, ingest failure, SoD violation.
  • Try out replays and dedup on a test set.
  • Export with receipts and query register.
  • Perform quarterly quality metrics audits (freshness/completeness/tamper).

17) FAQ

Is it possible to store everything in a regular database?
For RAM - yes, but critical logs should be duplicated in WORM/append-only with signatures and Merkle slices.

Do I need to log every data read?
PII/Finance reading is mandatory; the rest by policy and cost.

How to prove immutability?
Root hashes, DSSE signatures, independent TSA and reproducible verification procedures.

What to do with the "right to remove" (GDPR)?
Delete the primary in the processing systems; in audit logs - store tokens/hashes without recoverable PII and maintain Legal Hold if necessary.

Summary: Audit logs are not "logs in S3," but a cryptographically provable action history with clear policies, unchangeable retention, managed access, and dispute/regulatory review readiness. Build ingest on contracts, sign critical events, support Merkle cuts and dashboards - and you will have a solid foundation of trust, safety and compliance.

Contact

Get in Touch

Reach out with any questions or support needs.We are always ready to help!

Telegram
@Gamble_GC
Start Integration

Email is required. Telegram or WhatsApp — optional.

Your Name optional
Email optional
Subject optional
Message optional
Telegram optional
@
If you include Telegram — we will reply there as well, in addition to Email.
WhatsApp optional
Format: +country code and number (e.g., +380XXXXXXXXX).

By clicking this button, you agree to data processing.