@suluk/provision - v0.2.0
    Preparing search index...

    Interface Broker

    The OSB-shaped broker every service implements. Provision MUST be idempotent (re-running reconciles, never duplicates — OSB's "200 vs 201" rule). lastOperation/bind/deprovision are optional: a synchronous, non-bindable, or never-torn-down service simply omits them.

    interface Broker {
        catalog(): Catalog | Promise<Catalog>;
        provision(req: ProvisionRequest): Promise<ProvisionResult>;
        lastOperation?(
            req: OperationRequest,
        ): Promise<{ state: OperationState; description?: string }>;
        bind?(req: BindRequest): Promise<BindResult>;
        deprovision?(
            req: OperationRequest,
        ): Promise<{ state: OperationState; operation?: string }>;
        fetch?(
            req: OperationRequest,
        ): Promise<{ exists: boolean; outputs?: Record<string, string> }>;
        list?(): Promise<
            { name: string; instanceId: string; outputs?: Record<string, string> }[],
        >;
    }
    Index

    Methods

    • Fetch a Service Instance (OSB): the live state of a KNOWN instance — used by pull to detect EXTERNAL drift (a resource deleted/changed in the provider's dashboard, behind the config's back). Optional; absent → "unknown".

      Parameters

      Returns Promise<{ exists: boolean; outputs?: Record<string, string> }>

    • Discover existing instances of this service — used by pull --discover to ADOPT untracked resources into the journal. Optional; absent → discovery skipped for this service.

      Returns Promise<
          { name: string; instanceId: string; outputs?: Record<string, string> }[],
      >