Reference

Embassy Admin

Administrator sessions and Federation management APIs.

Administrator access is the admin identity domain of Embassy.

import { Embassy } from "@downcity/federation";

const embassy = new Embassy({ federation_url: "https://fed.example.com" });
await embassy.admin.login({ admin_id: "owner", password: "password" });

The Federation returns a time-limited Admin Session Token. Embassy keeps it in the current instance; token() reads it and logout() revokes it.

Bureau management

const bureaus = await embassy.admin.bureaus.list();
const bureau = await embassy.admin.bureaus.create({
  bureau_id: "product-web",
  name: "Product Web",
  server_url: "https://product.example.com",
});

await embassy.admin.bureaus.route.update({
  bureau_id: bureau.bureau_id,
  server_url: "https://new-product.example.com",
});

Bureau Tokens

const issued = await embassy.admin.bureaus.tokens.issue({
  bureau_id: "product-web",
  purpose: "production backend",
});

const tokens = await embassy.admin.bureaus.tokens.list("product-web");
await embassy.admin.bureaus.tokens.revoke(issued.token_id);

Federation returns the plaintext Bureau Token only when it is issued. Store it in the trusted backend and use the independent Bureau client for identify(); Embassy Admin does not identify end-user requests.