You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -612,7 +612,7 @@ OAuth 2.0, OpenID Connect, and mutable Google Workspace-style surfaces for local
612
612
613
613
## Slack API
614
614
615
-
Fully stateful Slack Web API emulation with channels, messages, threads, reactions, user profiles, presence, modern file uploads, OAuth v2, and incoming webhooks. Chat writes preserve common rich message fields such as `blocks`, `attachments`, `metadata`, formatting flags, unfurl flags, and client message ids. Conversation writes update archive state, names, topics, purposes, membership, DMs, MPIMs, and read cursors. User writes update profile fields, status, custom fields, and deterministic active or away presence. File writes support the current external upload flow with local upload URLs, file share messages, reads, lists, downloads, and deletes. Seeded OAuth apps and OAuth installs create bot users and installation records. OAuth exchanges and explicit token seeds create scoped token records.
615
+
Fully stateful Slack Web API emulation with channels, messages, threads, reactions, user profiles, presence, modern file uploads, pins, bookmarks, OAuth v2, and incoming webhooks. Chat writes preserve common rich message fields such as `blocks`, `attachments`, `metadata`, formatting flags, unfurl flags, and client message ids. Conversation writes update archive state, names, topics, purposes, membership, DMs, MPIMs, and read cursors. User writes update profile fields, status, custom fields, and deterministic active or away presence. File writes support the current external upload flow with local upload URLs, file share messages, reads, lists, downloads, and deletes. Pin and bookmark writes support channel message pins and link bookmarks. Seeded OAuth apps and OAuth installs create bot users and installation records. OAuth exchanges and explicit token seeds create scoped token records.
616
616
617
617
### Auth & Chat
618
618
- `POST /api/auth.test`- test authentication
@@ -660,6 +660,15 @@ Fully stateful Slack Web API emulation with channels, messages, threads, reactio
660
660
- `GET /files-pri/:fileId/:filename`- download file bytes with a bearer token that can access the file
661
661
- `POST /api/files.delete`- delete a completed file
662
662
663
+
### Pins & Bookmarks
664
+
- `POST /api/pins.add`- pin a message to a channel
665
+
- `GET /api/pins.list`/ `POST /api/pins.list` - list pinned message items for a channel
666
+
- `POST /api/pins.remove`- remove a message pin from a channel
667
+
- `POST /api/bookmarks.add`- add a link bookmark to a channel
668
+
- `POST /api/bookmarks.edit`- update a link bookmark
669
+
- `POST /api/bookmarks.list`- list channel bookmarks
670
+
- `POST /api/bookmarks.remove`- remove a bookmark from a channel
671
+
663
672
### Team, Bots & Webhooks
664
673
- `POST /api/team.info`- workspace info
665
674
- `POST /api/bots.info`- bot info
@@ -669,7 +678,7 @@ Fully stateful Slack Web API emulation with channels, messages, threads, reactio
669
678
- `GET /oauth/v2/authorize`- authorization (shows user picker)
670
679
- `POST /api/oauth.v2.access`- token exchange
671
680
672
-
Slack scope checks are relaxed by default so local tests can use simple bearer tokens. Set `slack.strict_scopes: true` in seed config to make supported Web API methods return Slack-style `missing_scope` errors with `needed` and `provided` fields. Supported user, presence, and file checks include `users:read`, `users:read.email`, `users.profile:read`, `users.profile:write`, `users:write`, `files:read`, and `files:write`.
681
+
Slack scope checks are relaxed by default so local tests can use simple bearer tokens. Set `slack.strict_scopes: true` in seed config to make supported Web API methods return Slack-style `missing_scope` errors with `needed` and `provided` fields. Supported user, presence, file, pin, and bookmark checks include `users:read`, `users:read.email`, `users.profile:read`, `users.profile:write`, `users:write`, `files:read`, `files:write`, `pins:read`, `pins:write`, `bookmarks:read`, and `bookmarks:write`.
Copy file name to clipboardExpand all lines: apps/web/app/docs/slack/page.mdx
+14-3Lines changed: 14 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
# Slack API
2
2
3
-
Fully stateful Slack Web API emulation with channels, messages, threads, reactions, user profiles, presence, modern file uploads, OAuth v2, and incoming webhooks. Chat writes preserve common rich message fields such as `blocks`, `attachments`, `metadata`, formatting flags, unfurl flags, and client message ids. Conversation writes update archive state, names, topics, purposes, membership, DMs, MPIMs, and read cursors. User writes update profile fields, status, custom fields, and deterministic active or away presence. File writes support the current external upload flow with local upload URLs, file share messages, reads, lists, downloads, and deletes. Seeded OAuth apps and OAuth installs create bot users and installation records. OAuth exchanges and explicit token seeds create scoped token records. State changes dispatch `event_callback` payloads to configured webhook URLs.
3
+
Fully stateful Slack Web API emulation with channels, messages, threads, reactions, user profiles, presence, modern file uploads, pins, bookmarks, OAuth v2, and incoming webhooks. Chat writes preserve common rich message fields such as `blocks`, `attachments`, `metadata`, formatting flags, unfurl flags, and client message ids. Conversation writes update archive state, names, topics, purposes, membership, DMs, MPIMs, and read cursors. User writes update profile fields, status, custom fields, and deterministic active or away presence. File writes support the current external upload flow with local upload URLs, file share messages, reads, lists, downloads, and deletes. Pin and bookmark writes support channel message pins and link bookmarks. Seeded OAuth apps and OAuth installs create bot users and installation records. OAuth exchanges and explicit token seeds create scoped token records. State changes dispatch `event_callback` payloads to configured webhook URLs.
4
4
5
5
## Auth
6
6
7
7
-`POST /api/auth.test` - test authentication
8
8
9
-
Scope checks are relaxed by default for local development. Set `slack.strict_scopes: true` in seed config to make supported Web API methods return Slack-style `missing_scope` errors with `needed` and `provided` fields. Supported user, presence, and file checks include `users:read`, `users:read.email`, `users.profile:read`, `users.profile:write`, `users:write`, `files:read`, and `files:write`.
9
+
Scope checks are relaxed by default for local development. Set `slack.strict_scopes: true` in seed config to make supported Web API methods return Slack-style `missing_scope` errors with `needed` and `provided` fields. Supported user, presence, file, pin, and bookmark checks include `users:read`, `users:read.email`, `users.profile:read`, `users.profile:write`, `users:write`, `files:read`, `files:write`, `pins:read`, `pins:write`, `bookmarks:read`, and `bookmarks:write`.
10
10
11
11
## Chat
12
12
@@ -67,6 +67,16 @@ Scope checks are relaxed by default for local development. Set `slack.strict_sco
67
67
-`GET /files-pri/:fileId/:filename` - download file bytes with a bearer token that can access the file
68
68
-`POST /api/files.delete` - delete a completed file
69
69
70
+
## Pins And Bookmarks
71
+
72
+
-`POST /api/pins.add` - pin a message to a channel
73
+
-`GET /api/pins.list` / `POST /api/pins.list` - list pinned message items for a channel
74
+
-`POST /api/pins.remove` - remove a message pin from a channel
75
+
-`POST /api/bookmarks.add` - add a link bookmark to a channel
76
+
-`POST /api/bookmarks.edit` - update a link bookmark
77
+
-`POST /api/bookmarks.list` - list channel bookmarks
78
+
-`POST /api/bookmarks.remove` - remove a bookmark from a channel
79
+
70
80
## Team
71
81
72
82
-`POST /api/team.info` - get workspace info
@@ -88,13 +98,14 @@ Scope checks are relaxed by default for local development. Set `slack.strict_sco
88
98
89
99
## Event Dispatching
90
100
91
-
When messages are posted, updated, deleted, or reactions change, the emulator dispatches `event_callback` payloads to configured webhook URLs matching Slack's Events API format:
101
+
When messages are posted, updated, deleted, reactions change, pins change, or files change, the emulator dispatches `event_callback` payloads to configured webhook URLs matching Slack's Events API format:
92
102
93
103
-`message` events on `chat.postMessage`
94
104
-`message` with `subtype: message_changed` on `chat.update`
95
105
-`message` with `subtype: message_deleted` on `chat.delete`
96
106
- rich message fields are included on posted `message` events when present
97
107
-`reaction_added` / `reaction_removed` events on `reactions.add` / `reactions.remove`
108
+
-`pin_added` / `pin_removed` events on `pins.add` / `pins.remove`
98
109
-`message` with `subtype: bot_message` on incoming webhook posts
99
110
-`channel_archive` / `channel_unarchive` for public lifecycle archive writes
100
111
-`group_archive` / `group_unarchive` for private lifecycle archive writes
Copy file name to clipboardExpand all lines: packages/@emulators/slack/README.md
+19-2Lines changed: 19 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# @emulators/slack
2
2
3
-
Fully stateful Slack Web API emulation with channels, messages, threads, reactions, user profiles, presence, modern file uploads, OAuth v2, and incoming webhooks. Chat writes preserve common rich message fields such as `blocks`, `attachments`, `metadata`, formatting flags, unfurl flags, and client message ids. Conversation writes update archive state, names, topics, purposes, membership, DMs, MPIMs, and read cursors. User writes update profile fields, status, custom fields, and deterministic active or away presence. File writes support the current external upload flow with local upload URLs, file share messages, reads, lists, downloads, and deletes. OAuth installs create bot users and installation records. OAuth exchanges and explicit token seeds create scoped token records.
3
+
Fully stateful Slack Web API emulation with channels, messages, threads, reactions, user profiles, presence, modern file uploads, pins, bookmarks, OAuth v2, and incoming webhooks. Chat writes preserve common rich message fields such as `blocks`, `attachments`, `metadata`, formatting flags, unfurl flags, and client message ids. Conversation writes update archive state, names, topics, purposes, membership, DMs, MPIMs, and read cursors. User writes update profile fields, status, custom fields, and deterministic active or away presence. File writes support the current external upload flow with local upload URLs, file share messages, reads, lists, downloads, and deletes. Pin and bookmark writes support channel message pins and link bookmarks. OAuth installs create bot users and installation records. OAuth exchanges and explicit token seeds create scoped token records.
4
4
5
5
Part of [emulate](https://github.com/vercel-labs/emulate) — local drop-in replacement services for CI and no-network sandboxes.
6
6
@@ -58,6 +58,15 @@ npm install @emulators/slack
58
58
-`GET /files-pri/:fileId/:filename` — download file bytes with a bearer token that can access the file
59
59
-`POST /api/files.delete` — delete a completed file
60
60
61
+
### Pins & Bookmarks
62
+
-`POST /api/pins.add` — pin a message to a channel
63
+
-`GET /api/pins.list` / `POST /api/pins.list` — list pinned message items for a channel
64
+
-`POST /api/pins.remove` — remove a message pin from a channel
65
+
-`POST /api/bookmarks.add` — add a link bookmark to a channel
66
+
-`POST /api/bookmarks.edit` — update a link bookmark
67
+
-`POST /api/bookmarks.list` — list channel bookmarks
68
+
-`POST /api/bookmarks.remove` — remove a bookmark from a channel
69
+
61
70
### Team, Bots & Webhooks
62
71
-`POST /api/team.info` — workspace info
63
72
-`POST /api/bots.info` — bot info
@@ -69,7 +78,7 @@ npm install @emulators/slack
69
78
70
79
## Auth
71
80
72
-
All Web API endpoints require `Authorization: Bearer <token>`. Seeded OAuth apps create local installation state, and the OAuth v2 flow with user picker UI returns Slack-style bot tokens. Scope checks are relaxed by default for local development. Set `strict_scopes: true` in Slack seed config to return Slack-style `missing_scope` errors when a token lacks the required method scope. Supported user, presence, and file checks include `users:read`, `users:read.email`, `users.profile:read`, `users.profile:write`, `users:write`, `files:read`, and `files:write`.
81
+
All Web API endpoints require `Authorization: Bearer <token>`. Seeded OAuth apps create local installation state, and the OAuth v2 flow with user picker UI returns Slack-style bot tokens. Scope checks are relaxed by default for local development. Set `strict_scopes: true` in Slack seed config to return Slack-style `missing_scope` errors when a token lacks the required method scope. Supported user, presence, file, pin, and bookmark checks include `users:read`, `users:read.email`, `users.profile:read`, `users.profile:write`, `users:write`, `files:read`, `files:write`, `pins:read`, `pins:write`, `bookmarks:read`, and `bookmarks:write`.
0 commit comments