What is DAT?

DAT (Distributed Access Token) is an access-token specification used by issuing and verifying services that share the same certificates. Because verification does not require another request to the issuing service or a central session store, authentication results can be passed between less tightly coupled services.

expire
uint64
.
cid
uint64
.
plain
bytes
.
secure
bytes
.
signature
bytes
The dot-separated fields form a single DAT.

Components

DAT

A string that a user or service sends with a request. It includes an expiration time and certificate ID, and can carry both public and encrypted data.

Certificate

Contains the algorithms, keys, and time ranges required to create and verify DATs. The certificate ID, cid, is immutable; use a new cid when rotating keys.

Manager

The client library's manager stores certificates, creates DATs with a certificate that is currently issuable, and verifies each DAT with the certificate matching its cid.

DAT CMS

An optional server that creates, stores, and distributes certificates to services. It can provide full certificates to issuing services and verify-only certificates to services that only verify tokens.

Issuance and verification

person User
workspace_premium DAT CMS
Certificate management
Version-based synchronization
login Issuing service
apps Verifying service

The issuing service chooses the plain and secure data and creates a DAT. The verifying service checks the expiration time, signature, and ciphertext before passing both data regions to the application. Because plain is signed but not encrypted, do not put secrets or personal data in it.

Why verification still works after certificates change

Once a new certificate becomes issuable, subsequent DATs use its new cid. The previous certificate remains available for verification until the TTL of every DAT it issued has elapsed. This allows key rotation and the verification period of existing tokens to be managed together.

Where DAT fits

  • Environments where authentication and application features are handled by different services
  • Environments where multiple runtimes issue or verify the same token format
  • Systems that need to carry short-lived authorization data without a central session lookup
  • Systems that need to separate public routing information from protected data within one token

DAT does not define the authorization policy itself. A valid DAT and an application's decision to allow a request are separate matters.

Next steps