Interface RuntimeMetadataManager<TPublic, TSensitive>

interface RuntimeMetadataManager<TPublic, TSensitive> {
    addPublicMetadata: ((getData, onError?) => Promise<void>);
    addSensitiveMetadata: ((getData, onError?) => Promise<void>);
    getAllPublicMetadata: (() => Partial<TPublic>);
    getAllSensitiveMetadata: (() => Partial<TSensitive>);
    runWithTimer: ((field) => (<T>(fn) => Promise<T>));
}

Type Parameters

  • TPublic extends AnyJson
  • TSensitive extends AnyJson

Properties

addPublicMetadata: ((getData, onError?) => Promise<void>)

Add some public metadata -- this should not contain any PII.

Type declaration

    • (getData, onError?): Promise<void>
    • Parameters

      • getData: ProvideMetadata<TPublic>
      • Optional onError: MetadataErrorHandling

      Returns Promise<void>

addSensitiveMetadata: ((getData, onError?) => Promise<void>)

Add some potentially sensitive metadata -- this may include PII, but unnecessary data should never be tracked (this is a good fit for command args for instance).

Type declaration

    • (getData, onError?): Promise<void>
    • Parameters

      • getData: ProvideMetadata<TSensitive>
      • Optional onError: MetadataErrorHandling

      Returns Promise<void>

getAllPublicMetadata: (() => Partial<TPublic>)

Get a snapshot of the tracked public data.

Type declaration

getAllSensitiveMetadata: (() => Partial<TSensitive>)

Get a snapshot of the tracked sensitive data.

Type declaration

runWithTimer: ((field) => (<T>(fn) => Promise<T>))

Run a function, monitoring how long it takes, and adding the elapsed time to a running total.

Type declaration

    • (field): (<T>(fn) => Promise<T>)
    • Parameters

      Returns (<T>(fn) => Promise<T>)

        • <T>(fn): Promise<T>
        • Type Parameters

          • T

          Parameters

          • fn: (() => Promise<T>)
              • (): Promise<T>
              • Returns Promise<T>

          Returns Promise<T>