feat: improve docs
@@ -5,75 +5,143 @@ description: "Subscribe to events in Infisical for real-time updates"
|
||||
---
|
||||
|
||||
<Info>
|
||||
**Note:** Event Subscriptions is a paid feature. - **Infisical Cloud users:** Event Subscriptions is
|
||||
available under the **Enterprise Tier**. - **Self-Hosted Infisical:** Please
|
||||
contact [sales@infisical.com](mailto:sales@infisical.com) to purchase an
|
||||
enterprise license.
|
||||
**Note:** Event Subscriptions is a paid feature.
|
||||
- **Infisical Cloud users:** Event Subscriptions is available under the **Enterprise Tier**.
|
||||
- **Self-Hosted Infisical:** Please contact [sales@infisical.com](mailto:sales@infisical.com) to purchase an enterprise license.
|
||||
</Info>
|
||||
|
||||
Event Subscriptions in Infisical allow you to receive real-time notifications when specific actions occur within your account or organization. These notifications include changes to secrets, users, teams, and other important resources.
|
||||
|
||||
Event Subscriptions in Infisical allow you to receive real-time notifications when specific actions occur within your account or organization. These notifications can include changes to secrets, users, teams, and other important resources.
|
||||
## How It Works
|
||||
|
||||
You can currently subscribe to notifications for the following event types:
|
||||
Event Subscriptions enable real-time communication and state synchronization across multiple Infisical server instances through a distributed messaging architecture. The system leverages Redis as the central messaging backbone, utilizing Redis Pub/Sub to orchestrate event distribution in a fan-out pattern across all connected services. All server instances subscribe to a shared Redis topic named `infisical::core-servers`, ensuring consistent event delivery throughout the system.
|
||||
|
||||
### Supported Event Types
|
||||
Event messages are structured according to the [CloudEvents specification](https://github.com/cloudevents/spec), providing a standardized format for cross-service communication. For client-side delivery, the system employs Server-Sent Events (SSE) streams, which offer efficient unidirectional communication without requiring specialized client libraries. This lightweight approach ensures seamless real-time updates while maintaining broad compatibility across different client environments.
|
||||
|
||||
- `secret:created`: Triggered when a secret is created.
|
||||
- `secret:updated`: Triggered when a secret is updated.
|
||||
- `secret:deleted`: Triggered when a secret is deleted.
|
||||
<Note>
|
||||
Event Subscriptions are designed for real-time communication and do not include persistence or replay capabilities—events are delivered once and are not stored for future retrieval.
|
||||
</Note>
|
||||
|
||||
## Supported Resources
|
||||
|
||||
You can currently subscribe to notifications for the following resources and event types:
|
||||
|
||||
- **Secrets**
|
||||
- `secret:created`: Triggered when a secret is created
|
||||
- `secret:updated`: Triggered when a secret is updated
|
||||
- `secret:deleted`: Triggered when a secret is deleted
|
||||
|
||||
## Permissions Setup
|
||||
|
||||
In order to receive events on a supported resource, the identity is required to have a Subscribe permission on that resource. Follow these steps to set up the necessary permissions:
|
||||
To receive events on a supported resource, the identity must have `Subscribe` action permission on that resource.
|
||||
|
||||
Follow these steps to set up the necessary permissions:
|
||||
|
||||
<Steps>
|
||||
<Step title="Select a project and copy the 'Project ID'">
|
||||

|
||||
On your project page, open <strong>Project Settings</strong> from the sidebar.<br />
|
||||
In the Project name section, click <strong>Copy Project ID</strong> to copy your Project ID, or extract it from the URL:<br />
|
||||
`https://app.infisical.com/project/<your_project_id>/settings`
|
||||
</Step>
|
||||
<Step title="Select a project and copy the Project ID">
|
||||

|
||||
|
||||
On your project page, open **Project Settings** from the sidebar.
|
||||
|
||||
In the Project name section, click **Copy Project ID** to copy your Project ID, or extract it from the URL:
|
||||
`https://app.infisical.com/project/<your_project_id>/settings`
|
||||
</Step>
|
||||
|
||||
<Step title="Navigate to 'Access Management' and open 'Project Roles'">
|
||||
  Navigate to{" "}
|
||||
<strong>Access Management</strong>, then select <strong>Project Roles</strong>
|
||||
.
|
||||
</Step>
|
||||
<Step title="Navigate to Access Management and open Project Roles">
|
||||

|
||||

|
||||
|
||||
Navigate to **Access Management**, then select **Project Roles**.
|
||||
</Step>
|
||||
|
||||
<Step title="Select an existing role or create a new one">
|
||||
 You can either edit
|
||||
an existing role or create a new role for event subscriptions.
|
||||
</Step>
|
||||
<Step title="Select an existing role or create a new one">
|
||||

|
||||
|
||||
You can either edit an existing role or create a new role for event subscriptions.
|
||||
</Step>
|
||||
|
||||
<Step title="Assign policies to the role">
|
||||
 Select the specific
|
||||
resources that the role should have access to.
|
||||
<br />
|
||||

|
||||
</Step>
|
||||
<Step title="Assign policies to the role">
|
||||

|
||||
|
||||
Select the specific resources that the role should have access to.
|
||||
|
||||

|
||||
</Step>
|
||||
|
||||
<Step title="Enable the 'Subscribe' action in permissions">
|
||||

|
||||
Ensure the <strong>Subscribe</strong> action is selected for the relevant resources and events.<br />
|
||||
<AccordionGroup>
|
||||
<Accordion title="Add conditions to your permissions">
|
||||
By default, the role will have access to all events for the selected resources in this project.
|
||||
If needed, you can add filters to limit the scope of accessible events.<br />
|
||||

|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
</Step>
|
||||
<Step title="Enable the Subscribe action in permissions">
|
||||

|
||||
|
||||
Ensure the **Subscribe** action is selected for the relevant resources and events.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Add conditions to your permissions">
|
||||
By default, the role will have access to all events for the selected resources in this project. If needed, you can add filters to limit the scope of accessible events.
|
||||
|
||||

|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Usage
|
||||
## Getting Started
|
||||
|
||||
For integration and implementation details, please refer to our [API Reference](/api-reference/endpoints/events).
|
||||
Currently, events are only available via [API](/api-reference/endpoints/events) but will soon be available in our SDKs, Kubernetes Operator, and more.
|
||||
|
||||
---
|
||||
### API Authentication
|
||||
|
||||
**Note:** Only users or roles with appropriate permissions can manage or subscribe to events.<br />
|
||||
<Steps>
|
||||
<Step title="Navigate to Organization Access Control and select an Identity">
|
||||

|
||||
|
||||
Navigate to the **Organization Access Management** tab under Project access control settings.
|
||||
|
||||

|
||||
|
||||
Select or create an identity you want to create the token for.
|
||||
</Step>
|
||||
|
||||
<strong>Availability:</strong> Event Subscriptions are not available on the Free
|
||||
plan.
|
||||
<Step title="Assign a project and role to the Identity">
|
||||

|
||||
|
||||
Select a project and the role you previously configured in the [permissions setup](#permissions-setup) section.
|
||||
|
||||

|
||||
</Step>
|
||||
|
||||
<Step title="Add authentication method Token Auth">
|
||||

|
||||

|
||||
</Step>
|
||||
|
||||
<Step title="Generate an authentication token">
|
||||

|
||||

|
||||

|
||||
|
||||
Enter a descriptive name and click **Create**.
|
||||
|
||||

|
||||
|
||||
Click to copy the generated token and save it for later use.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
### API Usage
|
||||
|
||||
#### Creating a Subscription
|
||||
|
||||

|
||||
|
||||
**Request Parameters:**
|
||||
- `projectId`: Project whose events you want to subscribe to
|
||||
- `register`: List of event filters
|
||||
- `conditions`: Conditions to filter events on
|
||||
- `environmentSlug`: Project environment
|
||||
- `secretPath`: Path of the secrets
|
||||
- `recursive`: If `true`, gets events from all nested paths under `secretPath`
|
||||
|
||||

|
||||
|
||||
The subscribe endpoint responds with a `text/event-stream` content type to initiate SSE streaming.
|
||||
|
||||
For more specific details, please refer to our [API Reference](/api-reference/endpoints/events).
|
||||
BIN
docs/images/platform/events/add-auth-method-form.png
Normal file
|
After Width: | Height: | Size: 476 KiB |
BIN
docs/images/platform/events/add-auth-method.png
Normal file
|
After Width: | Height: | Size: 747 KiB |
BIN
docs/images/platform/events/copy-generated-token.png
Normal file
|
After Width: | Height: | Size: 401 KiB |
BIN
docs/images/platform/events/generate-auth-token-add.png
Normal file
|
After Width: | Height: | Size: 484 KiB |
BIN
docs/images/platform/events/generate-auth-token-create.png
Normal file
|
After Width: | Height: | Size: 397 KiB |
BIN
docs/images/platform/events/generate-auth-token.png
Normal file
|
After Width: | Height: | Size: 734 KiB |
BIN
docs/images/platform/events/identity-add-project.png
Normal file
|
After Width: | Height: | Size: 441 KiB |
BIN
docs/images/platform/events/identity-add-role.png
Normal file
|
After Width: | Height: | Size: 735 KiB |
BIN
docs/images/platform/events/identity-selector.png
Normal file
|
After Width: | Height: | Size: 697 KiB |
BIN
docs/images/platform/events/org-access-control.png
Normal file
|
After Width: | Height: | Size: 704 KiB |
BIN
docs/images/platform/events/postman-sse-response.png
Normal file
|
After Width: | Height: | Size: 273 KiB |
BIN
docs/images/platform/events/postman-subscribe.png
Normal file
|
After Width: | Height: | Size: 168 KiB |