- Encrypt HTTP request and response payloads, SQL queries, and other sensitive data with your own encryption keys
- Limit the size of HTTP request and response payloads
- Strip sensitive values from SQL queries
Logs Encryption
Before enabling encryption for logs, you need to configure encryption keys. These keys are used to protect sensitive data in payloads and SQL queries. See Encryption Keys for detailed information on creating and managing encryption keys. Once you have created an encryption key, you can use it to encrypt logs:HTTP Payloads
For HTTP request and response payloads, you can configure:- Maximum size limits through
max_payload_sizein therequestandresponseblocks, in bytes - Encryption using the
encryptsetting in each block (requires configured encryption keys)
request.http.body.receivedrequest.http.body.sentrequest.http.body.dry_run_policiesresponse.http.body.receivedresponse.http.body.sentresponse.http.body.dry_run_policies
The example here uses a
scope with type resource, meaning that the log configuration will only apply to the referenced resource (i.e. http_api_resource). If you want to apply the log configuration to all resources, you can use scope type connector instead. Resource-level configurations take precedence over Connector-level ones.SQL Queries
When working with database resources, Formal offers two ways to protect sensitive information in SQL queries:- Query Stripping: Redact sensitive values from SQL queries using
strip_values - Query Encryption: Encrypt sensitive parts of SQL queries using
encrypt(requires a configured encryption key)
request.query.receivedrequest.query.sentrequest.query.normalized
Stream Events
For streaming connections, you can also encrypt stream events using the optionalstream block. This requires a configured encryption key: