Skip to main content
Marina authenticates every viewer before a request reaches your app. You do not build sign-in; you decide who an app is shared with, and your code reads who is asking.

Who is making the request

Each request arrives with identity headers your code can trust:
Use the user id in your data model and query predicates. Marina isolates apps from each other; separating one app’s users from each other is your code’s job.

Requests without a browser

Two features let callers without a Marina sign-in reach an app that handles requests. Neither carries a user id, and x-platform-principal tells your code which kind of request it is handling.

Sharing an app

A new app is visible to its creator and to workspace admins. Share it from the app’s sharing controls, per person or with the whole workspace, with one of three roles: Guests are people outside your workspace membership, invited by email from an app’s sharing settings. They can use the apps shared with them and nothing else: no connections, no groups, no workspace settings.

Approvals

Deployments that expand what an app can touch require approval before the version goes live: a new runtime service, a new connection or operation, or database migrations. The exact changes appear as plain-language effects (“Let this app read mercury/evident: transactions.list”) in the Inbox of people who can approve, and the approved list becomes that version’s fixed authority. Deployments that change only code publish without a review.