faucet-common-spanner 1.0.0

Shared Cloud Spanner credentials, client construction, and value conversion for the faucet-stream Spanner source and sink connectors
Documentation

faucet-common-spanner

Shared configuration and conversion types for the faucet-stream Google Cloud Spanner connectors — faucet-source-spanner and faucet-sink-spanner.

Both connectors re-export these types, so you normally depend on the source or sink crate rather than this one directly.

Contents

  • SpannerCredentials — the auth enum, serialized in faucet's consistent { type: <method>, config: { … } } wire shape:

    type Fields Meaning
    application_default Application Default Credentials (GOOGLE_APPLICATION_CREDENTIALS, gcloud auth application-default login, GCE/GKE metadata) — the default
    service_account_key_path path Service-account key JSON loaded from a file
    service_account_key json Inline service-account key JSON — prefer ${vault:…} / ${env:…} interpolation over literals; Debug masks it
  • SpannerConnection — the flattened connection block shared by both connector configs: project_id / instance / database / auth / max_sessions (session-pool bound; channels sized at one per 100 sessions) / emulator_host (per-connector emulator override — the process-global SPANNER_EMULATOR_HOST env var is also honored when unset). Provides connect() (data-plane client) and connect_admin() (DDL/instance admin client) plus database_path().

  • typesparse_spanner_type (INFORMATION_SCHEMA type strings → SpannerType, including ARRAY<…>) and spanner_type_to_json_schema.

  • decode — generic Spanner row → serde_json::Value decoding for arbitrary queries: INT64 stays a lossless JSON integer, NUMERIC stays a string, JSON columns parse to structured values, BYTES stay base64, ARRAY/STRUCT recurse.

  • encodeserde_json::Value → mutation value encoding keyed by the destination column type, with typed mismatch errors.

License

MIT OR Apache-2.0