Core Resources
View as Markdown

Current user

The authenticated session — who you are and what admin roles you carry. Used by `drop me` as a CLI sanity check and by any UI that personalizes by identity.

The Current User resource is a thin read of the session principal. Every request the CLI, MCP, or web UI makes is implicitly scoped to "this user"; this resource makes that principal explicit and exposes the admin role flags (Site admin, People admin, Library admin) without leaking unrelated User fields. There is no PATCH / POST surface — identity changes go through Cognito, not Drop's API.

The Current user object

Every Current user carries these attributes.

Attributes

id
string
CUID for the User row in Drop's database. Stable across sessions. Use this as the userId parameter to any endpoint that takes one.
email
string· nullable
The viewer's @himarley.com email. Null only in legacy seed data — every account provisioned via Cognito SSO has an email.
name
string· nullable
Display name from Cognito (typically the user's real name as it appears in the directory). May be null for accounts whose name was never set.
isAdmin
boolean
Site-admin flag. Manually toggled per-user via the admin dashboard. Site admins have read access to every Droplet, Space, and audit log regardless of internalAccess. Distinct from the directory roles below — see features/033-directory-roles.
hasPeopleAdmin
boolean
Member of the @drop-people-admins system role. Can manage User Groups + invite new people. Decoupled from isAdmin — most People Admins are not Site Admins.
hasLibraryAdmin
boolean
Member of the @drop-library-admins system role. Can manage the shared brand / asset library (\_brand collection on the apps bucket).
THE CURRENT USER OBJECT
{
  "id": "usr_alex",
  "email": "alex@himarley.com",
  "name": "Alex Chen",
  "isAdmin": false,
  "hasLibraryAdmin": false,
  "hasPeopleAdmin": true
}

Methods

Endpoints to operate on a Current user. The example switches between curl, drop CLI, and MCP via the dropdown — your choice persists across the page.

GET

Get current user

/api/me

Return the authenticated user — basic profile plus admin role flags. Useful as a CLI sanity check (drop me) and as the building block for any client UI that personalizes by identity.

GET/api/me
drop me
Response200
{
  "id": "usr_alex",
  "email": "alex@himarley.com",
  "name": "Alex Chen",
  "isAdmin": false,
  "hasLibraryAdmin": false,
  "hasPeopleAdmin": true,
  "spaceMemberships": [
    {
      "slug": "platform-team",
      "role": "ADMIN"
    },
    {
      "slug": "product-leadership",
      "role": "VIEWER"
    }
  ]
}