Plugins declare site-root path claims (exact or prefix) and a sitemap contribution flag in plugin.mod; the packer validates and stamps them into PluginManifest. Validation rejects reserved prefixes (/admin, /api/plugins, /ws), traversal, duplicates, and prefix claims that cover a reserved prefix. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1630 lines
54 KiB
Go
1630 lines
54 KiB
Go
// manifest.proto — the static plugin manifest (WO-WZ-001).
|
|
//
|
|
// PluginManifest is the wire form of everything that is *static data* in
|
|
// core/plugin/registration.go (PluginRegistration). It is produced once at
|
|
// publish time by calling the guest's DESCRIBE hook and stored as manifest.pb
|
|
// inside the .bnp artifact; the CMS loader reads it without instantiating the
|
|
// wasm module.
|
|
//
|
|
// Function-valued registration fields cannot cross the wire; they map to
|
|
// either a hook (Load/Unload/JobHandlers/MediaHooks/HTTPHandler), a boolean
|
|
// presence flag here, or an artifact directory (Assets → assets/,
|
|
// Schemas → schemas/, Migrations → migrations/). See core/docs/wasm-abi.md
|
|
// for the full field-by-field mapping.
|
|
|
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.36.11
|
|
// protoc (unknown)
|
|
// source: v1/manifest.proto
|
|
|
|
package abiv1
|
|
|
|
import (
|
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
reflect "reflect"
|
|
sync "sync"
|
|
unsafe "unsafe"
|
|
)
|
|
|
|
const (
|
|
// Verify that this generated code is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
|
)
|
|
|
|
// PluginManifest mirrors the static surface of plugin.PluginRegistration.
|
|
type PluginManifest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// ABI major version the plugin was built against. The host rejects
|
|
// manifests whose major version it does not support.
|
|
AbiVersion uint32 `protobuf:"varint,1,opt,name=abi_version,json=abiVersion,proto3" json:"abi_version,omitempty"`
|
|
// PluginRegistration.Name / .Version.
|
|
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
|
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
|
|
// PluginRegistration.Dependencies.
|
|
Dependencies []*Dependency `protobuf:"bytes,4,rep,name=dependencies,proto3" json:"dependencies,omitempty"`
|
|
// Blocks registered via BlockRegistry.Register (captured by DESCRIBE).
|
|
Blocks []*BlockMeta `protobuf:"bytes,5,rep,name=blocks,proto3" json:"blocks,omitempty"`
|
|
// Blocks registered via BlockRegistry.RegisterTemplateOverride[WithSource].
|
|
BlockTemplateOverrides []*BlockTemplateOverride `protobuf:"bytes,6,rep,name=block_template_overrides,json=blockTemplateOverrides,proto3" json:"block_template_overrides,omitempty"`
|
|
// Templates registered via TemplateRegistry (captured by DESCRIBE).
|
|
TemplateKeys []string `protobuf:"bytes,7,rep,name=template_keys,json=templateKeys,proto3" json:"template_keys,omitempty"` // TemplateRegistry.Register
|
|
SystemTemplates []*SystemTemplateMeta `protobuf:"bytes,8,rep,name=system_templates,json=systemTemplates,proto3" json:"system_templates,omitempty"` // RegisterSystemTemplate
|
|
PageTemplates []*PageTemplateMeta `protobuf:"bytes,9,rep,name=page_templates,json=pageTemplates,proto3" json:"page_templates,omitempty"` // RegisterPageTemplate
|
|
EmailWrapperSystemKeys []string `protobuf:"bytes,10,rep,name=email_wrapper_system_keys,json=emailWrapperSystemKeys,proto3" json:"email_wrapper_system_keys,omitempty"` // RegisterEmailWrapper
|
|
// PluginRegistration.AdminPages.
|
|
AdminPages []*AdminPage `protobuf:"bytes,11,rep,name=admin_pages,json=adminPages,proto3" json:"admin_pages,omitempty"`
|
|
// PluginRegistration.SettingsSchema / .ThemePresets / .BundledFonts (JSON).
|
|
SettingsSchema []byte `protobuf:"bytes,12,opt,name=settings_schema,json=settingsSchema,proto3" json:"settings_schema,omitempty"`
|
|
ThemePresets []byte `protobuf:"bytes,13,opt,name=theme_presets,json=themePresets,proto3" json:"theme_presets,omitempty"`
|
|
BundledFonts []byte `protobuf:"bytes,14,opt,name=bundled_fonts,json=bundledFonts,proto3" json:"bundled_fonts,omitempty"`
|
|
// PluginRegistration.MasterPages.
|
|
MasterPages []*MasterPageDefinition `protobuf:"bytes,15,rep,name=master_pages,json=masterPages,proto3" json:"master_pages,omitempty"`
|
|
// PluginRegistration.AIActions.
|
|
AiActions []*AiAction `protobuf:"bytes,16,rep,name=ai_actions,json=aiActions,proto3" json:"ai_actions,omitempty"`
|
|
// RBAC roles for the plugin's own Connect services, merged from
|
|
// ServiceRegistration (full method name → role, e.g.
|
|
// "/symposium.v1.ForumService/CreateThread" → "admin").
|
|
RbacMethodRoles map[string]string `protobuf:"bytes,17,rep,name=rbac_method_roles,json=rbacMethodRoles,proto3" json:"rbac_method_roles,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
// PluginRegistration.CSSManifest.
|
|
CssManifest *CssManifest `protobuf:"bytes,18,opt,name=css_manifest,json=cssManifest,proto3" json:"css_manifest,omitempty"`
|
|
// PluginRegistration.RequiredIconPacks.
|
|
RequiredIconPacks []string `protobuf:"bytes,19,rep,name=required_icon_packs,json=requiredIconPacks,proto3" json:"required_icon_packs,omitempty"`
|
|
// PluginRegistration.DirectoryExtensions (static fields only; the
|
|
// panel-section / pin-decorator callbacks are counted so the host knows
|
|
// how many guest callbacks exist).
|
|
DirectoryExtensions *DirectoryExtensions `protobuf:"bytes,20,opt,name=directory_extensions,json=directoryExtensions,proto3" json:"directory_extensions,omitempty"`
|
|
// Job types the plugin handles (keys of PluginRegistration.JobHandlers).
|
|
// The host dispatches these via the JOB hook.
|
|
JobTypes []string `protobuf:"bytes,21,rep,name=job_types,json=jobTypes,proto3" json:"job_types,omitempty"`
|
|
// Content types the plugin registered RAG content fetchers for
|
|
// (RAGService.RegisterContentFetcher inverts to a manifest declaration;
|
|
// the host calls back via the RAG_FETCH hook).
|
|
RagContentFetcherTypes []string `protobuf:"bytes,22,rep,name=rag_content_fetcher_types,json=ragContentFetcherTypes,proto3" json:"rag_content_fetcher_types,omitempty"`
|
|
// PluginRegistration.SettingsPanel — Module Federation path of the
|
|
// settings panel component ("" when the plugin has none).
|
|
SettingsPanel string `protobuf:"bytes,23,opt,name=settings_panel,json=settingsPanel,proto3" json:"settings_panel,omitempty"`
|
|
// Presence flags for function-valued registration fields that invert to
|
|
// hooks at runtime.
|
|
HasHttpHandler bool `protobuf:"varint,24,opt,name=has_http_handler,json=hasHttpHandler,proto3" json:"has_http_handler,omitempty"` // PluginRegistration.HTTPHandler → HANDLE_HTTP
|
|
HasLoadHook bool `protobuf:"varint,25,opt,name=has_load_hook,json=hasLoadHook,proto3" json:"has_load_hook,omitempty"` // PluginRegistration.Load → LOAD
|
|
HasUnloadHook bool `protobuf:"varint,26,opt,name=has_unload_hook,json=hasUnloadHook,proto3" json:"has_unload_hook,omitempty"` // PluginRegistration.Unload → UNLOAD
|
|
HasMediaHooks bool `protobuf:"varint,27,opt,name=has_media_hooks,json=hasMediaHooks,proto3" json:"has_media_hooks,omitempty"` // PluginRegistration.MediaHooks → MEDIA_HOOK
|
|
HasProvisioner bool `protobuf:"varint,28,opt,name=has_provisioner,json=hasProvisioner,proto3" json:"has_provisioner,omitempty"` // PluginRegistration.RegisterWithProvisioner
|
|
// Core CMS services the plugin mounts with custom RBAC roles
|
|
// (CoreServiceBindings.Bind becomes a static declaration; the host
|
|
// constructs and mounts the handlers).
|
|
CoreServiceBindings []*CoreServiceBinding `protobuf:"bytes,29,rep,name=core_service_bindings,json=coreServiceBindings,proto3" json:"core_service_bindings,omitempty"`
|
|
// data_dir requests a persistent per-plugin /data preopen at load. Its
|
|
// source of truth is the plugin.mod `data_dir = true` key, which lives
|
|
// outside the guest code, so DESCRIBE cannot populate it: the packer
|
|
// (`ninja plugin build`) stamps it into the manifest from plugin.mod so
|
|
// the loader reads one source. OFF by default.
|
|
DataDir bool `protobuf:"varint,30,opt,name=data_dir,json=dataDir,proto3" json:"data_dir,omitempty"`
|
|
// Template tags the plugin provides (blocks.RegisterTag). For each name the
|
|
// host registers a pongo2 tag that invokes the guest via HOOK_RENDER_TAG.
|
|
// Captured by DESCRIBE from the blocks tag registry (Register-time).
|
|
DeclaredTags []string `protobuf:"bytes,31,rep,name=declared_tags,json=declaredTags,proto3" json:"declared_tags,omitempty"`
|
|
// Template filters the plugin provides (blocks.RegisterFilter). For each
|
|
// name the host registers a pongo2 filter that invokes the guest via
|
|
// HOOK_APPLY_FILTER. Captured by DESCRIBE from the blocks filter registry.
|
|
DeclaredFilters []string `protobuf:"bytes,32,rep,name=declared_filters,json=declaredFilters,proto3" json:"declared_filters,omitempty"`
|
|
// codeless marks a declarative artifact with NO plugin.wasm (WO-WZ-020):
|
|
// the host runs it entirely — block definitions from the artifact's
|
|
// blocks/ dir (blocks.yaml manifest-FS layout), seed data from seed/,
|
|
// assets/migrations as usual — and never instantiates a guest. A codeless
|
|
// manifest MUST NOT declare any computing hook (http handler, jobs,
|
|
// load/unload, RAG fetchers, media hooks, tags/filters, provisioner,
|
|
// service bindings, directory callbacks); the packer and the host reader
|
|
// both reject the combination. Not produced by DESCRIBE (there is no guest
|
|
// to describe): `ninja plugin build` synthesizes the manifest from
|
|
// plugin.mod + the artifact's declarative files.
|
|
Codeless bool `protobuf:"varint,33,opt,name=codeless,proto3" json:"codeless,omitempty"`
|
|
// allowed_hosts declares the egress host patterns the plugin needs for
|
|
// http.request (exact hostname or left-anchored multi-label wildcard,
|
|
// e.g. "*.cal.com"; https/443 only unless an entry names an explicit
|
|
// port). Like data_dir, its source of truth is plugin.mod — the packer
|
|
// stamps it — because it lives outside the guest code. The host refuses
|
|
// to load the plugin until an admin grants the full declared set
|
|
// (ADR 0023, cms repo). Empty means no egress.
|
|
AllowedHosts []string `protobuf:"bytes,34,rep,name=allowed_hosts,json=allowedHosts,proto3" json:"allowed_hosts,omitempty"`
|
|
// max_response_mb requests a larger per-request http.request response cap
|
|
// than the 10 MB default. Rides the same admin grant as allowed_hosts.
|
|
// Zero means the default.
|
|
MaxResponseMb uint32 `protobuf:"varint,35,opt,name=max_response_mb,json=maxResponseMb,proto3" json:"max_response_mb,omitempty"`
|
|
// public_routes declares the site-root paths the plugin serves through its
|
|
// HTTP handler (ADR 0026, cms repo): exact paths and path prefixes the host
|
|
// mounts at the public site root, dispatching to HOOK_HANDLE_HTTP with the
|
|
// full unstripped request path. Like data_dir and allowed_hosts, the source
|
|
// of truth is plugin.mod; the packer validates and stamps it. Conflict
|
|
// rules are host-side: core routes always win, between plugins the
|
|
// first-installed plugin wins, and conflicts are surfaced in the admin UI,
|
|
// never silently dropped. Empty means the plugin serves HTTP only under
|
|
// /api/plugins/<name>.
|
|
PublicRoutes []*PublicRoute `protobuf:"bytes,36,rep,name=public_routes,json=publicRoutes,proto3" json:"public_routes,omitempty"`
|
|
// sitemap requests sitemap contribution: when true the host fetches
|
|
// entries from the plugin's well-known sitemap endpoint (served by its
|
|
// HTTP handler) and merges them into the site sitemap. Requires
|
|
// has_http_handler.
|
|
Sitemap bool `protobuf:"varint,37,opt,name=sitemap,proto3" json:"sitemap,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *PluginManifest) Reset() {
|
|
*x = PluginManifest{}
|
|
mi := &file_v1_manifest_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *PluginManifest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PluginManifest) ProtoMessage() {}
|
|
|
|
func (x *PluginManifest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[0]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use PluginManifest.ProtoReflect.Descriptor instead.
|
|
func (*PluginManifest) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
func (x *PluginManifest) GetAbiVersion() uint32 {
|
|
if x != nil {
|
|
return x.AbiVersion
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *PluginManifest) GetName() string {
|
|
if x != nil {
|
|
return x.Name
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PluginManifest) GetVersion() string {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PluginManifest) GetDependencies() []*Dependency {
|
|
if x != nil {
|
|
return x.Dependencies
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetBlocks() []*BlockMeta {
|
|
if x != nil {
|
|
return x.Blocks
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetBlockTemplateOverrides() []*BlockTemplateOverride {
|
|
if x != nil {
|
|
return x.BlockTemplateOverrides
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetTemplateKeys() []string {
|
|
if x != nil {
|
|
return x.TemplateKeys
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetSystemTemplates() []*SystemTemplateMeta {
|
|
if x != nil {
|
|
return x.SystemTemplates
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetPageTemplates() []*PageTemplateMeta {
|
|
if x != nil {
|
|
return x.PageTemplates
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetEmailWrapperSystemKeys() []string {
|
|
if x != nil {
|
|
return x.EmailWrapperSystemKeys
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetAdminPages() []*AdminPage {
|
|
if x != nil {
|
|
return x.AdminPages
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetSettingsSchema() []byte {
|
|
if x != nil {
|
|
return x.SettingsSchema
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetThemePresets() []byte {
|
|
if x != nil {
|
|
return x.ThemePresets
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetBundledFonts() []byte {
|
|
if x != nil {
|
|
return x.BundledFonts
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetMasterPages() []*MasterPageDefinition {
|
|
if x != nil {
|
|
return x.MasterPages
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetAiActions() []*AiAction {
|
|
if x != nil {
|
|
return x.AiActions
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetRbacMethodRoles() map[string]string {
|
|
if x != nil {
|
|
return x.RbacMethodRoles
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetCssManifest() *CssManifest {
|
|
if x != nil {
|
|
return x.CssManifest
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetRequiredIconPacks() []string {
|
|
if x != nil {
|
|
return x.RequiredIconPacks
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetDirectoryExtensions() *DirectoryExtensions {
|
|
if x != nil {
|
|
return x.DirectoryExtensions
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetJobTypes() []string {
|
|
if x != nil {
|
|
return x.JobTypes
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetRagContentFetcherTypes() []string {
|
|
if x != nil {
|
|
return x.RagContentFetcherTypes
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetSettingsPanel() string {
|
|
if x != nil {
|
|
return x.SettingsPanel
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PluginManifest) GetHasHttpHandler() bool {
|
|
if x != nil {
|
|
return x.HasHttpHandler
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PluginManifest) GetHasLoadHook() bool {
|
|
if x != nil {
|
|
return x.HasLoadHook
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PluginManifest) GetHasUnloadHook() bool {
|
|
if x != nil {
|
|
return x.HasUnloadHook
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PluginManifest) GetHasMediaHooks() bool {
|
|
if x != nil {
|
|
return x.HasMediaHooks
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PluginManifest) GetHasProvisioner() bool {
|
|
if x != nil {
|
|
return x.HasProvisioner
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PluginManifest) GetCoreServiceBindings() []*CoreServiceBinding {
|
|
if x != nil {
|
|
return x.CoreServiceBindings
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetDataDir() bool {
|
|
if x != nil {
|
|
return x.DataDir
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PluginManifest) GetDeclaredTags() []string {
|
|
if x != nil {
|
|
return x.DeclaredTags
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetDeclaredFilters() []string {
|
|
if x != nil {
|
|
return x.DeclaredFilters
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetCodeless() bool {
|
|
if x != nil {
|
|
return x.Codeless
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *PluginManifest) GetAllowedHosts() []string {
|
|
if x != nil {
|
|
return x.AllowedHosts
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetMaxResponseMb() uint32 {
|
|
if x != nil {
|
|
return x.MaxResponseMb
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *PluginManifest) GetPublicRoutes() []*PublicRoute {
|
|
if x != nil {
|
|
return x.PublicRoutes
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *PluginManifest) GetSitemap() bool {
|
|
if x != nil {
|
|
return x.Sitemap
|
|
}
|
|
return false
|
|
}
|
|
|
|
// PublicRoute is one site-root path claim (see PluginManifest.public_routes).
|
|
type PublicRoute struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
// Absolute site-root path, e.g. "/area" or "/api/directory". Validated by
|
|
// the packer: must start with "/", no reserved prefixes ("/admin",
|
|
// "/api/plugins", "/ws"), no traversal or empty segments.
|
|
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
|
|
// When true the claim covers every path under path as well (a path-prefix
|
|
// mount); when false only the exact path is claimed.
|
|
Prefix bool `protobuf:"varint,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *PublicRoute) Reset() {
|
|
*x = PublicRoute{}
|
|
mi := &file_v1_manifest_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *PublicRoute) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PublicRoute) ProtoMessage() {}
|
|
|
|
func (x *PublicRoute) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[1]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use PublicRoute.ProtoReflect.Descriptor instead.
|
|
func (*PublicRoute) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
func (x *PublicRoute) GetPath() string {
|
|
if x != nil {
|
|
return x.Path
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PublicRoute) GetPrefix() bool {
|
|
if x != nil {
|
|
return x.Prefix
|
|
}
|
|
return false
|
|
}
|
|
|
|
// Dependency mirrors plugin.Dependency.
|
|
type Dependency struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Plugin string `protobuf:"bytes,1,opt,name=plugin,proto3" json:"plugin,omitempty"`
|
|
MinVersion string `protobuf:"bytes,2,opt,name=min_version,json=minVersion,proto3" json:"min_version,omitempty"`
|
|
Required bool `protobuf:"varint,3,opt,name=required,proto3" json:"required,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *Dependency) Reset() {
|
|
*x = Dependency{}
|
|
mi := &file_v1_manifest_proto_msgTypes[2]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *Dependency) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Dependency) ProtoMessage() {}
|
|
|
|
func (x *Dependency) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[2]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Dependency.ProtoReflect.Descriptor instead.
|
|
func (*Dependency) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
func (x *Dependency) GetPlugin() string {
|
|
if x != nil {
|
|
return x.Plugin
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Dependency) GetMinVersion() string {
|
|
if x != nil {
|
|
return x.MinVersion
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *Dependency) GetRequired() bool {
|
|
if x != nil {
|
|
return x.Required
|
|
}
|
|
return false
|
|
}
|
|
|
|
// BlockMeta mirrors blocks.BlockMeta. Source is omitted: the host assigns it
|
|
// from the manifest's plugin name at load time.
|
|
type BlockMeta struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
|
|
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
|
|
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
|
|
// blocks.BlockCategory string ("content", "layout", "navigation", "blog",
|
|
// "theme").
|
|
Category string `protobuf:"bytes,4,opt,name=category,proto3" json:"category,omitempty"`
|
|
HasInternalSlot bool `protobuf:"varint,5,opt,name=has_internal_slot,json=hasInternalSlot,proto3" json:"has_internal_slot,omitempty"`
|
|
Hidden bool `protobuf:"varint,6,opt,name=hidden,proto3" json:"hidden,omitempty"`
|
|
EditorJs string `protobuf:"bytes,7,opt,name=editor_js,json=editorJs,proto3" json:"editor_js,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *BlockMeta) Reset() {
|
|
*x = BlockMeta{}
|
|
mi := &file_v1_manifest_proto_msgTypes[3]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *BlockMeta) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*BlockMeta) ProtoMessage() {}
|
|
|
|
func (x *BlockMeta) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[3]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use BlockMeta.ProtoReflect.Descriptor instead.
|
|
func (*BlockMeta) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
func (x *BlockMeta) GetKey() string {
|
|
if x != nil {
|
|
return x.Key
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BlockMeta) GetTitle() string {
|
|
if x != nil {
|
|
return x.Title
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BlockMeta) GetDescription() string {
|
|
if x != nil {
|
|
return x.Description
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BlockMeta) GetCategory() string {
|
|
if x != nil {
|
|
return x.Category
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BlockMeta) GetHasInternalSlot() bool {
|
|
if x != nil {
|
|
return x.HasInternalSlot
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *BlockMeta) GetHidden() bool {
|
|
if x != nil {
|
|
return x.Hidden
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (x *BlockMeta) GetEditorJs() string {
|
|
if x != nil {
|
|
return x.EditorJs
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// BlockTemplateOverride captures BlockRegistry.RegisterTemplateOverride and
|
|
// RegisterTemplateOverrideWithSource registrations.
|
|
type BlockTemplateOverride struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
TemplateKey string `protobuf:"bytes,1,opt,name=template_key,json=templateKey,proto3" json:"template_key,omitempty"`
|
|
BlockKey string `protobuf:"bytes,2,opt,name=block_key,json=blockKey,proto3" json:"block_key,omitempty"`
|
|
// Override source label; empty for plain RegisterTemplateOverride.
|
|
Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *BlockTemplateOverride) Reset() {
|
|
*x = BlockTemplateOverride{}
|
|
mi := &file_v1_manifest_proto_msgTypes[4]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *BlockTemplateOverride) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*BlockTemplateOverride) ProtoMessage() {}
|
|
|
|
func (x *BlockTemplateOverride) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[4]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use BlockTemplateOverride.ProtoReflect.Descriptor instead.
|
|
func (*BlockTemplateOverride) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{4}
|
|
}
|
|
|
|
func (x *BlockTemplateOverride) GetTemplateKey() string {
|
|
if x != nil {
|
|
return x.TemplateKey
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BlockTemplateOverride) GetBlockKey() string {
|
|
if x != nil {
|
|
return x.BlockKey
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BlockTemplateOverride) GetSource() string {
|
|
if x != nil {
|
|
return x.Source
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// SystemTemplateMeta mirrors templates.SystemTemplateMeta.
|
|
type SystemTemplateMeta struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
|
|
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
|
|
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SystemTemplateMeta) Reset() {
|
|
*x = SystemTemplateMeta{}
|
|
mi := &file_v1_manifest_proto_msgTypes[5]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SystemTemplateMeta) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SystemTemplateMeta) ProtoMessage() {}
|
|
|
|
func (x *SystemTemplateMeta) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[5]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SystemTemplateMeta.ProtoReflect.Descriptor instead.
|
|
func (*SystemTemplateMeta) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{5}
|
|
}
|
|
|
|
func (x *SystemTemplateMeta) GetKey() string {
|
|
if x != nil {
|
|
return x.Key
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SystemTemplateMeta) GetTitle() string {
|
|
if x != nil {
|
|
return x.Title
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SystemTemplateMeta) GetDescription() string {
|
|
if x != nil {
|
|
return x.Description
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// PageTemplateMeta mirrors templates.PageTemplateMeta plus the system
|
|
// template it was registered under.
|
|
type PageTemplateMeta struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
SystemKey string `protobuf:"bytes,1,opt,name=system_key,json=systemKey,proto3" json:"system_key,omitempty"`
|
|
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
|
|
Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
|
|
Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
|
|
Slots []string `protobuf:"bytes,5,rep,name=slots,proto3" json:"slots,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *PageTemplateMeta) Reset() {
|
|
*x = PageTemplateMeta{}
|
|
mi := &file_v1_manifest_proto_msgTypes[6]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *PageTemplateMeta) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*PageTemplateMeta) ProtoMessage() {}
|
|
|
|
func (x *PageTemplateMeta) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[6]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use PageTemplateMeta.ProtoReflect.Descriptor instead.
|
|
func (*PageTemplateMeta) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{6}
|
|
}
|
|
|
|
func (x *PageTemplateMeta) GetSystemKey() string {
|
|
if x != nil {
|
|
return x.SystemKey
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PageTemplateMeta) GetKey() string {
|
|
if x != nil {
|
|
return x.Key
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PageTemplateMeta) GetTitle() string {
|
|
if x != nil {
|
|
return x.Title
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PageTemplateMeta) GetDescription() string {
|
|
if x != nil {
|
|
return x.Description
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *PageTemplateMeta) GetSlots() []string {
|
|
if x != nil {
|
|
return x.Slots
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// AdminPage mirrors plugin.AdminPage.
|
|
type AdminPage struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
|
|
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
|
|
Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"`
|
|
Route string `protobuf:"bytes,4,opt,name=route,proto3" json:"route,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AdminPage) Reset() {
|
|
*x = AdminPage{}
|
|
mi := &file_v1_manifest_proto_msgTypes[7]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AdminPage) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AdminPage) ProtoMessage() {}
|
|
|
|
func (x *AdminPage) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[7]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use AdminPage.ProtoReflect.Descriptor instead.
|
|
func (*AdminPage) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{7}
|
|
}
|
|
|
|
func (x *AdminPage) GetKey() string {
|
|
if x != nil {
|
|
return x.Key
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AdminPage) GetTitle() string {
|
|
if x != nil {
|
|
return x.Title
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AdminPage) GetIcon() string {
|
|
if x != nil {
|
|
return x.Icon
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AdminPage) GetRoute() string {
|
|
if x != nil {
|
|
return x.Route
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// AiAction mirrors plugin.AIAction.
|
|
type AiAction struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
|
|
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
|
|
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
|
|
DefaultProvider string `protobuf:"bytes,4,opt,name=default_provider,json=defaultProvider,proto3" json:"default_provider,omitempty"`
|
|
DefaultModel string `protobuf:"bytes,5,opt,name=default_model,json=defaultModel,proto3" json:"default_model,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *AiAction) Reset() {
|
|
*x = AiAction{}
|
|
mi := &file_v1_manifest_proto_msgTypes[8]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *AiAction) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*AiAction) ProtoMessage() {}
|
|
|
|
func (x *AiAction) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[8]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use AiAction.ProtoReflect.Descriptor instead.
|
|
func (*AiAction) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{8}
|
|
}
|
|
|
|
func (x *AiAction) GetKey() string {
|
|
if x != nil {
|
|
return x.Key
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AiAction) GetTitle() string {
|
|
if x != nil {
|
|
return x.Title
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AiAction) GetDescription() string {
|
|
if x != nil {
|
|
return x.Description
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AiAction) GetDefaultProvider() string {
|
|
if x != nil {
|
|
return x.DefaultProvider
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *AiAction) GetDefaultModel() string {
|
|
if x != nil {
|
|
return x.DefaultModel
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// CssManifest mirrors plugin.CSSManifest.
|
|
type CssManifest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
NpmPackages map[string]string `protobuf:"bytes,1,rep,name=npm_packages,json=npmPackages,proto3" json:"npm_packages,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
CssDirectives []string `protobuf:"bytes,2,rep,name=css_directives,json=cssDirectives,proto3" json:"css_directives,omitempty"`
|
|
InputCssAppend string `protobuf:"bytes,3,opt,name=input_css_append,json=inputCssAppend,proto3" json:"input_css_append,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *CssManifest) Reset() {
|
|
*x = CssManifest{}
|
|
mi := &file_v1_manifest_proto_msgTypes[9]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *CssManifest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CssManifest) ProtoMessage() {}
|
|
|
|
func (x *CssManifest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[9]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use CssManifest.ProtoReflect.Descriptor instead.
|
|
func (*CssManifest) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{9}
|
|
}
|
|
|
|
func (x *CssManifest) GetNpmPackages() map[string]string {
|
|
if x != nil {
|
|
return x.NpmPackages
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *CssManifest) GetCssDirectives() []string {
|
|
if x != nil {
|
|
return x.CssDirectives
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *CssManifest) GetInputCssAppend() string {
|
|
if x != nil {
|
|
return x.InputCssAppend
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// DirectoryExtensions mirrors the static fields of plugin.DirectoryExtensions.
|
|
type DirectoryExtensions struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
BooleanFilterFields []string `protobuf:"bytes,1,rep,name=boolean_filter_fields,json=booleanFilterFields,proto3" json:"boolean_filter_fields,omitempty"`
|
|
SelectFilterFields []string `protobuf:"bytes,2,rep,name=select_filter_fields,json=selectFilterFields,proto3" json:"select_filter_fields,omitempty"`
|
|
BadgeLabels map[string]*BadgeLabel `protobuf:"bytes,3,rep,name=badge_labels,json=badgeLabels,proto3" json:"badge_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
// Counts of the callback slices (PanelSections / PinDecorators) so the host
|
|
// knows how many guest callbacks the plugin registered. Their invocation
|
|
// hook is a runtime-WO concern.
|
|
PanelSectionCount uint32 `protobuf:"varint,4,opt,name=panel_section_count,json=panelSectionCount,proto3" json:"panel_section_count,omitempty"`
|
|
PinDecoratorCount uint32 `protobuf:"varint,5,opt,name=pin_decorator_count,json=pinDecoratorCount,proto3" json:"pin_decorator_count,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DirectoryExtensions) Reset() {
|
|
*x = DirectoryExtensions{}
|
|
mi := &file_v1_manifest_proto_msgTypes[10]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DirectoryExtensions) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DirectoryExtensions) ProtoMessage() {}
|
|
|
|
func (x *DirectoryExtensions) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[10]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use DirectoryExtensions.ProtoReflect.Descriptor instead.
|
|
func (*DirectoryExtensions) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{10}
|
|
}
|
|
|
|
func (x *DirectoryExtensions) GetBooleanFilterFields() []string {
|
|
if x != nil {
|
|
return x.BooleanFilterFields
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DirectoryExtensions) GetSelectFilterFields() []string {
|
|
if x != nil {
|
|
return x.SelectFilterFields
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DirectoryExtensions) GetBadgeLabels() map[string]*BadgeLabel {
|
|
if x != nil {
|
|
return x.BadgeLabels
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *DirectoryExtensions) GetPanelSectionCount() uint32 {
|
|
if x != nil {
|
|
return x.PanelSectionCount
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *DirectoryExtensions) GetPinDecoratorCount() uint32 {
|
|
if x != nil {
|
|
return x.PinDecoratorCount
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// BadgeLabel mirrors the [2]string value of DirectoryExtensions.BadgeLabels.
|
|
type BadgeLabel struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Positive string `protobuf:"bytes,1,opt,name=positive,proto3" json:"positive,omitempty"`
|
|
Negative string `protobuf:"bytes,2,opt,name=negative,proto3" json:"negative,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *BadgeLabel) Reset() {
|
|
*x = BadgeLabel{}
|
|
mi := &file_v1_manifest_proto_msgTypes[11]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *BadgeLabel) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*BadgeLabel) ProtoMessage() {}
|
|
|
|
func (x *BadgeLabel) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[11]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use BadgeLabel.ProtoReflect.Descriptor instead.
|
|
func (*BadgeLabel) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{11}
|
|
}
|
|
|
|
func (x *BadgeLabel) GetPositive() string {
|
|
if x != nil {
|
|
return x.Positive
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BadgeLabel) GetNegative() string {
|
|
if x != nil {
|
|
return x.Negative
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// MasterPageDefinition mirrors plugin.MasterPageDefinition.
|
|
type MasterPageDefinition struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
|
|
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
|
|
PageTemplates []string `protobuf:"bytes,3,rep,name=page_templates,json=pageTemplates,proto3" json:"page_templates,omitempty"`
|
|
Blocks []*MasterPageBlock `protobuf:"bytes,4,rep,name=blocks,proto3" json:"blocks,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MasterPageDefinition) Reset() {
|
|
*x = MasterPageDefinition{}
|
|
mi := &file_v1_manifest_proto_msgTypes[12]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MasterPageDefinition) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MasterPageDefinition) ProtoMessage() {}
|
|
|
|
func (x *MasterPageDefinition) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[12]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use MasterPageDefinition.ProtoReflect.Descriptor instead.
|
|
func (*MasterPageDefinition) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{12}
|
|
}
|
|
|
|
func (x *MasterPageDefinition) GetKey() string {
|
|
if x != nil {
|
|
return x.Key
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MasterPageDefinition) GetTitle() string {
|
|
if x != nil {
|
|
return x.Title
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MasterPageDefinition) GetPageTemplates() []string {
|
|
if x != nil {
|
|
return x.PageTemplates
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MasterPageDefinition) GetBlocks() []*MasterPageBlock {
|
|
if x != nil {
|
|
return x.Blocks
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// MasterPageBlock mirrors plugin.MasterPageBlock.
|
|
type MasterPageBlock struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
BlockKey string `protobuf:"bytes,1,opt,name=block_key,json=blockKey,proto3" json:"block_key,omitempty"`
|
|
Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
|
|
// JSON encoding of the block's content map.
|
|
ContentJson []byte `protobuf:"bytes,3,opt,name=content_json,json=contentJson,proto3" json:"content_json,omitempty"`
|
|
HtmlContent *string `protobuf:"bytes,4,opt,name=html_content,json=htmlContent,proto3,oneof" json:"html_content,omitempty"`
|
|
Slot string `protobuf:"bytes,5,opt,name=slot,proto3" json:"slot,omitempty"`
|
|
SortOrder int32 `protobuf:"varint,6,opt,name=sort_order,json=sortOrder,proto3" json:"sort_order,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *MasterPageBlock) Reset() {
|
|
*x = MasterPageBlock{}
|
|
mi := &file_v1_manifest_proto_msgTypes[13]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *MasterPageBlock) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*MasterPageBlock) ProtoMessage() {}
|
|
|
|
func (x *MasterPageBlock) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[13]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use MasterPageBlock.ProtoReflect.Descriptor instead.
|
|
func (*MasterPageBlock) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{13}
|
|
}
|
|
|
|
func (x *MasterPageBlock) GetBlockKey() string {
|
|
if x != nil {
|
|
return x.BlockKey
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MasterPageBlock) GetTitle() string {
|
|
if x != nil {
|
|
return x.Title
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MasterPageBlock) GetContentJson() []byte {
|
|
if x != nil {
|
|
return x.ContentJson
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *MasterPageBlock) GetHtmlContent() string {
|
|
if x != nil && x.HtmlContent != nil {
|
|
return *x.HtmlContent
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MasterPageBlock) GetSlot() string {
|
|
if x != nil {
|
|
return x.Slot
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *MasterPageBlock) GetSortOrder() int32 {
|
|
if x != nil {
|
|
return x.SortOrder
|
|
}
|
|
return 0
|
|
}
|
|
|
|
// CoreServiceBinding mirrors a plugin.CoreServiceBindings.Bind call: mount
|
|
// the named core-provided Connect service with these RBAC roles.
|
|
type CoreServiceBinding struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"`
|
|
MethodRoles map[string]string `protobuf:"bytes,2,rep,name=method_roles,json=methodRoles,proto3" json:"method_roles,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *CoreServiceBinding) Reset() {
|
|
*x = CoreServiceBinding{}
|
|
mi := &file_v1_manifest_proto_msgTypes[14]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *CoreServiceBinding) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CoreServiceBinding) ProtoMessage() {}
|
|
|
|
func (x *CoreServiceBinding) ProtoReflect() protoreflect.Message {
|
|
mi := &file_v1_manifest_proto_msgTypes[14]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use CoreServiceBinding.ProtoReflect.Descriptor instead.
|
|
func (*CoreServiceBinding) Descriptor() ([]byte, []int) {
|
|
return file_v1_manifest_proto_rawDescGZIP(), []int{14}
|
|
}
|
|
|
|
func (x *CoreServiceBinding) GetServiceName() string {
|
|
if x != nil {
|
|
return x.ServiceName
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CoreServiceBinding) GetMethodRoles() map[string]string {
|
|
if x != nil {
|
|
return x.MethodRoles
|
|
}
|
|
return nil
|
|
}
|
|
|
|
var File_v1_manifest_proto protoreflect.FileDescriptor
|
|
|
|
const file_v1_manifest_proto_rawDesc = "" +
|
|
"\n" +
|
|
"\x11v1/manifest.proto\x12\x06abi.v1\"\xaf\x0e\n" +
|
|
"\x0ePluginManifest\x12\x1f\n" +
|
|
"\vabi_version\x18\x01 \x01(\rR\n" +
|
|
"abiVersion\x12\x12\n" +
|
|
"\x04name\x18\x02 \x01(\tR\x04name\x12\x18\n" +
|
|
"\aversion\x18\x03 \x01(\tR\aversion\x126\n" +
|
|
"\fdependencies\x18\x04 \x03(\v2\x12.abi.v1.DependencyR\fdependencies\x12)\n" +
|
|
"\x06blocks\x18\x05 \x03(\v2\x11.abi.v1.BlockMetaR\x06blocks\x12W\n" +
|
|
"\x18block_template_overrides\x18\x06 \x03(\v2\x1d.abi.v1.BlockTemplateOverrideR\x16blockTemplateOverrides\x12#\n" +
|
|
"\rtemplate_keys\x18\a \x03(\tR\ftemplateKeys\x12E\n" +
|
|
"\x10system_templates\x18\b \x03(\v2\x1a.abi.v1.SystemTemplateMetaR\x0fsystemTemplates\x12?\n" +
|
|
"\x0epage_templates\x18\t \x03(\v2\x18.abi.v1.PageTemplateMetaR\rpageTemplates\x129\n" +
|
|
"\x19email_wrapper_system_keys\x18\n" +
|
|
" \x03(\tR\x16emailWrapperSystemKeys\x122\n" +
|
|
"\vadmin_pages\x18\v \x03(\v2\x11.abi.v1.AdminPageR\n" +
|
|
"adminPages\x12'\n" +
|
|
"\x0fsettings_schema\x18\f \x01(\fR\x0esettingsSchema\x12#\n" +
|
|
"\rtheme_presets\x18\r \x01(\fR\fthemePresets\x12#\n" +
|
|
"\rbundled_fonts\x18\x0e \x01(\fR\fbundledFonts\x12?\n" +
|
|
"\fmaster_pages\x18\x0f \x03(\v2\x1c.abi.v1.MasterPageDefinitionR\vmasterPages\x12/\n" +
|
|
"\n" +
|
|
"ai_actions\x18\x10 \x03(\v2\x10.abi.v1.AiActionR\taiActions\x12W\n" +
|
|
"\x11rbac_method_roles\x18\x11 \x03(\v2+.abi.v1.PluginManifest.RbacMethodRolesEntryR\x0frbacMethodRoles\x126\n" +
|
|
"\fcss_manifest\x18\x12 \x01(\v2\x13.abi.v1.CssManifestR\vcssManifest\x12.\n" +
|
|
"\x13required_icon_packs\x18\x13 \x03(\tR\x11requiredIconPacks\x12N\n" +
|
|
"\x14directory_extensions\x18\x14 \x01(\v2\x1b.abi.v1.DirectoryExtensionsR\x13directoryExtensions\x12\x1b\n" +
|
|
"\tjob_types\x18\x15 \x03(\tR\bjobTypes\x129\n" +
|
|
"\x19rag_content_fetcher_types\x18\x16 \x03(\tR\x16ragContentFetcherTypes\x12%\n" +
|
|
"\x0esettings_panel\x18\x17 \x01(\tR\rsettingsPanel\x12(\n" +
|
|
"\x10has_http_handler\x18\x18 \x01(\bR\x0ehasHttpHandler\x12\"\n" +
|
|
"\rhas_load_hook\x18\x19 \x01(\bR\vhasLoadHook\x12&\n" +
|
|
"\x0fhas_unload_hook\x18\x1a \x01(\bR\rhasUnloadHook\x12&\n" +
|
|
"\x0fhas_media_hooks\x18\x1b \x01(\bR\rhasMediaHooks\x12'\n" +
|
|
"\x0fhas_provisioner\x18\x1c \x01(\bR\x0ehasProvisioner\x12N\n" +
|
|
"\x15core_service_bindings\x18\x1d \x03(\v2\x1a.abi.v1.CoreServiceBindingR\x13coreServiceBindings\x12\x19\n" +
|
|
"\bdata_dir\x18\x1e \x01(\bR\adataDir\x12#\n" +
|
|
"\rdeclared_tags\x18\x1f \x03(\tR\fdeclaredTags\x12)\n" +
|
|
"\x10declared_filters\x18 \x03(\tR\x0fdeclaredFilters\x12\x1a\n" +
|
|
"\bcodeless\x18! \x01(\bR\bcodeless\x12#\n" +
|
|
"\rallowed_hosts\x18\" \x03(\tR\fallowedHosts\x12&\n" +
|
|
"\x0fmax_response_mb\x18# \x01(\rR\rmaxResponseMb\x128\n" +
|
|
"\rpublic_routes\x18$ \x03(\v2\x13.abi.v1.PublicRouteR\fpublicRoutes\x12\x18\n" +
|
|
"\asitemap\x18% \x01(\bR\asitemap\x1aB\n" +
|
|
"\x14RbacMethodRolesEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"9\n" +
|
|
"\vPublicRoute\x12\x12\n" +
|
|
"\x04path\x18\x01 \x01(\tR\x04path\x12\x16\n" +
|
|
"\x06prefix\x18\x02 \x01(\bR\x06prefix\"a\n" +
|
|
"\n" +
|
|
"Dependency\x12\x16\n" +
|
|
"\x06plugin\x18\x01 \x01(\tR\x06plugin\x12\x1f\n" +
|
|
"\vmin_version\x18\x02 \x01(\tR\n" +
|
|
"minVersion\x12\x1a\n" +
|
|
"\brequired\x18\x03 \x01(\bR\brequired\"\xd2\x01\n" +
|
|
"\tBlockMeta\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05title\x18\x02 \x01(\tR\x05title\x12 \n" +
|
|
"\vdescription\x18\x03 \x01(\tR\vdescription\x12\x1a\n" +
|
|
"\bcategory\x18\x04 \x01(\tR\bcategory\x12*\n" +
|
|
"\x11has_internal_slot\x18\x05 \x01(\bR\x0fhasInternalSlot\x12\x16\n" +
|
|
"\x06hidden\x18\x06 \x01(\bR\x06hidden\x12\x1b\n" +
|
|
"\teditor_js\x18\a \x01(\tR\beditorJs\"o\n" +
|
|
"\x15BlockTemplateOverride\x12!\n" +
|
|
"\ftemplate_key\x18\x01 \x01(\tR\vtemplateKey\x12\x1b\n" +
|
|
"\tblock_key\x18\x02 \x01(\tR\bblockKey\x12\x16\n" +
|
|
"\x06source\x18\x03 \x01(\tR\x06source\"^\n" +
|
|
"\x12SystemTemplateMeta\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05title\x18\x02 \x01(\tR\x05title\x12 \n" +
|
|
"\vdescription\x18\x03 \x01(\tR\vdescription\"\x91\x01\n" +
|
|
"\x10PageTemplateMeta\x12\x1d\n" +
|
|
"\n" +
|
|
"system_key\x18\x01 \x01(\tR\tsystemKey\x12\x10\n" +
|
|
"\x03key\x18\x02 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05title\x18\x03 \x01(\tR\x05title\x12 \n" +
|
|
"\vdescription\x18\x04 \x01(\tR\vdescription\x12\x14\n" +
|
|
"\x05slots\x18\x05 \x03(\tR\x05slots\"]\n" +
|
|
"\tAdminPage\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05title\x18\x02 \x01(\tR\x05title\x12\x12\n" +
|
|
"\x04icon\x18\x03 \x01(\tR\x04icon\x12\x14\n" +
|
|
"\x05route\x18\x04 \x01(\tR\x05route\"\xa4\x01\n" +
|
|
"\bAiAction\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05title\x18\x02 \x01(\tR\x05title\x12 \n" +
|
|
"\vdescription\x18\x03 \x01(\tR\vdescription\x12)\n" +
|
|
"\x10default_provider\x18\x04 \x01(\tR\x0fdefaultProvider\x12#\n" +
|
|
"\rdefault_model\x18\x05 \x01(\tR\fdefaultModel\"\xe7\x01\n" +
|
|
"\vCssManifest\x12G\n" +
|
|
"\fnpm_packages\x18\x01 \x03(\v2$.abi.v1.CssManifest.NpmPackagesEntryR\vnpmPackages\x12%\n" +
|
|
"\x0ecss_directives\x18\x02 \x03(\tR\rcssDirectives\x12(\n" +
|
|
"\x10input_css_append\x18\x03 \x01(\tR\x0einputCssAppend\x1a>\n" +
|
|
"\x10NpmPackagesEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x80\x03\n" +
|
|
"\x13DirectoryExtensions\x122\n" +
|
|
"\x15boolean_filter_fields\x18\x01 \x03(\tR\x13booleanFilterFields\x120\n" +
|
|
"\x14select_filter_fields\x18\x02 \x03(\tR\x12selectFilterFields\x12O\n" +
|
|
"\fbadge_labels\x18\x03 \x03(\v2,.abi.v1.DirectoryExtensions.BadgeLabelsEntryR\vbadgeLabels\x12.\n" +
|
|
"\x13panel_section_count\x18\x04 \x01(\rR\x11panelSectionCount\x12.\n" +
|
|
"\x13pin_decorator_count\x18\x05 \x01(\rR\x11pinDecoratorCount\x1aR\n" +
|
|
"\x10BadgeLabelsEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12(\n" +
|
|
"\x05value\x18\x02 \x01(\v2\x12.abi.v1.BadgeLabelR\x05value:\x028\x01\"D\n" +
|
|
"\n" +
|
|
"BadgeLabel\x12\x1a\n" +
|
|
"\bpositive\x18\x01 \x01(\tR\bpositive\x12\x1a\n" +
|
|
"\bnegative\x18\x02 \x01(\tR\bnegative\"\x96\x01\n" +
|
|
"\x14MasterPageDefinition\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05title\x18\x02 \x01(\tR\x05title\x12%\n" +
|
|
"\x0epage_templates\x18\x03 \x03(\tR\rpageTemplates\x12/\n" +
|
|
"\x06blocks\x18\x04 \x03(\v2\x17.abi.v1.MasterPageBlockR\x06blocks\"\xd3\x01\n" +
|
|
"\x0fMasterPageBlock\x12\x1b\n" +
|
|
"\tblock_key\x18\x01 \x01(\tR\bblockKey\x12\x14\n" +
|
|
"\x05title\x18\x02 \x01(\tR\x05title\x12!\n" +
|
|
"\fcontent_json\x18\x03 \x01(\fR\vcontentJson\x12&\n" +
|
|
"\fhtml_content\x18\x04 \x01(\tH\x00R\vhtmlContent\x88\x01\x01\x12\x12\n" +
|
|
"\x04slot\x18\x05 \x01(\tR\x04slot\x12\x1d\n" +
|
|
"\n" +
|
|
"sort_order\x18\x06 \x01(\x05R\tsortOrderB\x0f\n" +
|
|
"\r_html_content\"\xc7\x01\n" +
|
|
"\x12CoreServiceBinding\x12!\n" +
|
|
"\fservice_name\x18\x01 \x01(\tR\vserviceName\x12N\n" +
|
|
"\fmethod_roles\x18\x02 \x03(\v2+.abi.v1.CoreServiceBinding.MethodRolesEntryR\vmethodRoles\x1a>\n" +
|
|
"\x10MethodRolesEntry\x12\x10\n" +
|
|
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
|
|
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B5Z3git.dev.alexdunmow.com/block/pluginsdk/abi/v1;abiv1b\x06proto3"
|
|
|
|
var (
|
|
file_v1_manifest_proto_rawDescOnce sync.Once
|
|
file_v1_manifest_proto_rawDescData []byte
|
|
)
|
|
|
|
func file_v1_manifest_proto_rawDescGZIP() []byte {
|
|
file_v1_manifest_proto_rawDescOnce.Do(func() {
|
|
file_v1_manifest_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_v1_manifest_proto_rawDesc), len(file_v1_manifest_proto_rawDesc)))
|
|
})
|
|
return file_v1_manifest_proto_rawDescData
|
|
}
|
|
|
|
var file_v1_manifest_proto_msgTypes = make([]protoimpl.MessageInfo, 19)
|
|
var file_v1_manifest_proto_goTypes = []any{
|
|
(*PluginManifest)(nil), // 0: abi.v1.PluginManifest
|
|
(*PublicRoute)(nil), // 1: abi.v1.PublicRoute
|
|
(*Dependency)(nil), // 2: abi.v1.Dependency
|
|
(*BlockMeta)(nil), // 3: abi.v1.BlockMeta
|
|
(*BlockTemplateOverride)(nil), // 4: abi.v1.BlockTemplateOverride
|
|
(*SystemTemplateMeta)(nil), // 5: abi.v1.SystemTemplateMeta
|
|
(*PageTemplateMeta)(nil), // 6: abi.v1.PageTemplateMeta
|
|
(*AdminPage)(nil), // 7: abi.v1.AdminPage
|
|
(*AiAction)(nil), // 8: abi.v1.AiAction
|
|
(*CssManifest)(nil), // 9: abi.v1.CssManifest
|
|
(*DirectoryExtensions)(nil), // 10: abi.v1.DirectoryExtensions
|
|
(*BadgeLabel)(nil), // 11: abi.v1.BadgeLabel
|
|
(*MasterPageDefinition)(nil), // 12: abi.v1.MasterPageDefinition
|
|
(*MasterPageBlock)(nil), // 13: abi.v1.MasterPageBlock
|
|
(*CoreServiceBinding)(nil), // 14: abi.v1.CoreServiceBinding
|
|
nil, // 15: abi.v1.PluginManifest.RbacMethodRolesEntry
|
|
nil, // 16: abi.v1.CssManifest.NpmPackagesEntry
|
|
nil, // 17: abi.v1.DirectoryExtensions.BadgeLabelsEntry
|
|
nil, // 18: abi.v1.CoreServiceBinding.MethodRolesEntry
|
|
}
|
|
var file_v1_manifest_proto_depIdxs = []int32{
|
|
2, // 0: abi.v1.PluginManifest.dependencies:type_name -> abi.v1.Dependency
|
|
3, // 1: abi.v1.PluginManifest.blocks:type_name -> abi.v1.BlockMeta
|
|
4, // 2: abi.v1.PluginManifest.block_template_overrides:type_name -> abi.v1.BlockTemplateOverride
|
|
5, // 3: abi.v1.PluginManifest.system_templates:type_name -> abi.v1.SystemTemplateMeta
|
|
6, // 4: abi.v1.PluginManifest.page_templates:type_name -> abi.v1.PageTemplateMeta
|
|
7, // 5: abi.v1.PluginManifest.admin_pages:type_name -> abi.v1.AdminPage
|
|
12, // 6: abi.v1.PluginManifest.master_pages:type_name -> abi.v1.MasterPageDefinition
|
|
8, // 7: abi.v1.PluginManifest.ai_actions:type_name -> abi.v1.AiAction
|
|
15, // 8: abi.v1.PluginManifest.rbac_method_roles:type_name -> abi.v1.PluginManifest.RbacMethodRolesEntry
|
|
9, // 9: abi.v1.PluginManifest.css_manifest:type_name -> abi.v1.CssManifest
|
|
10, // 10: abi.v1.PluginManifest.directory_extensions:type_name -> abi.v1.DirectoryExtensions
|
|
14, // 11: abi.v1.PluginManifest.core_service_bindings:type_name -> abi.v1.CoreServiceBinding
|
|
1, // 12: abi.v1.PluginManifest.public_routes:type_name -> abi.v1.PublicRoute
|
|
16, // 13: abi.v1.CssManifest.npm_packages:type_name -> abi.v1.CssManifest.NpmPackagesEntry
|
|
17, // 14: abi.v1.DirectoryExtensions.badge_labels:type_name -> abi.v1.DirectoryExtensions.BadgeLabelsEntry
|
|
13, // 15: abi.v1.MasterPageDefinition.blocks:type_name -> abi.v1.MasterPageBlock
|
|
18, // 16: abi.v1.CoreServiceBinding.method_roles:type_name -> abi.v1.CoreServiceBinding.MethodRolesEntry
|
|
11, // 17: abi.v1.DirectoryExtensions.BadgeLabelsEntry.value:type_name -> abi.v1.BadgeLabel
|
|
18, // [18:18] is the sub-list for method output_type
|
|
18, // [18:18] is the sub-list for method input_type
|
|
18, // [18:18] is the sub-list for extension type_name
|
|
18, // [18:18] is the sub-list for extension extendee
|
|
0, // [0:18] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_v1_manifest_proto_init() }
|
|
func file_v1_manifest_proto_init() {
|
|
if File_v1_manifest_proto != nil {
|
|
return
|
|
}
|
|
file_v1_manifest_proto_msgTypes[13].OneofWrappers = []any{}
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_v1_manifest_proto_rawDesc), len(file_v1_manifest_proto_rawDesc)),
|
|
NumEnums: 0,
|
|
NumMessages: 19,
|
|
NumExtensions: 0,
|
|
NumServices: 0,
|
|
},
|
|
GoTypes: file_v1_manifest_proto_goTypes,
|
|
DependencyIndexes: file_v1_manifest_proto_depIdxs,
|
|
MessageInfos: file_v1_manifest_proto_msgTypes,
|
|
}.Build()
|
|
File_v1_manifest_proto = out.File
|
|
file_v1_manifest_proto_goTypes = nil
|
|
file_v1_manifest_proto_depIdxs = nil
|
|
}
|