Skip to content

kubricate / stack/BaseStack / BaseStack

Class: abstract BaseStack<ConfigureComposerFunc, SecretManager>

BaseStack is the base class for all stacks.

Note

BaseStack fields and methods need to be public, type inference is not working with private fields when using with createSt

Extended by

Type Parameters

ConfigureComposerFunc

ConfigureComposerFunc extends FunctionLike<any[], ResourceComposer> = FunctionLike<any, ResourceComposer>

SecretManager

SecretManager extends AnySecretManager = AnySecretManager

Constructors

Constructor

ts
new BaseStack<ConfigureComposerFunc, SecretManager>(): BaseStack<ConfigureComposerFunc, SecretManager>;

Returns

BaseStack<ConfigureComposerFunc, SecretManager>

Properties

_composer

ts
_composer: ReturnType<ConfigureComposerFunc>;

_defaultSecretManagerId

ts
readonly _defaultSecretManagerId: "default" = 'default';

_name?

ts
optional _name: string;

The name of the stack. This is used to identify the stack, generally used with Stack.


_secretManagers

ts
_secretManagers: Record<number, SecretManager> = {};

_targetInjects

ts
_targetInjects: ProviderInjection<string, string>[] = [];

logger?

ts
optional logger: BaseLogger;

Accessors

resources

Get Signature

ts
get resources(): ReturnType<ConfigureComposerFunc>;

Get the resources from the composer.

Returns

ReturnType<ConfigureComposerFunc>

The resources from the composer.

Methods

build()

ts
build(): Record<string, unknown>;

Build the stack and return the resources.

Returns

Record<string, unknown>

The resources in the stack.


from()

ts
abstract from(data): unknown;

Configure the stack with the provided data.

Parameters

data

unknown

The configuration data for the stack.

Returns

unknown

The Kubricate Composer instance.


getComposer()

ts
getComposer(): undefined | ReturnType<ConfigureComposerFunc>;

Returns

undefined | ReturnType<ConfigureComposerFunc>


getName()

ts
getName(): undefined | string;

Returns

undefined | string


getSecretManager()

ts
getSecretManager(id): SecretManager;

Get the secret manager instance.

Parameters

id

number

The ID of the secret manager. defaults to 'default'.

Returns

SecretManager

The secret manager instance.


getSecretManagers()

ts
getSecretManagers(): Record<number, SecretManager>;

Get all secret managers in the stack.

Returns

Record<number, SecretManager>

The secret managers in the stack.


getTargetInjects()

ts
getTargetInjects(): ProviderInjection<string, string>[];

Retrieves all registered secret injections.

Returns

ProviderInjection<string, string>[]


injectLogger()

ts
injectLogger(logger): void;

Internal

This method is used to inject the logger into the stack. It is called by the orchestrator to inject the logger into all components of the stack.

Inject a logger instance into all components of the stack e.g. secret managers, connector, providers, etc. This is useful for logging purposes and debugging.

Parameters

logger

BaseLogger

The logger instance to be injected.

Returns

void


override()

ts
override(data): BaseStack<ConfigureComposerFunc, SecretManager>;

Parameters

data

Partial<InferConfigureComposerFunc<ConfigureComposerFunc>>

Returns

BaseStack<ConfigureComposerFunc, SecretManager>


registerSecretInjection()

ts
registerSecretInjection(inject): void;

Registers a secret injection to be processed during stack build/render.

Parameters

inject

ProviderInjection

Returns

void


setComposer()

ts
setComposer(composer): void;

Parameters

composer

ReturnType<ConfigureComposerFunc>

Returns

void


setName()

ts
setName(name): void;

Parameters

name

string

Returns

void


useSecrets()

ts
useSecrets<NewSecretManager>(secretManager, builder): this;

Type Parameters

NewSecretManager

NewSecretManager extends AnySecretManager

Parameters

secretManager

NewSecretManager

builder

(injector) => void

Returns

this