Limits & defaults
This page lists Workstate's limits and defaults in one place. Sizes follow the console: 1 MB is 1,048,576 bytes, except where a byte count is given.
Accounts and sign-in
| What | Limit or default |
|---|---|
| Signing in | With GitHub only |
| Sign-up | By invitation |
| Console session | 7 days |
Namespaces
| What | Limit or default |
|---|---|
| Namespace name | 1 to 80 characters |
| Namespace id | ws- followed by 32 hexadecimal characters. Some older namespaces have other ids, such as default. |
| Namespace used when a request names none | Your oldest namespace |
API keys
| What | Limit or default |
|---|---|
| Live keys per person | 25 |
| Key label | Required, 1 to 64 printable characters |
| Key expiry | None. A key works until it is revoked. |
| What a key reaches | Every namespace its owner has access to |
| When you see the key | Once, when you create it |
| Where keys are created | Only in the console, while signed in |
Sources
| What | Limit or default |
|---|---|
| Source name | 1 to 64 characters: letters, digits, spaces, -, _ and . |
| Schedule for a new GitHub, Confluence or Jira source | Every day, after a first sync that starts at once |
| Schedules to choose from | Every 5 minutes, 15 minutes, hour, 6 hours, day or week |
| Shortest schedule | 5 minutes |
| Syncs running at once, per account | 2 by default. Others wait their turn. |
| Retries of a failed sync | Up to 5 attempts in all. The pause before the first retry is about 30 seconds, and it doubles each time. |
| Syncs shown in Sync history | The last 20 |
GitHub
| What | Limit or default |
|---|---|
| What is read | The latest commit on each repository's default branch |
| Where from | github.com. GitHub Enterprise Server is not supported yet. |
| Largest file indexed | 1,000,000 bytes |
| Longest line | 50,000 bytes. A file with a longer line is skipped as generated. |
| Time to finish installing the App on GitHub | 30 minutes |
Confluence and Jira
| What | Limit or default |
|---|---|
| Sites | Atlassian Cloud only, at *.atlassian.net |
| Spaces or projects per source | 50 |
| Pages or issues per source | 20,000 |
| Comments per Jira issue | 500, oldest first |
| Text indexed per page or issue | 8 MB. Longer text is cut, with a note at the cut. |
| Time to check a token when you save it | 25 seconds |
Upload files
| What | Limit or default |
|---|---|
| Text, Markdown or code file | 1,000,000 bytes (the console shows 977 KB) |
| PDF, Word, Excel or PowerPoint file | 50 MB |
| One upload source | 2 GB and 20,000 files |
| Text indexed per document | 8 MB. Longer text is cut, with a note at the cut. |
| Path of a file | 512 bytes at most, with each file or folder name at most 255 bytes, and at most 16 levels deep, counting the file |
| One upload request | 256 MB. The console sends batches of up to 32 MB or 100 files. |
| Each top-level folder is a repository | Chosen when you create the source. It cannot be changed later. |
Search
| What | Limit or default |
|---|---|
| Results returned by default | 8 |
| Candidates ranked per search | 50. A search returns at most 50 results. |
top_k in the REST API | 1 to 100 |
| Reranking | On by default |
| Passage size | Up to 512 tokens, overlapping the next passage by 64 tokens |
| Code split by syntax | Rust, Python, TypeScript, JavaScript, C, C++, Bash and Ruby. Markdown is split by its structure. Other files are split as plain text. |
| Time a REST search can take | 60 seconds |
Ledger
| What | Limit or default |
|---|---|
| Topic types | decision, incident, defect, investigation |
| Statuses | open, proposed, accepted, resolved, superseded, reverted, wontfix |
| Starting status | proposed for a decision, open for the other types |
| Project name for a topic | Letters, digits, ., - and _ |
| Topic id | The project name, a hyphen, and a number of at least four digits, such as payments-0012 |
Results from ledger_search by default | 8. For archived topics, 50. |
Page of POST /v1/ledger/list | 50 topics by default, 200 at most |
| Editing history | Not possible. History is append-only. |
MCP servers
| What | Limit or default |
|---|---|
| Servers | rag-corpus at https://mcp-uat.workstate.io/corpus and rag-ledger at https://mcp-uat.workstate.io/ledger |
| Transport | Streamable HTTP. The servers are stateless, so there are no sessions to expire. |
| Authentication | An API key in the Authorization: Bearer header. MCP OAuth is not supported yet. |