Events
Events provide an immutable audit log of all changes in your FoxNose organization. Each create, update, or delete operation on entities automatically generates an event record. Events are read-only and cannot be modified or deleted via the API.
There are two types of events:
- Environment Events — Track changes to environment-scoped entities (folders, resources, components, APIs, etc.)
- Global Events — Track changes to organization-level entities (users, projects, and environment lifecycle events)
For non-admin users, environment events are filtered on the backend to include only entities they can read based on permissions (including object-level folder access).
Path Parameters
- Name
:env- Type
- string
- Description
Unique identifier of the environment (only for environment events)
Event Object
- Name
key- Type
- string
- Description
Unique identifier for the event.
- Name
timestamp- Type
- datetime
- Description
When the event occurred, in ISO 8601 format.
- Name
event_type- Type
- string
- Description
Type of change:
"create","update", or"delete".
- Name
entity_type- Type
- string
- Description
Type of entity that was changed. For environment events:
folder,resource,revision,component,version,api,manageapikey,fluxapikey,managepermissionrole,fluxpermissionrole,envrole,fluxrole,locale. For global events:user,customer,project,environment.
- Name
entity_key- Type
- string
- Description
Unique identifier of the entity that was changed.
- Name
actor_type- Type
- string
- Description
Type of actor who made the change:
"user"or"apikey"(global events only support"user").
- Name
actor- Type
- object | null
- Description
Details about the actor. For users:
key,email,first_name,last_name,full_name,deleted_at. For API keys:key,description,public_key,role,created_at,environment,deleted_at. Returnsnullif actor information is unavailable.
- Name
ip_address- Type
- string | null
- Description
IP address from which the change was made, or
nullif unavailable.
- Name
referer- Type
- string | null
- Description
Request host extracted from the HTTP Referer header (e.g.,
app.foxnose.net). Only the host portion is stored for privacy and easier filtering. Returnsnullif unavailable.
- Name
metadata- Type
- object | null
- Description
Additional metadata associated with the event. Structure depends on entity type and action. See Metadata by Entity Type for details.
Metadata by Entity Type
The metadata field contains additional context about the event. Its structure varies depending on the entity type and action performed.
| Event | Condition | Metadata Fields |
|---|---|---|
| Folder Events | ||
folder:createfolder:updatefolder:delete | Folder created, updated, or deleted | parent_key: key of parent folder (or null for root)previous_parent_key (update only): key of old parent foldersnapshot (delete only): last known folder fields (see Delete Snapshots) |
| Component Events | ||
component:createcomponent:delete | Component created or deleted | snapshot (delete only): last known component fields (see Delete Snapshots) |
| Version Events | ||
version:createversion:delete | Version created or deleted | schema_key: key of the schema (components only, null for collections)schema_type: "component" or "collection"folder_key: key of the folder (collections only, null for components)snapshot (delete only): last known version fields (see Delete Snapshots) |
version:update | Version published | action: "publish"schema_key: key of the schema (components only, null for collections)schema_type: "component" or "collection"folder_key: key of the folder (collections only, null for components) |
| Locale Events | ||
locale:createlocale:updatelocale:delete | Locale created, updated, or deleted | code: locale codename: locale nameis_default: whether locale is defaultsnapshot (delete only): last known locale fields (see Delete Snapshots) |
| Environment Events (Global) | ||
environment:createenvironment:updateenvironment:delete | Environment created, updated, or deleted | project_key: key of the parent projectsnapshot (delete only): last known environment fields (see Delete Snapshots) |
| Resource Events | ||
resource:createresource:updateresource:delete | Resource created, updated, or deleted | folder_key: key of the resource's foldersnapshot (delete only): last known resource fields (see Delete Snapshots) |
| Revision Events | ||
revision:createrevision:delete | Revision created or deleted | folder_key: key of the resource's folderresource_key: key of the resourcesnapshot (delete only): last known revision fields (see Delete Snapshots) |
| Flux API Events | ||
api:update | Folder connected to Flux API | action: "connect"folder_key: key of the connected folderallowed_methods: array of permissions (e.g., ["get_one", "get_many"]) |
api:update | Folder permissions updated | action: "update_permissions"folder_key: key of the folderallowed_methods: updated array of permissions |
api:update | Folder disconnected from Flux API | action: "disconnect"folder_key: key of the disconnected folder |
| API Key Events | ||
manageapikey:createmanageapikey:updatemanageapikey:delete | Management API key created, updated, or deleted | role_key: key of assigned role (or null)snapshot (delete only): last known key fields (see Delete Snapshots) |
fluxapikey:createfluxapikey:updatefluxapikey:delete | Flux API key created, updated, or deleted | role_key: key of assigned role (or null)snapshot (delete only): last known key fields (see Delete Snapshots) |
| Role Events | ||
envrole:createenvrole:updateenvrole:delete | Management role created, updated, or deleted | name: role namedescription: role descriptionfull_access: whether role has full accesssnapshot (delete only): last known role fields (see Delete Snapshots) |
fluxrole:createfluxrole:updatefluxrole:delete | Flux role created, updated, or deleted | name: role namedescription: role descriptionfull_access: always null for Flux rolessnapshot (delete only): last known role fields (see Delete Snapshots) |
| Permission Role Events | ||
managepermissionrole:createmanagepermissionrole:updatemanagepermissionrole:delete | Management role permission created, updated, or deleted | role_key: key of the rolecontent_type: permission typeactions: allowed actions listall_objects: whether applies to all objectssnapshot (delete only): last known permission fields (see Delete Snapshots) |
fluxpermissionrole:createfluxpermissionrole:updatefluxpermissionrole:delete | Flux role permission created, updated, or deleted | role_key: key of the rolecontent_type: permission typeactions: allowed actions listall_objects: whether applies to all objectssnapshot (delete only): last known permission fields (see Delete Snapshots) |
| Global Entity Events | ||
project:deletecustomer:delete | Project or organization deleted | snapshot: last known fields (see Delete Snapshots) |
Delete Snapshots
When an entity is deleted, events include a metadata.snapshot object with the last known public fields for that entity. The snapshot is intentionally minimal and excludes large payloads.
| Entity | Snapshot Fields |
|---|---|
environment | name, host, project_key, project_id, customer_key, block_reason, block_last_state_enabled, protected_by_user_uid |
project | name, gdpr, customer_key, region_key, region_code, region_name |
customer | name, legal_name, tax_num, city, province, country_iso, zip_code, block_reason, owner_uid |
folder | name, folder_type, content_type, alias, path, strict_reference |
component | name, description, content_type, is_component, current_version_key, nested_schemas |
version | version_number, name, description |
resource | name, content_type, document_id, component_key, resource_owner_key, current_revision_key |
revision | number, size, status, is_valid, version_key |
api | name, description, prefix, version, is_auth_required |
manageapikey / fluxapikey | description, public_key, role_key |
envrole / fluxrole | name, description, full_access |
managepermissionrole / fluxpermissionrole | role_key, content_type, actions, all_objects |
locale | code, name, is_default |
List Environment Events
Retrieves events for a specific environment. Returns a paginated list of changes made to environment-scoped entities, ordered by timestamp (newest first by default).
Success Response: 200 OK
Query Parameters
- Name
event_type- Type
- string
- Description
Filter by event type
- Values:
create,update,delete - Operator:
exact
- Values:
- Name
entity_type- Type
- string
- Description
Filter by entity type
- Values:
folder,resource,revision,component,version,api,manageapikey,fluxapikey,managepermissionrole,fluxpermissionrole,envrole,fluxrole,locale - Operator:
exact
- Values:
- Name
entity_key- Type
- string
- Description
Filter by specific entity key
- Operator:
exact
- Operator:
- Name
referer- Type
- string
- Description
Filter by HTTP Referer
- Operator:
exact
- Operator:
- Name
ip_address- Type
- string
- Description
Filter by request IP address
- Operator:
exact
- Operator:
- Name
actor_type- Type
- string
- Description
Filter by actor type
- Values:
user,apikey - Operator:
exact
- Values:
- Name
actor_key- Type
- string
- Description
Filter by actor key (user key or API key). Requires
actor_type.- Operator:
exact
- Operator:
- Name
folder_key- Type
- string
- Description
Filter events related to a specific folder
- Name
resource_key- Type
- string
- Description
Filter events related to a specific resource
- Name
schema_key- Type
- string
- Description
Filter events related to a specific schema
- Name
api_key- Type
- string
- Description
Filter events related to a specific Flux API
- Name
from_timestamp- Type
- datetime
- Description
Filter events from this timestamp (inclusive)
- Format: ISO 8601 (e.g.,
2024-01-15T00:00:00Z)
- Format: ISO 8601 (e.g.,
- Name
to_timestamp- Type
- datetime
- Description
Filter events until this timestamp (inclusive)
- Format: ISO 8601 (e.g.,
2024-01-15T23:59:59Z)
- Format: ISO 8601 (e.g.,
- Name
limit- Type
- integer
- Default
- default:100
- Description
Number of events per page
- Minimum: 1
- Maximum: 100
- Name
offset- Type
- integer
- Default
- default:0
- Description
Number of events to skip before starting the page
Ordering
- Name
timestamp- Type
- datetime
- Description
Order by event timestamp
- Use
?ordering=timestampfor ascending (oldest first) - Use
?ordering=-timestampfor descending (newest first, default)
- Use
Errors
- Name
401 Unauthorized- Description
Authentication credentials are missing or invalid.
authentication_failed- authentication credentials were not provided or are invalid
- Name
403 Forbidden- Description
Insufficient permissions to view events.
permission_denied- insufficient permissions to perform this action
- Name
404 Not Found- Description
The specified resource could not be found. Specific codes:
environment_not_found- the specified environment does not existfolder_not_found- the specified folder does not existresource_not_found- the specified resource does not existschema_not_found- the specified schema does not existapi_not_found- the specified API does not exist
- Name
422 Unprocessable Content- Description
Validation error. Specific codes:
validation_error- invalid query parameters
Request
curl https://api.foxnose.net/v1/7c9h4pwu/events/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..."
Response
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "2024-01-15T14:30:00Z",
"event_type": "update",
"entity_type": "resource",
"entity_key": "xK9mP2nQvR3s",
"actor_type": "user",
"actor": {
"key": "uS4tV5wX6yZ7",
"email": "john@example.com",
"first_name": "John",
"last_name": "Doe",
"full_name": "John Doe",
"deleted_at": null
},
"ip_address": "192.168.1.100",
"referer": "app.foxnose.net",
"metadata": null
},
{
"key": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"timestamp": "2024-01-15T10:15:00Z",
"event_type": "create",
"entity_type": "folder",
"entity_key": "mK8nP3tYvBcX",
"actor_type": "apikey",
"actor": {
"key": "aK1bC2dE3fG4",
"description": "CI/CD Pipeline Key",
"public_key": "pk_live_abc123",
"role": "rL5mN6oP7qR8",
"created_at": "2024-01-01T00:00:00Z",
"environment": "7c9h4pwu",
"deleted_at": null
},
"ip_address": "10.0.0.50",
"referer": null,
"metadata": null
}
]
}
List Global Events
Retrieves organization-level events. Returns a paginated list of changes made to global entities such as users and projects. Requires organization admin access.
Success Response: 200 OK
Query Parameters
- Name
event_type- Type
- string
- Description
Filter by event type
- Values:
create,update,delete - Operator:
exact
- Values:
- Name
entity_type- Type
- string
- Description
Filter by entity type
- Values:
user,customer,project,environment - Operator:
exact
- Values:
- Name
entity_key- Type
- string
- Description
Filter by specific entity key
- Operator:
exact
- Operator:
- Name
referer- Type
- string
- Description
Filter by HTTP Referer
- Operator:
exact
- Operator:
- Name
actor_key- Type
- string
- Description
Filter by user key (global events only).
actor_typeis not required for global events.- Operator:
exact
- Operator:
- Name
ip_address- Type
- string
- Description
Filter by request IP address
- Operator:
exact
- Operator:
- Name
project_key- Type
- string
- Description
Filter events related to a specific project
- Name
from_timestamp- Type
- datetime
- Description
Filter events from this timestamp (inclusive)
- Format: ISO 8601 (e.g.,
2024-01-15T00:00:00Z)
- Format: ISO 8601 (e.g.,
- Name
to_timestamp- Type
- datetime
- Description
Filter events until this timestamp (inclusive)
- Format: ISO 8601 (e.g.,
2024-01-15T23:59:59Z)
- Format: ISO 8601 (e.g.,
- Name
limit- Type
- integer
- Default
- default:100
- Description
Number of events per page
- Minimum: 1
- Maximum: 100
- Name
offset- Type
- integer
- Default
- default:0
- Description
Number of events to skip before starting the page
Ordering
- Name
timestamp- Type
- datetime
- Description
Order by event timestamp
- Use
?ordering=timestampfor ascending (oldest first) - Use
?ordering=-timestampfor descending (newest first, default)
- Use
Errors
- Name
401 Unauthorized- Description
Authentication credentials are missing or invalid.
authentication_failed- authentication credentials were not provided or are invalid
- Name
403 Forbidden- Description
Insufficient permissions. Organization admin access required.
permission_denied- insufficient permissions to perform this action
- Name
404 Not Found- Description
The specified resource could not be found. Specific codes:
project_not_found- the specified project does not exist
- Name
422 Unprocessable Content- Description
Validation error. Specific codes:
validation_error- invalid query parameters
Request
curl https://api.foxnose.net/v1/global-events/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..."
Response
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"key": "c3d4e5f6-a7b8-9012-cdef-345678901234",
"timestamp": "2024-01-15T16:45:00Z",
"event_type": "create",
"entity_type": "user",
"entity_key": "uN7oP8qR9sT0",
"actor_type": "user",
"actor": {
"key": "uS4tV5wX6yZ7",
"email": "admin@example.com",
"first_name": "Admin",
"last_name": "User",
"full_name": "Admin User",
"deleted_at": null
},
"ip_address": "192.168.1.1",
"referer": "app.foxnose.net",
"metadata": null
},
{
"key": "d4e5f6a7-b8c9-0123-defa-456789012345",
"timestamp": "2024-01-14T09:30:00Z",
"event_type": "update",
"entity_type": "project",
"entity_key": "pR3jK4tL5mN6",
"actor_type": "user",
"actor": {
"key": "uS4tV5wX6yZ7",
"email": "admin@example.com",
"first_name": "Admin",
"last_name": "User",
"full_name": "Admin User",
"deleted_at": null
},
"ip_address": "192.168.1.1",
"referer": "app.foxnose.net",
"metadata": null
}
]
}