Skip to content

feat(sandbox): manifest sandbox config parsing and validation (#301) - #306

Merged
ZhuchkaTriplesix merged 1 commit into
devfrom
issue/301-sandbox-manifest-config
Jul 10, 2026
Merged

feat(sandbox): manifest sandbox config parsing and validation (#301)#306
ZhuchkaTriplesix merged 1 commit into
devfrom
issue/301-sandbox-manifest-config

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Summary

  • Add SandboxCapabilities, NetworkPermission, FilesystemPermission, ResourceLimits models parsing the sandbox block from manifest.json (Block E spec format), with safe defaults and unknown fallbacks for unrecognized values
  • Add SandboxPolicy enforcing security limits: process engine and network access only for database drivers, scratch_only filesystem access, scratch <= 100 MB, memory <= 512 MB, file descriptors <= 64
  • LocalExtensionRegistry now skips extensions whose sandbox declaration violates policy (with debug logging), and both MockMarketplaceRepository.install() and HttpMarketplaceRepository.install() throw MarketplaceException for such manifests

Closes #301

Test plan

  • flutter test test/core/extensions/ test/core/market/ — 36 tests pass
  • flutter test test/features/extensions/ — pass
  • CI flutter analyze (local analyzer crashes due to environment inotify limit, unrelated to changes)

… manifest

Adds SandboxCapabilities, NetworkPermission, FilesystemPermission and
ResourceLimits models parsed from the manifest "sandbox" block, plus
SandboxPolicy validation enforced in LocalExtensionRegistry loading and
marketplace install flows (issue #301, Block E M1).
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit dc13594 into dev Jul 10, 2026
4 checks passed
@ZhuchkaTriplesix ZhuchkaTriplesix self-assigned this Jul 12, 2026
@ZhuchkaTriplesix
ZhuchkaTriplesix deleted the issue/301-sandbox-manifest-config branch July 26, 2026 14:39
ZhuchkaTriplesix added a commit that referenced this pull request Jul 27, 2026
feat(sandbox): manifest sandbox config parsing and validation (#301)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant