Skip to content
Docs
Loading documentation…
Open platform
Documentation

Conformance and deployment checks

Run the connector's published test suite and diagnose signing, mapping, and pagination failures.

@askdepth/audience-connectorv0.1.2
On this page

The published connector includes a conformance CLI. Run it against your endpoint before using the Askdepth connection wizard. The platform uses conformance as an activation gate.

Run the suite

Set ASKDEPTH_SECRET in your server or CI environment, then run:

bash
npx @askdepth/audience-connector@0.1.2 conformance \
  --url http://localhost:8080/askdepth/v1 \
  --unmapped-column internal_notes \
  --filter-only-attribute country=PL

Use an unmapped column that actually exists in your store. Use a filter-only attribute that you actually declared but did not make returnable. Replace the example names and value with your own test fixture.

The CLI reads ASKDEPTH_SECRET when --secret is absent and ASKDEPTH_PREVIOUS_SECRET when --previous-secret is absent. Keep CI output and command tracing from disclosing those values.

Options and exits

OptionPurpose
--urlComplete base URL, including /askdepth/v1 or your configured prefix.
--secretActive secret; environment fallback is supported.
--previous-secretPrevious secret for rotation overlap checks.
--unmapped-columnRepeatable source columns that must not appear in responses.
--filter-only-attribute name[=value]Repeatable; adding a value exercises an actual filter rather than only structure.
--caseRepeatable case IDs for diagnosis. Run the complete suite before activation.
--jsonMachine-readable report.
--timeout-msPer-case timeout, default 5000.

Exit 0 means all selected cases passed, 1 means a case failed, and 2 means usage, connection, or runner failure. A localhost pass validates your local endpoint; it does not prove Askdepth can reach your deployed hostname.

What the suite checks

Seven positive cases cover health, schema, count, canonical search/pagination, explicit external IDs, attribute filtering, and suppression. Eight negative cases cover unsigned access, invalid signatures, unmapped-column leakage, unsafe errors, unstable cursors, row caps, falsely advertised random sampling, and exposed write methods.

Without representative fixture data and the extra column/attribute arguments, some cases can exercise only structure. A passing suite is useful evidence about the tested endpoint and data, not a proof of every possible privacy or correctness property.

Common failures

SymptomInspect first
GET fails but POST verifiesGET must sign an empty body; do not require GET content-type.
Every signature failsExact raw body, UTF-8 secret, seconds versus milliseconds, and duplicate v1= prefix.
shim_misconfiguredExpress body was parsed before the shim; preserve raw bytes.
Health/schema pass but count/search failRequest mapping is source column → canonical field; connector configuration is the reverse.
Duplicate or missing candidates across pagesCursor binding, stable ordering, and unchanged query between pages.
Filter-only data appears in rowsSeparate filterable from returnable attributes.
unsupported_capabilityHealth advertises only flags your adapter actually supports.
Count equals a page sizeReturn an exact count, not a truncated fetch length.

Connect the deployed endpoint

Deploy behind HTTPS, keep the signing secret on your server, and confirm the complete base URL is reachable by the platform. Do not expose database credentials in the URL or mapping response. Health checks are signed; do not add an unsigned bypass to the four contract routes for monitoring.

In the workspace, open Settings → Integrations → Data sources, provide the endpoint, inspect the declared columns, and configure the field mapping. Conformance must pass before activation. Repeat the complete suite after changes to adapters, mappings, raw-body middleware, cursors, or secret rotation behavior.