Pyric
Navigate

API reference

@pyric/cli/assurance

62 published symbols from @pyric/cli

Generated from the TypeScript declarations shipped at this import path.

Classes

AssuranceCampaignStore

Constructors

Constructor
new AssuranceCampaignStore(): AssuranceCampaignStore;
Returns

AssuranceCampaignStore

Methods

create()
create(campaign: AuthorizationCampaign): void;
Parameters
ParameterType
campaignAuthorizationCampaign
Returns

void

get()
get(id: string): AuthorizationCampaign;
Parameters
ParameterType
idstring
Returns

AuthorizationCampaign

publish()
publish(campaign: AuthorizationCampaign): void;
Parameters
ParameterType
campaignAuthorizationCampaign
Returns

void

subscribe()
subscribe(listener: (campaign: AssuranceVisualizationSnapshot) => void): () => void;
Parameters
ParameterType
listener(campaign: AssuranceVisualizationSnapshot) => void
Returns
(): void;
Returns

void


AssuranceInputError

Extends

  • Error

Constructors

Constructor
new AssuranceInputError(message?: string): AssuranceInputError;
Parameters
ParameterType
message?string
Returns

AssuranceInputError

Inherited from
Error.constructor
Constructor
new AssuranceInputError(message?: string, options?: ErrorOptions): AssuranceInputError;
Parameters
ParameterType
message?string
options?ErrorOptions
Returns

AssuranceInputError

Inherited from
Error.constructor
Constructor
new AssuranceInputError(message?: string, options?: ErrorOptions): AssuranceInputError;
Parameters
ParameterType
message?string
options?ErrorOptions
Returns

AssuranceInputError

Inherited from
Error.constructor

Properties

PropertyModifierTypeDefault value
codereadonly"ASSURANCE_INVALID_INPUT""ASSURANCE_INVALID_INPUT"

AuthorizationCampaign

Constructors

Constructor
new AuthorizationCampaign(options: CreateAuthorizationCampaignOptions): AuthorizationCampaign;
Parameters
Returns

AuthorizationCampaign

Properties

PropertyModifierType
contextreadonlyAssuranceCampaignContext
idreadonlystring
maxRunsreadonlynumber
targetreadonlyLocalFirebaseTarget

Accessors

observations
Get Signature
get observations(): AssuranceObservation[];
Returns

AssuranceObservation[]

report
Get Signature
get report(): AuthorizationCampaignReport;
Returns

AuthorizationCampaignReport

Methods

addActor()
addActor(actor: AssuranceActor): AssuranceActor;
Parameters
ParameterType
actorAssuranceActor
Returns

AssuranceActor

addInvariant()
addInvariant(invariant: SecurityInvariant): SecurityInvariant;
Parameters
ParameterType
invariantSecurityInvariant
Returns

SecurityInvariant

addObservation()
addObservation(observation: AssuranceObservation): AssuranceObservation;
Parameters
ParameterType
observationAssuranceObservation
Returns

AssuranceObservation

addProbe()
addProbe(probe: AssuranceProbe): AssuranceProbe;
Parameters
ParameterType
probeAssuranceProbe
Returns

AssuranceProbe

export()
export(): CampaignExport;
Returns

CampaignExport

exportSecurityCases()
exportSecurityCases(options?: {
  includeCandidates?: boolean;
}): SecurityCase[];
Parameters
ParameterType
options?{ includeCandidates?: boolean; }
options.includeCandidates?boolean
Returns

SecurityCase[]

inspect()
inspect(probeId: string): AssuranceProbeResult;
Parameters
ParameterType
probeIdstring
Returns

AssuranceProbeResult

minimize()
minimize(probeId: string): Promise<MinimizationResult>;
Parameters
ParameterType
probeIdstring
Returns

Promise<MinimizationResult>

propose()
propose(input: ProposalInput): AssuranceProbe[];
Parameters
ParameterType
inputProposalInput
Returns

AssuranceProbe[]

run()
run(probeIds?: string[]): Promise<AuthorizationCampaignReport>;
Parameters
ParameterType
probeIds?string[]
Returns

Promise<AuthorizationCampaignReport>

spec()
spec(probeIds?: string[]): AuthorizationCampaignSpec;
Parameters
ParameterType
probeIds?string[]
Returns

AuthorizationCampaignSpec

verifyRules()
verifyRules(options: {
  id?: string;
  includeCandidates?: boolean;
  rules: {
     firestore?: string;
     rtdb?: {
        rules: Record<string, unknown>;
     };
     storage?: string;
  };
}): Promise<AuthorizationCampaignReport>;
Parameters
ParameterType
options{ id?: string; includeCandidates?: boolean; rules: { firestore?: string; rtdb?: { rules: Record<string, unknown>; }; storage?: string; }; }
options.id?string
options.includeCandidates?boolean
options.rules{ firestore?: string; rtdb?: { rules: Record<string, unknown>; }; storage?: string; }
options.rules.firestore?string
options.rules.rtdb?{ rules: Record<string, unknown>; }
options.rules.rtdb.rulesRecord<string, unknown>
options.rules.storage?string
Returns

Promise<AuthorizationCampaignReport>

visualization()
visualization(): AssuranceVisualizationSnapshot;
Returns

AssuranceVisualizationSnapshot

Interfaces

ActorEvidence

Properties

PropertyType
acquisition| "password" | "anonymous-request" | "anonymous-account" | "fixture-user" | "synthetic"
actorIdstring
error?string
reachability"synthetic" | "reachable" | "unreachable"
uid?string

AssuranceActor

Properties

PropertyType
acquisitionActorAcquisition
idstring

AssuranceAttachment

Properties


AssuranceAttachmentInput

Properties

PropertyType
urlstring

AssuranceAttachmentInventory

Properties

PropertyType
authUsersnumber
firestoreDocumentsnumber
rtdbPresentboolean
storageObjectsnumber

AssuranceAttachmentSource

Properties

PropertyType
originstring
readOnlytrue
requestedUrlstring
studioUrlstring
transport"same-origin-shared-worker"

AssuranceCampaignContext

Properties

PropertyType
attachment?{ coverageGaps: AssuranceCoverageGap[]; inventory: AssuranceAttachmentInventory; source: AssuranceAttachmentSource; }
attachment.coverageGapsAssuranceCoverageGap[]
attachment.inventoryAssuranceAttachmentInventory
attachment.sourceAssuranceAttachmentSource

AssuranceCoverageGap

Properties

PropertyType
codestring
reasonstring
service"auth" | AssuranceService | "attachment"

AssuranceEventEvidence

Properties

PropertyType
actor?unknown
at?number
auth?unknown
authLens?unknown
evaluatedRule?unknown
id?string
kind?string
matchedRule?unknown
method?string
op?string
origin?unknown
path?string
reasons?string[]
request?unknown
resourceBefore?unknown
result?string
rules?unknown
service?string

AssuranceObservation

Properties

PropertyType
actorIdstring
description?string
idstring
operationFirebaseOperation
result"ALLOW"
source"captured" | "authored" | "discovered"

AssuranceProbe

Properties

PropertyTypeDescription
actorIdstring-
controlFirebaseOperation-
idstring-
invariantIdstring-
mutationProbeMutation-
requires?CapabilityDependency[]Graph nodes this probe’s verdict depends on. Each is resolved live against the conformance graph statuses: a node the graph derives non-supported makes the engine abstain (engine-gap), and a node the graph does not model is a campaign authoring error (invalid-probe).

AssuranceProbeResult

Properties

PropertyType
actorEvidenceActorEvidence
campaignIdstring
classificationProbeClassification
controlOperationEvidence
invariantSecurityInvariant
mutationOperationEvidence
mutationSpecProbeMutation
probeIdstring
qualificationEngineQualification
stateDiff?StateDiff
targetHashstring

AssuranceReportSummary

Properties

PropertyType
candidateSignalsnumber
controlsPassednumber
engineGapsnumber
invalidProbesnumber
localCounterexamplesnumber
noCounterexamplesnumber
probesnumber

AssuranceToolDeps

Properties

PropertyType
attachmentProvider?AssuranceAttachmentProvider
onCampaignUpdate?(campaign: AssuranceVisualizationSnapshot) => void
store?AssuranceCampaignStore

AssuranceVisualizationSnapshot

Credential-free projection safe to hand to Studio visualization code.

Properties

PropertyType
campaignIdstring
context?AssuranceCampaignContext
observationsAssuranceObservation[]
probesAssuranceProbe[]
report?AuthorizationCampaignReport
schema"pyric.assurance.visualization.v1"
verifications?AuthorizationCampaignReport[]

AuthFixtureUser

Properties

PropertyType
customClaims?Record<string, unknown>
disabled?boolean
email?string
emailVerified?boolean
password?string
uidstring

AuthorizationCampaignReport

Properties

PropertyType
campaignIdstring
localOnly{ engine: "pyric-local-sandboxes"; network: "forbid"; }
localOnly.engine"pyric-local-sandboxes"
localOnly.network"forbid"
resultsAssuranceProbeResult[]
schema"pyric.assurance.report.v1"
summaryAssuranceReportSummary
targetHashstring

AuthorizationCampaignSpec

Properties

PropertyType
actorsAssuranceActor[]
idstring
invariantsSecurityInvariant[]
probesAssuranceProbe[]
schema"pyric.assurance.campaign.v1"
targetLocalFirebaseTarget

CampaignExport

Properties

PropertyType
campaignAuthorizationCampaignSpec
casesSecurityCase[]
context?AssuranceCampaignContext
observationsAssuranceObservation[]
report?AuthorizationCampaignReport
schema"pyric.assurance.export.v1"
verifications?AuthorizationCampaignReport[]

CapabilityRequirement

Properties

PropertyType
idstring
reasonstring
supportedboolean

CreateAuthorizationCampaignOptions

Properties

PropertyType
context?AssuranceCampaignContext
idstring
safety?{ maxRuns?: number; network?: "forbid"; }
safety.maxRuns?number
safety.network?"forbid"
targetLocalFirebaseTarget

EngineQualification

Properties

PropertyTypeDescription
classification?"engine-gap" | "invalid-probe"How an unsupported qualification must be classified. Absent when the qualification is supported. engine-gap is the default abstention (a target-specific check failed, or a required graph node is derived non-supported); invalid-probe overrides it when the campaign names a graph node the engine does not know.
engine"pyric-local-sandboxes"-
requirementsCapabilityRequirement[]-
supportedboolean-

FirestoreOperation

Properties

PropertyType
data?Record<string, unknown>
method"delete" | "get" | "list" | "create" | "update" | "set" | "merge"
pathstring
query?{ limit?: number; orderBy?: { direction?: "asc" | "desc"; field: string; }[]; where?: FirestoreQueryConstraint[]; }
query.limit?number
query.orderBy?{ direction?: "asc" | "desc"; field: string; }[]
query.where?FirestoreQueryConstraint[]
service"firestore"

FirestoreQueryConstraint

Properties

PropertyType
fieldstring
op| "<" | "<=" | "==" | "!=" | ">=" | ">" | "in" | "not-in" | "array-contains" | "array-contains-any"
valueunknown

LocalFirebaseTarget

Properties

PropertyType
network"forbid"
rules{ firestore?: string; rtdb?: { rules: Record<string, unknown>; }; storage?: string; }
rules.firestore?string
rules.rtdb?{ rules: Record<string, unknown>; }
rules.rtdb.rulesRecord<string, unknown>
rules.storage?string
schema"pyric.assurance.target.v1"
state{ auth?: { users: AuthFixtureUser[]; }; firestore?: Record<string, Record<string, unknown>>; rtdb?: unknown; storage?: StorageObjectFixture[]; }
state.auth?{ users: AuthFixtureUser[]; }
state.auth.usersAuthFixtureUser[]
state.firestore?Record<string, Record<string, unknown>>
state.rtdb?unknown
state.storage?StorageObjectFixture[]

MinimizationResult

Properties

PropertyType
changedboolean
probeAssuranceProbe
probeIdstring
removedPayloadFieldsstring[]
resultAssuranceProbeResult

MutationCandidate

Extends

Properties

PropertyType
descriptionstring
dimensionMutationDimension
id?string
operationFirebaseOperation

OperationEvidence

Properties

PropertyType
decisionAssuranceDecision
error?{ code?: string; message: string; }
error.code?string
error.messagestring
eventsAssuranceEventEvidence[]
operationFirebaseOperation
output?unknown

ProbeMutation

Extended by

Properties

PropertyType
descriptionstring
dimensionMutationDimension
operationFirebaseOperation

ProposalInput

Properties

PropertyType
invariantIdstring
mutationsMutationCandidate[]
observationIdstring

RtdbOperation

Properties

PropertyType
data?unknown
method"get" | "update" | "set" | "remove"
pathstring
query?{ endAt?: { key?: string; value: unknown; }; endBefore?: { key?: string; value: unknown; }; equalTo?: { key?: string; value: unknown; }; limitToFirst?: number; limitToLast?: number; orderBy?: | { kind: "child"; path: string; } | { kind: "key"; } | { kind: "value"; }; startAfter?: { key?: string; value: unknown; }; startAt?: { key?: string; value: unknown; }; }
query.endAt?{ key?: string; value: unknown; }
query.endAt.key?string
query.endAt.valueunknown
query.endBefore?{ key?: string; value: unknown; }
query.endBefore.key?string
query.endBefore.valueunknown
query.equalTo?{ key?: string; value: unknown; }
query.equalTo.key?string
query.equalTo.valueunknown
query.limitToFirst?number
query.limitToLast?number
query.orderBy?| { kind: "child"; path: string; } | { kind: "key"; } | { kind: "value"; }
query.startAfter?{ key?: string; value: unknown; }
query.startAfter.key?string
query.startAfter.valueunknown
query.startAt?{ key?: string; value: unknown; }
query.startAt.key?string
query.startAt.valueunknown
service"rtdb"

RunSecurityCasesInput

Properties

PropertyType
actorsAssuranceActor[]
campaignIdstring
casesSecurityCase[]
targetLocalFirebaseTarget

SandboxAttachmentProviderOptions

Properties

PropertyType
fetchImpl?typeof fetch
origin?string

SecurityCase

Properties

PropertyType
actorIdstring
campaignIdstring
controlFirebaseOperation
expect"ALLOW" | "DENY"
idstring
invariantSecurityInvariant
mutationProbeMutation
qualificationEngineQualification
schema"pyric.assurance.case.v1"

SecurityInvariant

Properties

PropertyType
confidence"authoritative" | "strong" | "tentative"
expected"ALLOW" | "DENY"
idstring
serviceAssuranceService | "cross-service"
source"agent" | "captured" | "declared" | "authored-test" | "derived"
statementstring

StateDiff

Properties

PropertyType
afterunknown
beforeunknown
changedboolean

StorageObjectFixture

Properties

PropertyType
contentType?string
customMetadata?Record<string, string>
dataBase64string
pathstring

StorageOperation

Properties

PropertyType
contentType?string
customMetadata?Record<string, string>
dataBase64?string
method"delete" | "get" | "list" | "upload" | "updateMetadata"
pathstring
service"storage"

Type Aliases

ActorAcquisition

type ActorAcquisition =
  | {
  kind: "anonymous-request";
}
  | {
  kind: "anonymous-account";
}
  | {
  email: string;
  kind: "password";
  password: string;
}
  | {
  kind: "fixture-user";
  uid: string;
}
  | {
  kind: "synthetic";
  token?: Record<string, unknown>;
  uid: string;
};

AssuranceAttachmentProvider()

type AssuranceAttachmentProvider = (input: AssuranceAttachmentInput) => Promise<AssuranceAttachment>;

Parameters

ParameterType
inputAssuranceAttachmentInput

Returns

Promise<AssuranceAttachment>


AssuranceDecision

type AssuranceDecision = "ALLOW" | "DENY" | "ERROR" | "UNSUPPORTED";

AssuranceService

type AssuranceService = "firestore" | "rtdb" | "storage";

FirebaseOperation

type FirebaseOperation =
  | FirestoreOperation
  | RtdbOperation
  | StorageOperation;

MutationDimension

type MutationDimension = "path" | "query" | "payload" | "operation";

ProbeClassification

type ProbeClassification =
  | "local-counterexample"
  | "candidate-signal"
  | "no-counterexample"
  | "engine-gap"
  | "invalid-probe";

Variables

ASSURANCE_CAMPAIGN_SCHEMA

const ASSURANCE_CAMPAIGN_SCHEMA: "pyric.assurance.campaign.v1";

ASSURANCE_REPORT_SCHEMA

const ASSURANCE_REPORT_SCHEMA: "pyric.assurance.report.v1";

ASSURANCE_TARGET_SCHEMA

const ASSURANCE_TARGET_SCHEMA: "pyric.assurance.target.v1";

defaultAssuranceCampaignStore

const defaultAssuranceCampaignStore: AssuranceCampaignStore;

Functions

createAssuranceTools()

function createAssuranceTools(deps?: AssuranceToolDeps): ToolHandler<unknown, unknown>[];

Parameters

ParameterType
deps?AssuranceToolDeps

Returns

ToolHandler<unknown, unknown>[]


createAuthorizationCampaign()

function createAuthorizationCampaign(options: CreateAuthorizationCampaignOptions): AuthorizationCampaign;

Parameters

Returns

AuthorizationCampaign


createSandboxAttachmentProvider()

function createSandboxAttachmentProvider(sandbox: Sandbox, options?: SandboxAttachmentProviderOptions): AssuranceAttachmentProvider;

Clone the sandbox currently hosting the connected bridge peer. The URL is an origin assertion and source for explicit rules metadata; no arbitrary host is contacted and the returned campaign target itself keeps networking forbidden.

Parameters

ParameterType
sandboxSandbox
options?SandboxAttachmentProviderOptions

Returns

AssuranceAttachmentProvider


qualifyProbe()

function qualifyProbe(target: LocalFirebaseTarget, probe: AssuranceProbe): EngineQualification;

Parameters

ParameterType
targetLocalFirebaseTarget
probeAssuranceProbe

Returns

EngineQualification


runAuthorizationCampaign()

function runAuthorizationCampaign(spec: AuthorizationCampaignSpec): Promise<AuthorizationCampaignReport>;

Parameters

ParameterType
specAuthorizationCampaignSpec

Returns

Promise<AuthorizationCampaignReport>


runSecurityCases()

function runSecurityCases(input: RunSecurityCasesInput): Promise<AuthorizationCampaignReport>;

Re-run exported expectations against a candidate local target. Each case keeps its known-good control and explicit negative expectation, so a rules change must preserve the application workflow and reject the boundary case.

Parameters

ParameterType
inputRunSecurityCasesInput

Returns

Promise<AuthorizationCampaignReport>

References

ASSURANCE_BROADCAST_CHANNEL

Re-exports ASSURANCE_BROADCAST_CHANNEL


ASSURANCE_BROWSER_EVENT

Re-exports ASSURANCE_BROWSER_EVENT


publishAssuranceVisualization

Re-exports publishAssuranceVisualization


subscribeAssuranceVisualizations

Re-exports subscribeAssuranceVisualizations