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