Skip to content

feat: GetAsset RPC, sample plugin manifest, DeepMergeConfigs#212

Merged
intel352 merged 2 commits intomainfrom
feat/sample-app-protocol
Feb 28, 2026
Merged

feat: GetAsset RPC, sample plugin manifest, DeepMergeConfigs#212
intel352 merged 2 commits intomainfrom
feat/sample-app-protocol

Conversation

@intel352
Copy link
Contributor

Summary

  • Add GetAsset RPC to gRPC plugin protocol for serving embedded static assets (UI files) without filesystem extraction
  • Add config_mutable and sample_category fields to plugin Manifest proto message
  • Add AssetProvider SDK interface and extend PluginManifest struct
  • Implement GetAsset handler in gRPC server with AssetProvider type assertion
  • Add accessor methods to ExternalPluginAdapter: GetAsset, IsSamplePlugin, IsConfigMutable, SampleCategory, ConfigFragmentBytes
  • Add DeepMergeConfigs with override-wins semantics (distinct from existing MergeConfigs primary-wins) for tenant config customization

Test plan

  • go build ./... passes
  • go test ./config/... — DeepMerge tests (nil handling, module matching, nested recursion, workflow/pipeline override)
  • go test ./plugin/... — GetAsset with/without AssetProvider, MIME detection, new manifest fields, adapter accessors
  • go test ./... — full suite passes

🤖 Generated with Claude Code

Extend the gRPC plugin protocol to support embedded static asset serving
and sample app metadata, enabling one-click trial deployments in cloud.

- Proto: add GetAsset RPC + config_mutable/sample_category manifest fields
- SDK: add AssetProvider interface, extend PluginManifest
- gRPC server: implement GetAsset with AssetProvider type assertion
- Adapter: add GetAsset, IsSamplePlugin, IsConfigMutable, SampleCategory,
  ConfigFragmentBytes accessors
- Config: add DeepMergeConfigs with override-wins semantics for tenant
  config customization (distinct from existing MergeConfigs primary-wins)
- Tests for all new functionality

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add nolint:nilerr for gRPC response-level error pattern in GetAsset
- Remove unused minimalProvider embedding in sampleProvider test type

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@intel352 intel352 merged commit 39ac297 into main Feb 28, 2026
14 checks passed
@intel352 intel352 deleted the feat/sample-app-protocol branch February 28, 2026 22:10
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