# Plugin API v1 limits

This file is generated from `PLUGIN_LIMITS`. Do not edit it directly.

| Limit | Value | Unit | Applies to |
| --- | ---: | --- | --- |
| `manifestBytes` | 262144 | bytes | UTF-8 manifest size |
| `packageFiles` | 1000 | items | installed payload file count, including manifest.json |
| `packageBytes` | 33554432 | bytes | installed payload total bytes |
| `executableOrStyleFileBytes` | 2097152 | bytes | one entry or stylesheet |
| `liveBundleBytes` | 2097152 | bytes | one canonical plugin.live.json bundle |
| `liveJavaScriptBytes` | 1048576 | bytes | live bundle JavaScript source |
| `liveCssBytes` | 262144 | bytes | live bundle scoped CSS source |
| `liveCssRules` | 256 | items | rules in one live bundle stylesheet |
| `liveCssSelectors` | 512 | items | selectors in one live bundle stylesheet |
| `liveCssDeclarations` | 2048 | items | declarations in one live bundle stylesheet |
| `liveCssNestingDepth` | 8 | levels | nested at-rule and rule depth in one live bundle stylesheet |
| `liveCssSelectorCharacters` | 2048 | characters | one live bundle CSS selector |
| `liveCssValueCharacters` | 4096 | characters | one live bundle CSS declaration value |
| `liveMetadataBytes` | 262144 | bytes | live bundle manifest, settings schema, and provenance |
| `liveUiTreeBytes` | 786432 | bytes | one declarative live UI view tree |
| `liveUiTreeDepth` | 32 | levels | declarative live UI tree nesting |
| `liveUiTreeNodes` | 1000 | items | declarative live UI node count |
| `liveUiActionEventBytes` | 131072 | bytes | one declarative live UI action or form event |
| `liveRevisionRecentItems` | 20 | items | additional recent live revisions retained per vault |
| `liveRevisionVaultBytes` | 67108864 | bytes | non-mandatory live revision history per vault |
| `pluginIdCharacters` | 64 | characters | plugin ID length |
| `localIdCharacters` | 64 | characters | local contribution/connection ID length |
| `identityCharacters` | 128 | characters | setting key and other manifest identity length |
| `displayNameCharacters` | 256 | characters | manifest and contribution display text |
| `descriptionCharacters` | 2048 | characters | manifest description text |
| `pathBytes` | 4096 | bytes | canonical plugin-relative path |
| `pathSegmentBytes` | 255 | bytes | one canonical path segment |
| `contributionItemsPerKind` | 256 | items | declarations of one contribution kind |
| `markdownBlockConfigBytes` | 65536 | bytes | one admitted Markdown block configuration |
| `markdownBlockConfigProperties` | 64 | items | properties in one Markdown block configuration schema |
| `markdownBlockUpdatesPerSecond` | 10 | per-second | sidecar-driven renders for one mounted Markdown block |
| `editorExtensionBuildProofBytes` | 262144 | bytes | one normalized digest-bound editor-extension build metafile |
| `editorExtensionBuildInputs` | 2000 | items | source inputs in one editor-extension build proof |
| `editorExtensionPriorityOrderMin` | -1000 | items | lowest editor-extension order within a priority tier |
| `editorExtensionPriorityOrderMax` | 1000 | items | highest editor-extension order within a priority tier |
| `editorExtensionNoteTypes` | 64 | items | note types in one editor-extension applicability filter |
| `noteActionQueryItems` | 64 | items | metadata predicates in one note-action applicability query |
| `fileViewerExtensions` | 32 | items | exact extensions in one file-viewer declaration |
| `fileViewerMediaTypes` | 32 | items | exact MIME types in one file-viewer declaration |
| `fileViewerMaxBytes` | 10485760 | bytes | one centrally admitted file-viewer content copy |
| `settingSections` | 32 | items | declared setting sections |
| `settingFields` | 256 | items | all declared setting fields |
| `secretFields` | 32 | items | declared encrypted-secret fields |
| `secretPlaintextBytes` | 16384 | bytes | one plaintext secret input |
| `secretRecordBytes` | 32768 | bytes | one encoded encrypted-secret record |
| `secretBundleBytes` | 4194304 | bytes | complete encrypted plugin-secret bundle |
| `secretBundleRecords` | 4096 | items | encrypted records in one plugin-secret bundle |
| `networkConnections` | 32 | items | declared network connections |
| `networkRequestBodyBytes` | 10485760 | bytes | one plugin network request body |
| `networkTransferBytes` | 10485760 | bytes | one compressed plugin response transfer |
| `networkDecodedResponseBytes` | 10485760 | bytes | one decoded plugin response body |
| `networkTimeoutMinMilliseconds` | 1000 | milliseconds | shortest plugin network timeout |
| `networkTimeoutDefaultMilliseconds` | 15000 | milliseconds | default plugin network timeout |
| `networkTimeoutMaxMilliseconds` | 60000 | milliseconds | longest plugin network timeout |
| `networkConcurrentRequestsPerPlugin` | 4 | items | active network requests per authenticated plugin |
| `networkStartsPerPluginPerMinute` | 60 | per-minute | network request starts per authenticated plugin |
| `networkRedirects` | 5 | items | same-origin GET or HEAD redirects |
| `networkQueryItems` | 100 | items | query values in one plugin network request |
| `networkHeaderItems` | 32 | items | caller headers in one plugin network request |
| `networkHeaderBytes` | 16384 | bytes | caller header names and values in one plugin network request |
| `jobs` | 32 | items | declared lifecycle jobs |
| `jobTriggers` | 8 | items | triggers declared by one job |
| `jobIntervalMinutesMin` | 5 | minutes | shortest scheduled interval |
| `jobIntervalMinutesMax` | 1440 | minutes | longest scheduled interval |
| `jobDeadlineMilliseconds` | 900000 | milliseconds | non-configurable deadline for one plugin job run |
| `jobConcurrentPerPlugin` | 4 | items | different active jobs owned by one plugin |
| `jobConcurrentGlobal` | 16 | items | active plugin jobs in one client |
| `viewStateBytes` | 262144 | bytes | serialized JSON state per view |
| `viewStateDepth` | 32 | levels | serialized JSON state nesting |
| `viewTitleCharacters` | 256 | characters | host view title |
| `viewStatePublicationsPerSecond` | 10 | per-second | state publications per view |
| `serializedMessageBytes` | 1048576 | bytes | one ordinary plugin request, result page, or event |
| `noteBodyBytes` | 524288 | bytes | one admitted note body or body create input |
| `textEditItems` | 100 | items | structural text edits per request |
| `textEditInsertedBytes` | 524288 | bytes | total UTF-8 inserted text per structural edit request |
| `propertyBatchItems` | 100 | items | conditional property mutations per batch |
| `propertyLookupValues` | 500 | items | unique scalar values per indexed property lookup |
| `propertyLookupPageDefaultItems` | 100 | items | default property matches per page |
| `propertyLookupPageMaxItems` | 200 | items | maximum property matches per page |
| `searchPageDefaultItems` | 100 | items | default search rows per page |
| `searchPageMaxItems` | 200 | items | maximum search rows per page |
| `searchControllersPerPluginScope` | 16 | items | live reactive search controllers |
| `searchPresentationDomNodes` | 500 | items | DOM descendants in one native search presentation |
| `assetPageDefaultItems` | 100 | items | default indexed assets per page |
| `assetPageMaxItems` | 200 | items | maximum indexed assets per page |
| `assetReadMaxBytes` | 10485760 | bytes | maximum requested bytes for one asset read |
| `assetWatchesPerPluginScope` | 32 | items | live exact-path asset watches |
| `mutationOperationCharacters` | 64 | characters | authenticated mutation operation name |
| `backlinkPageDefaultItems` | 100 | items | default backlink rows per page |
| `backlinkPageMaxItems` | 200 | items | maximum backlink rows per page |
| `cursorTtlMilliseconds` | 300000 | milliseconds | sliding expiry for an opaque cursor |
| `cursorsPerPluginScope` | 128 | items | live opaque cursors before LRU eviction |
| `metadataSubscriptionsPerPluginScope` | 16 | items | live metadata subscriptions |
| `boundedErrorCodeCharacters` | 64 | characters | public error code length |
| `boundedErrorMessageCharacters` | 1024 | characters | public error message length |
