Skip to content
Notis

Protect Your API Keys from Accidental Exposure

Developers paste API keys into debug issues. Anonymize them before anyone else sees.

Trigger

Issue Updated Trigger

Triggered when an issue is updated. For example labels are changed, issue status is changed, etc.

Action

Anonymize Value

Tool to anonymize a string or array of string values. use when you need to conceal sensitive text before storage or transmission. example: `anonymizevalue().execute(anonymizevaluerequest(data=['secret']))` limitations: only supports list of strings, not nested structures.

Why this helps

When debugging integrations, developers paste API responses, headers, or configuration that includes live keys. By the time you notice, the key is already in the issue history. Rotating hundreds of keys is exhausting, and you never know who saw them or copied them.

  • Catches credentials before widespread exposure
  • Reduces key rotation overhead
  • Protects against supply chain attacks
  • Keeps debug issues safe to review later

Setup

Build it in a few focused steps.

  • 1Connect Linear and Anonyflow to Notis in the portal.
  • 2Create an automation: 'When a Linear issue is updated, anonymize any API keys, service tokens, or authentication credentials in the update body.'
  • 3Set the trigger to 'Issue Updated'.
  • 4Send notifications to your engineering Slack channel.
  • 5Test by updating an issue with a sample API key and confirm it's removed.

Questions about this workflow

Will this affect my ability to debug the issue?

Yes, but intentionally. For sensitive debug info, use a secure vault like HashiCorp Vault or 1Password. Link to the vault from the issue instead of pasting the actual credential.

How does this handle API key rotation?

You still rotate keys. This automation just prevents the need to hunt down every place an old key was mentioned.

Can I exclude certain keys from redaction?

Not recommended. Treat all API keys as sensitive. If you have dummy keys for testing, use consistent naming (like 'sk_test_') and test before deploying.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

Notis builds workflows that link Linear to Anonyflow. A trigger fires from one place; an action lands in another.

Linear triggers

Anonyflow actions

Recurring trigger

Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.

TriggerScheduled

Anonymize Value

Tool to anonymize a string or array of string values. use when you need to conceal sensitive text before storage or transmission. example: `anonymizevalue().execute(anonymizevaluerequest(data=['secret']))` limitations: only supports list of strings, not nested structures.

ActionInstant

Webhook trigger

Notis starts this workflow when an external tool or custom backend sends an HTTP request.

TriggerInstant

Deanonymize Packet

Tool to deanonymize a json data packet using your private key. use after receiving an anonymized packet to recover specific fields.

ActionInstant

Comment Received Trigger

Triggered when a comment is received.

TriggerInstant

Deanonymize Value

Tool to deanonymize one or more anonymized string values. use when you need to recover the original plaintext values after encryption-based anonymization. example: `deanonymizevalue().execute(deanonymizevaluerequest(data=["<anonymized string>"]))`

ActionInstant

Issue Created Trigger

Triggered when a new issue is created.

TriggerInstant

Test Connection

Tool to test the connection to the anonyflow api. use when verifying that the anonyflow service is reachable and operational before performing anonymization tasks. example: `testconnection().execute(testconnectionrequest())`

ActionInstant

Issue Updated Trigger

Triggered when an issue is updated. For example labels are changed, issue status is changed, etc.

TriggerInstant

Private Team Comment Created

Fires when a new comment is posted on an issue in a private Linear team (polled with the connected user's token).

TriggerPolling

Private Team Issue Created

Fires when a new issue appears in a private Linear team (polled with the connected user's token).

TriggerPolling

Private Team Issue Properties Updated

Fires when properties on an issue change in a private Linear team (polled with the connected user's token).

TriggerPolling

Connect any two apps with Notis in the middle.

Linear and Anonyflow, or any other combination from 1,000+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7-day trial of any paid plan, with 20$ of usage included.
No card. Works with personal or business Anonyflow.