BoundedGcloudExecutionReadOutcome Outcome { get; }
Source
Gets the classified read outcome.
Applies finite collection bounds to JSON admitted by the execution observer.
The bound limits parser memory exposure at the observer trust boundary. It is not a Cloud Run provider semantic limit and is deliberately not used by legacy verification.
void ValidateFiniteCollections(JsonElement root)
Rejects an object or array whose direct collection exceeds the observer admission bound.
root
JsonException
Immutable, safe result from a bounded execution read.
Standard error is deliberately never exposed. Output bytes are usable only for BoundedGcloudExecutionReadOutcome.Complete
with a zero exit code.
BoundedGcloudExecutionReadOutcome Outcome { get; }
Source
Gets the classified read outcome.
int? ExitCode { get; }
Source
Gets the process exit code when the process reached an exit state.
byte[] StandardOutput { get; }
Source
Gets a defensive copy of the captured standard-output bytes; the array is empty when no bytes were retained.
Reads one exact Cloud Run execution using a bounded, read-only gcloud process.
Task<BoundedGcloudExecutionReadResult> ReadAsync(string executionResourceName, TimeSpan timeout, CancellationToken cancellationToken = default)
Reads the selected canonical execution within the supplied total budget.
executionResourceName
timeout
cancellationToken
BoundedGcloudExecutionReadOutcome.Deadline
result.A safe classification and, only for complete valid output, captured standard-output bytes. Standard error is never returned.
ArgumentException
executionResourceName
is null, empty, or whitespace.ArgumentOutOfRangeException
timeout
is nonpositive, infinite, or outside the supported timer range.OperationCanceledException
Default bounded reader for the fixed Cloud SDK execution-describe command.
ProcessStartInfo CreateStartInfo(ExecutionResource resource, bool windows)
Builds the fixed launcher tokens; the platform seam permits testing cmd admission without starting cmd.
Represents the closed, non-secret schema that maps AppSurface logical deployment ids to externally provisioned GCP resources.
Environment
Project
Region
us-central1
.Jobs
CloudSqlInstanceConnectionName
project:region:instance
name.Network
ServiceAccounts
Secrets
Map keys are canonical lowercase AppSurface logical ids. Values are physical resource identifiers only; secret values and unknown properties are rejected by the profile loader.
Task<GcpCloudRunBindingProfile> LoadAsync(string path, string expectedEnvironment, CancellationToken cancellationToken = default)
Loads and strictly validates a profile without resolving any secret value.
path
/var
, /tmp
, and /etc
aliases.expectedEnvironment
cancellationToken
Task<GcpCloudRunBindingProfile> LoadAsync(string path, string expectedEnvironment, string trustedRoot, CancellationToken cancellationToken = default)
Loads a profile and rejects symbolic links in every path component beneath a trusted root.
path
expectedEnvironment
trustedRoot
cancellationToken
string? ProjectNumber { get; init; }
Source
Gets or initializes the optional canonical positive Google Cloud project number.
The value is decimal, positive, within signed 64-bit range, and has no leading zeroes.
Externally provisioned Direct VPC binding.
Network
Subnetwork
Egress
Physical Secret Manager reference and explicit rotation mode.
SecretId
VersionMode
Requests read-only observation against one trusted published bundle.
Deployment
LogicalJobId
ExecutionResourceName
Timeout
PollInterval
A safe immutable observation, without provider output, environment values or exception text.
LogicalJobId
ExecutionResourceName
State
ConfigurationMatched
ObservedAt
DiagnosticCode
Observes one selected execution without submitting, cancelling, retrying or changing cloud resources.
Task<CloudRunExecutionObservation> ObserveAsync(CloudRunExecutionObservationRequest request, CancellationToken cancellationToken = default)
Validates the bundle and observes within one monotonic budget.
request
cancellationToken
Safe evidence, or Unknown for invalid non-null requests and insufficient provider evidence.
ArgumentNullException
OperationCanceledException
Coordinates immutable expectations, strict evidence classification and sequential bounded reads.
Only the injected bounded-reader contract is used. There is no legacy unbounded-runner adapter, cache, retry policy or current-Job fallback.
GcpCloudRunExecutionObserver Create()
Creates the production fixed-command observer using the system clock.
Canonical selected identity shared by admission and classification; no alias lookup occurs.
bool TryParse(string? value, out ExecutionResource? resource)
Parses only canonical full selected resources.
bool Matches(GcpCloudRunDeploymentPlan plan, GcpCloudRunMigrationParity expected)
Checks literal scope against declared expected bindings.
bool IsLogicalId(string? value)
Admits safe logical IDs without echoing invalid input.
bool ValidDurations(TimeSpan timeout, TimeSpan interval)
Checks finite positive TimeProvider timer allowances without rounding tiny budgets up.
Validates one immutable Cloud Run artifact snapshot for execution observation.
The observer admission limit is deliberately separate from legacy verification, whose public behavior is preserved.
GcpCloudRunDeploymentPlan ValidateForObservation(DeploymentRenderResult renderResult)
Validates the observation-specific finite input and closed JSON admission rules.
Pure, presence-aware execution proof. It never reads today's Job or a provider message.
CloudRunExecutionEvidence Classify(ReadOnlyMemory<byte> bytes, GcpCloudRunDeploymentPlan plan, GcpCloudRunMigrationParity expected, ExecutionResource selected)
Checks one complete bounded JSON response against an immutable expectation.
Compiles migration-job intent to GCP Cloud Run v2 artifacts and performs read-only deployed parity checks.
GcpCloudRunDeploymentTarget Create()
Creates the standard GCP Cloud Run deployment target.
GcpCloudRunDeploymentPlan ValidateBundleLegacy(DeploymentRenderResult renderResult)
Validates the legacy three-artifact bundle without imposing observer input limits.
Safe normalized Cloud Run migration-job configuration used for shadow and owned parity.
Executes one read-only gcloud invocation expressed as an argument array.
Task<GcloudCommandResult> RunAsync(IReadOnlyList<string> arguments, TimeSpan timeout, CancellationToken cancellationToken)
Runs gcloud with bounded time and cancellation.
Captured process result. Callers must not log raw output without provider sanitization.
ExitCode
StandardOutput
StandardError
Safe classified process-launch or timeout failure.
string Code { get; }
Source
Gets the stable diagnostic code.
string Problem { get; }
Source
Gets the safe problem.
string Cause { get; }
Source
Gets the safe cause.
string Fix { get; }
Source
Gets the remediation.
Production gcloud process runner. It launches the executable directly except on Windows, where the Cloud SDK's gcloud.cmd
launcher requires cmd.exe
; that path rejects whitespace and shell metacharacters before dispatch. The runner kills the process tree on timeout or cancellation.
ProcessStartInfo CreateStartInfo(IReadOnlyList<string> arguments)
Builds the non-shell or bounded Windows process-start contract without launching a process.
arguments
A fully configured process start description.
string BuildWindowsCommand(string command, IReadOnlyList<string> arguments)
Builds a metacharacter-free Windows command line for the fixed Cloud SDK launcher.
command
arguments
A command string safe for the bounded cmd.exe /d /c
dispatch path.
string Command { get; }
Source
Gets the selected gcloud command for platform-contract tests.
bool RequiresWindowsCommandInterpreter { get; }
Source
Gets whether the selected command requires the bounded Windows command-interpreter path.
Outcome of a bounded read of one selected Cloud Run execution.
The last supported state of the caller-selected execution.