aws, gcloud, az, kubectl, gh, or glab, and the matching connectors register automatically. If a connector can retrieve credentials, it is listed in the startup inventory; if it cannot, it is skipped quietly.
Connector catalog
The model can look up an exact AWS, GitHub, GitLab, GCP, Azure, or Kubernetes operation — with a request template — through the
api_reference tool.
Three layers of read-only enforcement
Cynative combines up to three independent controls on every request, applied in order before any credential is attached:Defense at a glance
Cynative ships a vendor-curated, read-only baseline that you can re-point to a different policy or role per connector — a spectrum of exposure that is safe by default, not a binary read/write toggle. Only AWS has credential downscoping, and even there it applies to assumed-role identities only. For every other connector the action/RBAC gate is the sole client-side control. Kubernetes exposure is operator-selectable per connector via
connectors.<id>.cluster_role (default the built-in view role).
Shared request model
All connector-backed requests go through thehttp_request tool. The model sets auth_provider to one of the registered connector ids and includes the connector-specific auth argument object (such as aws_auth, gcp_auth, or aks_auth).
Cynative applies request authorization before attaching credentials, then applies the dial guard when the HTTP transport connects:
- The URL must use HTTPS.
- The selected connector must authorize the request host.
- The selected connector must authorize the requested action when it implements action authorization.
- Credentials are attached only after host and action authorization pass.
- At dial time, the selected connector or the default dial guard authorizes the resolved IP address before the credential-bearing request is sent. When the operator has configured a proxy through the standard
HTTPS_PROXY/HTTP_PROXY/NO_PROXYvariables, a proxied request connects only to that proxy and the address check is the proxy’s.
Shared configuration
Connector hardening is configured under the top-levelconnectors: key in ~/.cynative/config.yaml:
CYNATIVE_* environment variables, for example CYNATIVE_CONNECTORS_AWS_POLICY, CYNATIVE_CONNECTORS_GCP_ROLE, CYNATIVE_CONNECTORS_AZURE_ROLE_DEFINITION, CYNATIVE_CACHE_DIR, and CYNATIVE_CACHE_TTL. The GitHub and GitLab permissions maps take a compact comma-separated key=value form, for example:
Outbound proxies
Outbound proxy settings (HTTPS_PROXY, HTTP_PROXY, NO_PROXY) apply uniformly to every connector. See the proxy documentation for what is routed, what is not, and what an intercepting proxy can see.
Cynative itself reads almost no vendor environment variables directly — the vendor SDK/CLI does. The AWS SDK default chain reads
AWS_PROFILE, AWS_ACCESS_KEY_ID, and related variables; Google ADC reads GOOGLE_APPLICATION_CREDENTIALS; the Azure credential chain reads AZURE_TENANT_ID and peers; go-gh reads GH_TOKEN; the GitLab connector reads GITLAB_TOKEN. To change which identity Cynative uses, set the vendor’s own variables (or run its login command) in the shell Cynative runs from. Cynative’s CYNATIVE_* variables control exposure settings and connector-specific knobs, not vendor credentials.
