Operator-aware
Pattern search, ranges, ordering, full-text search, and aggregation can be denied on protected fields.
A caller can reconstruct a secret without selecting it by asking whether guesses match, sorting by it, or measuring ranges and aggregates. Safe Boundary recognizes these operations on protected PostgREST fields.
ssn=like.123*→order=ssn.desc→ssn=in.(known)→Why this exists
For each protected field, policy chooses whether inference-sensitive operations are blocked, equality-style checks are allowed, or the finding is observed only. The analyzer covers direct fields and supported embedded-resource paths.
This is separate from response masking. The response transformer protects values that come back; the inference guard protects information encoded in which rows, order, counts, and aggregates come back.
What it does
Pattern search, ranges, ordering, full-text search, and aggregation can be denied on protected fields.
Policy can retain eq, in, and is checks while closing higher-bandwidth inference operations.
Supported filters on embedded PostgREST resources resolve to the protected underlying column.
How it works
Mark a column with a masking rule.
Parse filters, ordering, search, and aggregates before proxying.
Apply block, equality-only, or observe behavior.
Transform any allowed protected values in the response.
Protected when
Important boundaries
Continue the story
Mask PostgREST responses and stop filters from becoming inference oracles.
Configure which columns are protected and preserve compatible response types.
Understand trust boundaries, credentials, identity, and bypass conditions.
Start in observe mode, validate the policy against representative traffic, and move to enforcement with explicit bypass controls.