- Plan. See the params, the secrets, the scopes to grant, the exact endpoints that Squasher calls, and the request cost per hour. A plan changes nothing.
- Connect. Send the params and the secrets. Squasher pulls one page to verify them before it stores anything. When the page is good, Squasher stores the secrets encrypted and starts to poll.
- Verify. Pull one page again at any time with the stored secrets. Verify shows sample records, the same records mapped to OCSF, and the OCSF coverage per class. It sends nothing to your project.
- Disconnect. Stop polling and delete the stored secrets. This cannot be undone. To start again, connect again.
Connector catalog
For the AWS connectors, scheduled pulls are not available yet. Connect and verify work now.
squasher connectors list shows the current catalog. squasher connectors get <id> shows what a
connector needs.
Set up a connector with the CLI
secrets.json is a JSON object of secret values by name, for example
{"access_token": "..."}. Use --secrets-file - to read it from stdin. The CLI does not take a
secret as a flag value, so the secret does not go into your shell history.
Connect an AWS account
AWS connectors read with an IAM role in your account. Squasher assumes the role with an ExternalId that Squasher issues for your project and connector. You cannot choose the ExternalId, so another Squasher customer cannot use your role.-
Run
connections.planwith the connector params. The plan showsaws_role.external_id, the principal to trust inaws_role.trust_principal(arn:aws:iam::381347172594:root, the Squasher AWS account), and the trust policy condition, for example{"StringEquals": {"sts:ExternalId": "sq-..."}}. -
Create the reader role. In its trust policy, allow
sts:AssumeRolefor the principal with the condition, and grant the actions in the planscopes: -
Connect with the role ARN in the
role_arnparam.secretsis an empty object.
aws.cloudtrail_sqs reads one batch of S3 notifications. It does not delete a message:
each message is visible again at once, so the next pull reads it.
Safe retries
connections.createandconnections.deletetakedry_run=true. A dry run returns the preview and changes nothing.- Send an
Idempotency-Keyheader to retry safely. A retry with the same key and the same request in 24 hours gets the first response. The same key with a different request gets422. connections.deleteneeds anIdempotency-Key. The CLI sends a new one for each delete.
Access
Listing connectors and connections needsproviders:read. Plan, connect, verify, and disconnect
need providers:write. The API never returns a stored secret.
See the Connectors API for every operation.