---
title: Current user
kind: resource
slug: me
summary: "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."
---

# 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

### 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).

### JSON example

```json
{
  "id": "usr_alex",
  "email": "alex@himarley.com",
  "name": "Alex Chen",
  "isAdmin": false,
  "hasLibraryAdmin": false,
  "hasPeopleAdmin": true
}
```

## Methods

### Get current user

`GET /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.

**CLI**

```bash
drop me
```

**MCP**

```json
{
  "tool": "drop_me",
  "arguments": {}
}
```

**HTTP**

```bash
curl -X GET 'https://drop.himarley.ai/api/me' \
  -H "Authorization: Bearer $DROP_TOKEN"
```

**Response** (200)

```json
{
  "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"
    }
  ]
}
```
