docs: add events system pages (#4294)
* feat: events docs * fix: make the conditions optional in casl check * Update backend/src/lib/api-docs/constants.ts * Update backend/src/lib/api-docs/constants.ts Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * Update docs/docs.json * docs: content * fix: pr changes * feat: improve docs * chore: remove recursive * fix: pr changes * fix: change * fix: pr changes * fix: pr changes * fix: change
4
docs/api-reference/endpoints/events/project-events.mdx
Normal file
@@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Project Events"
|
||||
openapi: "POST /api/v1/events/subscribe/project-events"
|
||||
---
|
||||
@@ -41,6 +41,8 @@
|
||||
"group": "Platform Reference",
|
||||
"pages": [
|
||||
"documentation/platform/organization",
|
||||
"documentation/platform/event-subscriptions",
|
||||
"documentation/platform/folder",
|
||||
{
|
||||
"group": "Projects",
|
||||
"pages": [
|
||||
@@ -764,6 +766,10 @@
|
||||
"group": "Admin",
|
||||
"pages": ["api-reference/endpoints/admin/bootstrap-instance"]
|
||||
},
|
||||
{
|
||||
"group": "Events",
|
||||
"pages": ["api-reference/endpoints/events/project-events"]
|
||||
},
|
||||
{
|
||||
"group": "Identities",
|
||||
"pages": [
|
||||
|
||||
118
docs/documentation/platform/event-subscriptions.mdx
Normal file
@@ -0,0 +1,118 @@
|
||||
---
|
||||
title: "Event Subscriptions"
|
||||
sidebarTitle: "Events"
|
||||
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.
|
||||
</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 many more **coming soon**.
|
||||
|
||||
## How It Works
|
||||
|
||||
- Server receives message over pubsub connection indicating changes have occurred
|
||||
- Server processes the change notification
|
||||
- Updated data is synchronized across all connected Infisical instances
|
||||
- Client applications receive real-time updates through [Server-Sent Events (SSE)](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events)
|
||||
- All servers maintain consistent state without manual intervention
|
||||
|
||||
This ensures your infrastructure stays up-to-date automatically, without requiring restarts or manual synchronization.
|
||||
|
||||
<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
|
||||
|
||||
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 **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 **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="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 **Subscribe** action is selected for the relevant resources and events.
|
||||
|
||||
## Conditions
|
||||
|
||||
By default, the role will have access to all events for the selected resources in this project.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Full Access">
|
||||

|
||||
</Accordion>
|
||||
<Accordion title="Path Prefix">
|
||||

|
||||
</Accordion>
|
||||
<Accordion title="Environment">
|
||||

|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Getting Started
|
||||
|
||||
Currently, events are only available via [API](/api-reference/endpoints/events) but will soon be available in our SDKs, Kubernetes Operator, and more.
|
||||
|
||||
### API Usage
|
||||
|
||||
You need an auth token to use this API. To get an authentication token, follow the authentication guide for one of our supported auth methods from the [machine identities documentation](/documentation/platform/identities/machine-identities#authentication-methods).
|
||||
|
||||
#### 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
|
||||
|
||||

|
||||
|
||||
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/access-dev.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
docs/images/platform/events/access-full.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
docs/images/platform/events/access-path.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
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/add-conditions.png
Normal file
|
After Width: | Height: | Size: 910 KiB |
BIN
docs/images/platform/events/add-policy.png
Normal file
|
After Width: | Height: | Size: 531 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/policy-setting.png
Normal file
|
After Width: | Height: | Size: 879 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 |
BIN
docs/images/platform/events/project-access.png
Normal file
|
After Width: | Height: | Size: 858 KiB |
BIN
docs/images/platform/events/project-detail.png
Normal file
|
After Width: | Height: | Size: 866 KiB |
BIN
docs/images/platform/events/project-role.png
Normal file
|
After Width: | Height: | Size: 895 KiB |
BIN
docs/images/platform/events/role-detail.png
Normal file
|
After Width: | Height: | Size: 834 KiB |
BIN
docs/images/platform/events/select-project.png
Normal file
|
After Width: | Height: | Size: 678 KiB |