LUNA CONTRACTING
LIVE
One account. Four locks. A full audit trail.
Every client is one account, and separation is enforced in four places rather than asserted in one. Every change is logged by the database itself. Single sign-on fails closed. API keys are stored only as a hash.
Tenancy integrity check
24 points · run 9 Sep 2026
Cross-tenant links in contracts
0
Cross-tenant links in bookings
0
Tables with row level security
64 of 64
Write-time guard triggers
47
Public key privileges
none
Zero on every line
No cross-tenant link exists anywhere in the data.
Four enforcement layers, not one assertion.
Every query filters by account
Every read and write is scoped to the account resolved from the login or the API key. That is where reads are separated.
Deny-by-default database security
Row level security is enabled on all 64 tables and forced on 63, backstopping writes.
A public key with zero privileges
The public database key has literally no privileges on any table in the schema. Not restricted. None.
47 write-time guard triggers
A cross-tenant link is blocked at write time by the database, so even an application bug cannot create one.
Single sign-on that fails closed.
The app holds no auth secret of its own. It forwards the session to Travelgenix Control and trusts the verified answer. No token, an unreachable verifier, a malformed response or no active client all deny.
Four roles gate writes: owner, admin, loader, viewer.
Signed in from Travelgenix Control
Fails closed, every time
Viewer can look, loader can load, admin and owner can set live
Who can do what
Seaside Travel
Role
Load
Set Active
Keys
Owner
Yes
Yes
Yes
Admin
Yes
Yes
Yes
Loader
Yes
Yes
No
Viewer
No
No
No
No session from Control
Denied. The app never guesses who you are.
Written by the database, so it cannot be forgotten.
The activity log is written by database triggers rather than application code, which is the important part, because it cannot be bypassed by forgetting to call it. 52 tables are audited. Every entry records the record, the action, who did it, whether it came from the app or the API, exactly which fields changed and the full before and after.
Accommodation, car and transfer bookings are audited. Attraction, tour, coach, train and flight bookings are not yet. You see your own log, filtered by product area, action, date and free text.
3,682 changes logged between 12 June and 8 September 2026
Before and after on every field
App or API, named on every entry
Activity
Villa Aegean · last 7 days
Rate changed · Peak · Double BB · €158 to €162
Sam · app · Tue 14:02
Stop sale added · 24 to 26 Dec · all rooms
Sam · app · Mon 09:41
Contract set Active · Villa Aegean 2027
Priya · app · Fri 16:20
Booking confirmed · SEA-10429 · via API
API key sk_live_c91d… · Fri 11:05
API keys you cannot lose, because nobody can read them.
Only the hash is stored
The raw key is shown once at creation and cannot be recovered afterwards, by anyone, including Travelgenix.
Three states
Active. Disabled, a reversible off switch that keeps the same secret. Revoked, permanent. Both off states fail closed.
One key per account
It reaches every engine that account has loaded. Never a key per product.
Questions people ask
Is our data separate from other clients?
One account per client, enforced in four places: every query, deny-by-default database security, a public key with zero privileges, and 47 triggers that block a cross-tenant write. A 24-point integrity check run on 9 September 2026 returned zero on every line.
Can Travelgenix read our API key?
No. Only the SHA-256 hash is stored. The raw key is shown once at creation and is not recoverable by anyone.
Who can set a contract live?
Owners, admins and loaders. Viewers can look but not change. Sign-on comes from Travelgenix Control and fails closed.
Is there version history?
There is a full activity log with before and after on every field. You cannot view a contract as it was last Tuesday or revert one.
Ask us the hard questions.
Luna Contracting is live for Travelgenix customers. Contact your account manager to switch it on, or book a demo if you are new to Travelgenix.
More about Luna Contracting