コンテンツにスキップ

Extensions

このコンテンツはまだ日本語訳がありません。

An extension is a Greentic pack that adds platform behavior through explicit metadata in pack.yaml. The current implemented path is .gtpack-based:

  1. gtc wizard scaffolds the pack and captures extension answers.
  2. gtc dev pack validates and builds the pack.
  3. gtc setup resolves setup questions and configuration.
  4. gtc start loads the packed manifest and exposes the runtime behavior.

Extensions let Greentic grow a digital-worker platform without baking every vendor, runtime service, or deployment target into application packs.

Greentic currently documents these active manifest extension keys:

Extension keyWhat it is for
greentic.ext.capabilities.v1Component-backed capability offers: messaging, events, OAuth, MCP, state, telemetry, secrets, admin, control, observer, contracts, ops hooks, and other runtime services.
greentic.deployer.v1Deployer contracts that describe how a deployer plans and performs deployment operations.
greentic.static-routes.v1Public HTTP routes for static assets packaged inside a pack.

These entries are packed into the .gtpack manifest with the components, flows, assets, i18n files, and setup questions they depend on.

Most extension packs use greentic.ext.capabilities.v1. A capability offer says that a component operation can provide a named capability.

pack.yaml
extensions:
greentic.ext.capabilities.v1:
kind: greentic.ext.capabilities.v1
version: 1.0.0
inline:
schema_version: 1
offers:
- offer_id: messaging.webchat.inbound.01
cap_id: greentic.cap.messaging.webchat.v1
version: v1
provider:
component_ref: webchat-extension
op: messaging.dispatch
priority: 100
requires_setup: true
setup:
qa_ref: qa/webchat-setup.json
applies_to:
op_names:
- send
- receive

The pack tooling validates the important references:

  • schema_version must be 1.
  • offer_id, cap_id, version, provider.component_ref, and provider.op must be present.
  • provider.component_ref must point at a component in the pack or at a lock-backed component reference.
  • requires_setup: true requires setup metadata and a valid setup.qa_ref.
  • priority lets multiple offers for the same capability resolve deterministically.
  • applies_to can narrow a capability to specific operations.

The pack wizard uses a catalog to map human-facing extension types onto the manifest keys above. These are the types currently represented by the catalog:

Wizard typeManifest keyPurpose
messaginggreentic.ext.capabilities.v1Chat and message transport such as WebChat, Slack, Teams, Telegram, WhatsApp, Webex, and email.
eventsgreentic.ext.capabilities.v1Event sources and sinks such as HTTP webhooks, timers, queues, pub/sub, SendGrid, Twilio, audit events, and domain events.
oauthgreentic.ext.capabilities.v1OAuth brokers, token validation, consent, and card-login surfaces.
mcpgreentic.ext.capabilities.v1MCP tool discovery and execution integrations.
stategreentic.ext.capabilities.v1Session, memory, checkpoint, and key-value state backends.
telemetrygreentic.ext.capabilities.v1Logs, metrics, traces, span enrichment, and exporters.
secretsgreentic.ext.capabilities.v1Environment, vault, Kubernetes, cloud, or custom secret brokers.
admingreentic.ext.capabilities.v1Setup and runtime administration surfaces.
controlgreentic.ext.capabilities.v1Lifecycle control, routing, throttling, pause/resume, and governance hooks.
observergreentic.ext.capabilities.v1Audit, monitoring, supervision, and observation hooks.
deployergreentic.deployer.v1Deployment target contracts and deployment operation flows.
runtime-capabilitygreentic.ext.capabilities.v1New host/runtime services that other packs can consume.
contractgreentic.ext.capabilities.v1Schemas, policies, rules, and validation contracts.
opsgreentic.ext.capabilities.v1Operational hooks and automation scaffolds.
capability-offergreentic.ext.capabilities.v1A focused pack that mainly offers one or more capabilities.
custom-scaffoldgreentic.ext.capabilities.v1A blank extension scaffold when the named categories do not fit.

The wizard persists catalog answers in JSON under extensions/ and merges the canonical payload into pack.yaml.

Deployer metadata uses greentic.deployer.v1, not the capability-offer schema. The validated contract has a planner flow and a set of supported deployment capabilities.

pack.yaml
extensions:
greentic.deployer.v1:
kind: greentic.deployer.v1
version: 1.0.0
inline:
schema_version: 1
planner:
flow_id: flows/plan.ygtc
capabilities:
- capability: plan
flow_id: flows/plan.ygtc
- capability: apply
flow_id: flows/apply.ygtc
- capability: status
flow_id: flows/status.ygtc

Validation requires schema_version: 1, a non-empty planner flow_id, no duplicate capability entries, and at least the plan capability. Supported deployer capabilities are generate, plan, apply, destroy, status, and rollback.

Static web assets are exposed with greentic.static-routes.v1. The assets remain ordinary files under assets/; the extension metadata declares which subdirectory should be mounted under a public HTTP route when gtc start runs the bundle.

pack.yaml
extensions:
greentic.static-routes.v1:
kind: greentic.static-routes.v1
version: 1.0.0
inline:
version: 1
routes:
- id: webchat-ui
public_path: /v1/web/webchat/{tenant}
source_root: assets/webchat
scope:
tenant: true
team: false
index_file: index.html
spa_fallback: index.html
cache:
strategy: public-max-age
max_age_seconds: 3600

Static route paths are deliberately constrained. Public paths must live under /v1/web/, source_root must point under assets/, and team-scoped routes must also be tenant-scoped.

Composable

Application packs can require messaging, state, secrets, OAuth, telemetry, or control without hard-coding a specific vendor.

Tenant-aware

Setup data and capability resolution can vary per tenant, team, and environment.

Observable

Observer and telemetry extensions make digital-worker activity traceable, auditable, and controllable in production.

Deployable anywhere

Deployer extensions let the same bundle target local development, Kubernetes, the three major clouds, or a custom enterprise deployer.

Older experiments used .gtxpack, gtdx, DesignExtension, BundleExtension, DeployExtension, and ProviderExtension. Those names describe the legacy design-time proposal, not the current runtime extension path. New extension docs should use .gtpack, gtc wizard, gtc dev pack, and the manifest keys above.