Skip to content

Limits at a glance

Synth enforces every limit below except the ones marked host, which the reference host enforces at run time.

What Limit
Files per captured directory 32, 8 KiB each, 64 KiB together
Captured names (goal, trigger, lens, watch, channel, source, consumer, credential keys) [a-z][a-z0-9-]{0,63}
Channel file 64 KiB; {credential} at most once, nothing else in braces
Credentials 32; description 512 characters; 1 to 32 oauth2 scopes
API entries / operations 32 / 128; 64 writes; 64 parameters per operation; 256 paths and 1 MiB per document; 64 KiB apis.yml; 16 fixed headers
GraphQL 1 to 32 operations, 32 variables each, 16 KiB per document, 64 KiB file, 16 fixed headers, 128 enum values
Data-pipe sources, consumers 128 each; 256 bytes per source field; 64 KiB file
Websocket keepalive 10 seconds to 5 minutes
Long-poll interval at least 1 second (default 5), and never below the operator’s floor (host)
Webhook verification reply 1 KiB
Dependencies 8 on the reference host, modules up to 32 MiB, init script up to 1 MiB (host)
Producer joins / pushdown rules / pages 8 / 16 / 16
Producer fetch 256 keys, 64 KiB arguments, 1 MiB output, 1,024 rows (host)
Graph query 16 KiB statement, 128 parameters, LIMIT 1 to 512, 1 MiB of rows (host)
View aliases 32
Watches 16; at least 5 minutes apart; criteria 2048 bytes, judge 1024 bytes; 32 items per run (host)
Apps 32 apps, 32 handlers each, 8 KiB manifest; by default 16 resources, 10 MiB page, 10 MiB per resource and in total, changed with the --app-* flags or a profile
Write proposals 64 KiB, 64 entries per object, 4 levels, 2048-byte key, 32 pending per installation (host; the generated types also refuse a fifth level)