Before running a
tensor9 command, install the CLI, set T9_API_KEY, and verify your customer account. Online commands are authenticated and their adapter detail is limited to mappings your account is entitled to use.- What runs here? The installation selects an origin cloud, a target environment, a deployment shape and target-cloud coordinates.
- What needs to be prepared? Most supported origin services use their compatible target backend automatically. A service-specific block is needed when a mapping requires resources to be provisioned or bound before the adapter starts.
- Which application calls use the adapter? The application points the relevant native SDK client at the Cloud Adapter endpoint. Other service clients keep their existing endpoints.
AWS_ENDPOINT_URL_S3 belongs to the application process.
Configuration at a glance
The service catalog is the source for available mappings and service names. A catalog check belongs at the beginning of configuration, not after an installation has been provisioned.
Start with the workload
Inventory what the application actually calls before choosing a target environment. Record the origin service, operations, resource names, request features and operational expectations. For an S3 workload, this includes more than “uses S3.” Capture object CRUD, listing and pagination, multipart upload, conditional requests, metadata, checksums, versioning, lifecycle configuration, presigned URLs and retry behavior. Then compare that list with the S3 target profile. For DynamoDB, capture key schemas, secondary indexes, conditional expressions, transactions, streams, TTL, item sizes, hot partitions, table creation behavior and capacity assumptions. Compare the result with the DynamoDB target profile.Declare the cloud direction once
Current Cloud Adapter configuration selects an origin API family and a target cloud. It does not require a hand-written origin-to-backend row for every service. Cloud Adapter uses the service catalog to expose origin APIs with compatible target backends. This compact example selects AWS as the origin and Google Cloud as the target:aws::1.0.0::s3 and google::1.0.0::gcs. The cloud direction and catalog already establish that relationship.
targetConfig contains shared target coordinates. It is not a credential map. Authentication comes from the runtime identity supplied to the deployment. Do not put a service-account key in targetConfig.
Add service configuration only when it has work to do
A service-specific entry is a sparse override, not an allowlist of enabled APIs. Add one when that service needs configuration beyond the installation-wide cloud direction, especially when its backend must be provisioned or bound before startup. Examples include:- a queue adapter that needs a pre-provisioned PostgreSQL database and a secret reference for its DSN;
- a service that needs an existing namespace, key ring or shared coordination store;
- a mapping with a service-specific network or identity binding;
- a resource family whose infrastructure must exist before the origin API can create logical resources inside it.
Automatic mapping: S3 to Google Cloud Storage
For S3 backed by Google Cloud Storage, the installation supplies the Google Cloud project and location, and the runtime receives a Google identity with narrowly scoped storage permissions. The application continues to send S3 requests. The local equivalent shows the same selection directly:Pre-provisioned mapping: SQS to Cloud SQL
An SQS mapping backed by Cloud SQL needs a database before it can serve queue operations. That prerequisite belongs in a sparse SQS service configuration together with a secret reference for the database connection. It is a real reason to add a service-specific block. Keep the DSN out of the configuration file. The non-secret configuration should name the secret reference and describe the database ownership, backup, connection and migration expectations. The deployment resolves the secret into the adapter runtime. This differs from S3 to Cloud Storage: object requests can address native storage directly through the selected target identity, while the PostgreSQL-backed queue implementation depends on provisioned shared state before its endpoint is ready.Resource-level choices
When several target backends are valid for a created resource, the origin request can carry a supported backend choice and target-native capacity settings. These choices belong to that resource rather than the installation as a whole. Read the public directed profile for exact directive names, accepted values and scope. Authenticate and usetensor9 explain to confirm the mapping available to your account before creating production resources.
Route one client or one service
Prefer the native SDK or tool’s service-specific endpoint control. This keeps the change narrow and visible. For AWS clients, configure the endpoint process-wide for one service:Separate the identities
Do not use the verification identity as the adapter runtime identity. Independent verification is useful because it observes the target through a separate path.
Keep secret values out of configuration files, command lines, screenshots, reviews and support transcripts. Use the secret-reference mechanism for the installed deployment shape. Commit only redacted configuration and the names of required secret references.
Treat changes as transitions
A valid new file is not necessarily a safe update. Classify every change before applying it:
The provisioned deployment workflow validates supported updates and coordinates runtime changes. Editing a file does not move data, rotate an identity or prove that the new endpoint is healthy.
Validate in four views
For every meaningful configuration change, collect evidence from four views:- Configuration: the reviewed file or guided summary names the intended origin, target and required service prerequisites.
- Origin API: the normal SDK or tool receives the expected origin-shaped response.
- Target service: a native read confirms the expected resource and effective settings.
- Adapter explanation: Explain identifies the selected mapping and relevant translation without exposing secrets.