# Fibery

Fibery is a work management platform designed to help teams collaborate, organize information, and manage their workflows.

- **Category:** project management
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 26
- **Triggers:** 0
- **Slug:** `FIBERY`
- **Version:** 20260312_00

## Tools

### Delete Custom App Endpoint

**Slug:** `FIBERY_DELETE_CUSTOM_APP_ENDPOINT`

Tool to delete a specific custom app endpoint. Use after confirming the app and endpoint IDs to remove.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `app_id` | string | Yes | Identifier of the custom app containing the endpoint |
| `endpoint_id` | string | Yes | Identifier of the custom endpoint to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Entity

**Slug:** `FIBERY_DELETE_ENTITY`

Permanently delete a Fibery entity by its UUID and type. Use this action when you need to remove an entity from the workspace. Requires both the entity's UUID and its full qualified type name. WARNING: Deletion is irreversible. Example: Delete a task with entity_id='550e8400-e29b-41d4-a716-446655440000' and type='Tasks/Task'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | Yes | Full qualified type name in 'Namespace/Type' format (e.g., 'Tasks/Task', 'Product Discovery/Feature'). This must match the entity's type exactly. Use Get Entities action to find existing types. |
| `entity_id` | string | Yes | The UUID (GUID) of the entity to delete in 8-4-4-4-12 hexadecimal format (e.g., '550e8400-e29b-41d4-a716-446655440000'). Use Get Entities or Get Entity actions to retrieve valid entity IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete File

**Slug:** `FIBERY_DELETE_FILE`

Delete a file from Fibery storage using its secret identifier. Use this action to permanently remove an uploaded file. You must provide the file's secret (fibery/secret), not its ID (fibery/id). The secret is returned when you upload a file or can be queried via the commands API.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file_secret` | string | Yes | The secret (fibery/secret) of the file to delete. This is NOT the file ID (fibery/id). When you upload a file, use the 'secret' field from the response. When querying files via commands API, request the 'fibery/secret' field. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Execute GraphQL Query

**Slug:** `FIBERY_EXECUTE_GRAPH_QL_QUERY`

Execute GraphQL queries or mutations against a Fibery workspace. Fibery organizes data into Spaces, each with its own GraphQL schema containing entity types and operations. This action automatically tries common space names if no space is specified, making it easy to use without prior knowledge. Best practices: - Start with introspection queries to discover schema: { __schema { types { name } } } - Use { __type(name: "Query") { fields { name } } } to see available queries - Space names typically match your workspace app/database names - The action returns both data and errors (GraphQL can return partial results)

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | GraphQL query or mutation string to execute. For schema discovery, use introspection: '{ __schema { types { name } } }' to list all types, or '{ __type(name: "Query") { fields { name } } }' to see available query operations. Standard queries follow the pattern: { queryName(args) { fields } } |
| `space` | string | No | Name of the Fibery space to query. Each space has its own GraphQL schema with different entity types. If not provided, the action will automatically try common space names (e.g., 'Software Development', 'workflow', 'Product'). Spaces typically match your workspace's app/database names. |
| `variables` | object | No | Optional mapping of variable names to values for parameterized GraphQL queries. |
| `operationName` | string | No | Optional operation name when the query document contains multiple named operations. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get App Information

**Slug:** `FIBERY_GET_APP_INFO`

Tool to retrieve application information. Use when you need the version, name, description, authentication methods, and available data sources before further operations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `appId` | string | No | Optional custom app id to resolve app info via Fibery workspace proxy when base_url ends with /api. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom App Endpoints

**Slug:** `FIBERY_GET_CUSTOM_APP_ENDPOINTS`

Tool to list custom app endpoints. Use when you need the available custom endpoints for a given app before invoking them.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `app_id` | string | Yes | Identifier of the custom Fibery app whose endpoints will be retrieved |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Custom Apps

**Slug:** `FIBERY_GET_CUSTOM_APPS`

Tool to list all custom apps in the Fibery workspace. Use when you need the identifiers of all custom apps.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of custom apps to return (required by Fibery q/limit). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Entities (Deprecated)

**Slug:** `FIBERY_GET_ENTITIES`

DEPRECATED: Use PostFetchData instead. Query Fibery entities from a specified database type with flexible filtering and pagination. Use this to retrieve entities (records) from Fibery databases. Common types include: - 'fibery/user' - workspace users - 'YourSpace/YourType' - custom databases in your workspace IMPORTANT - Field Selection: - PRIMITIVE fields (text, numbers, dates, bools) are selected as strings: ["fibery/id", "user/name"] - RELATION fields (entity references) require nested object syntax: * Single relations: [{"assigned-to": ["fibery/id", "user/name"]}] * Collections: [{"tasks": {"q/select": ["fibery/id", "task/name"], "q/limit": 10}}] - Selecting a relation field as a string will cause "field is not primitive" error The query uses Fibery's Commands API with fibery.entity/query command.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `from` | string | Yes | Full database/type name in 'Namespace/Type' format. Common system types: 'fibery/user', 'fibery/app'. Custom types follow pattern 'YourSpace/YourType' like 'Product/Feature', 'Project/Task'. Use FIBERY_POST_FETCH_SCHEMA to discover available types. |
| `limit` | integer | No | Maximum number of entities to return. Defaults to 100 to prevent oversized responses. |
| `where` | array | No | Optional filter expression using Fibery query syntax. Format: [operator, [field-path], value]. Operators: '=' (equals), '!=' (not equals), '>' (greater), '<' (less), '>=' (gte), '<=' (lte), 'and', 'or', 'not'. Literal values are automatically parameterized (you can also use $-prefixed variables with 'params'). Numeric values for text fields like 'fibery/public-id' are auto-converted to strings. Examples: ['=', ['fibery/id'], '$userId'] or ['>', ['task/priority'], 5] or ['and', ['=', ['status'], 'active'], ['>', ['priority'], 3]] |
| `offset` | integer | No | Number of entities to skip for pagination |
| `params` | object | No | Parameter bindings for $-prefixed variables used in 'where' clause. Map variable names to values, e.g., {'$userId': 'uuid-string', '$minPriority': 5}. Literal values in 'where' are auto-parameterized, so this field is optional unless you explicitly use $-variables. |
| `select` | array | Yes | List of fields to return. PRIMITIVE fields (text, number, date, bool, etc.) are specified as strings. RELATION fields (entity references) require nested object syntax: {'field-name': ['subfield1', 'subfield2']} for single relations, or {'field-name': {'q/select': [...], 'q/limit': 'q/no-limit'}} for collections. Common primitive fields: 'fibery/id', 'fibery/creation-date', 'fibery/public-id', type-specific like 'user/name'. For single-select enums use {'enum-field': ['enum/name']}. Use FIBERY_POST_FETCH_SCHEMA to discover field types (check fibery/primitive? in schema). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Fibery Entity (Deprecated)

**Slug:** `FIBERY_GET_ENTITY`

DEPRECATED: Use PostFetchData instead. Retrieve a single Fibery entity by its unique identifier. Use this tool when you need to fetch details of a specific entity whose ID you already know. This is useful for: - Getting full details of an entity after listing entities with FIBERY_GET_ENTITIES - Refreshing entity data after an update - Fetching specific fields of an entity using the 'expand' parameter The entity_id must combine the type name and UUID (e.g., 'fibery/user/<uuid>'). Use FIBERY_GET_ENTITIES first if you need to discover entity IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | array | No | Optional list of field names to include in the response. By default, only 'fibery/id' is returned. Specify additional fields using their fully-qualified names in '<namespace>/<field>' format. Common fields include: 'fibery/name', 'fibery/public-id', 'fibery/creation-date', 'fibery/modification-date'. For type-specific fields, use the type's namespace, e.g., 'user/name', 'user/email' for users, or 'Task/Status', 'Task/Assignee' for custom types. |
| `entity_id` | string | Yes | The unique entity identifier consisting of the fully-qualified type name followed by the entity UUID, separated by '/'. Format: '<Namespace>/<Type>/<UUID>'. For system types like users, use 'fibery/user/<uuid>'. For custom types, use the app namespace, e.g., 'Product Discovery/Feature/<uuid>' or 'Project Management/Task/<uuid>'. The UUID is a 36-character string (with hyphens). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get File

**Slug:** `FIBERY_GET_FILE`

Download a file from Fibery by its secret or ID. Use this tool to retrieve file content from Fibery storage. The file secret is a UUID that uniquely identifies a file and is the preferred identifier. You can obtain the file secret: - From the 'fibery/secret' field when querying entities that have file fields - From the 'url' field in upload file response (extract the UUID from the URL) - From rich text content where files are embedded as /api/files/{secret}

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fileId` | string | No | Unique ID of the file. IMPORTANT: The Fibery API does NOT support downloading files by ID - only file_secret works. This parameter is provided for backward compatibility but will likely fail. Always use file_secret when available. |
| `fileSecret` | string | No | Secret UUID of the file to retrieve. This is the preferred identifier for downloading files. You can obtain the file secret from the 'fibery/secret' field when querying entities with file fields, or from uploaded file metadata. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get GraphQL Schema

**Slug:** `FIBERY_GET_GRAPH_QL_SCHEMA`

Retrieves the GraphQL schema for the Fibery workspace using standard GraphQL introspection. Returns the schema as a JSON string that includes all types, queries, mutations, and their fields. Use this to discover available GraphQL operations before executing queries.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Preferences

**Slug:** `FIBERY_GET_USER_PREFERENCES`

Tool to retrieve the current user's UI preferences. Use after authentication to tailor UI to user settings.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Refresh access token

**Slug:** `FIBERY_POST_AUTH_REFRESH_TOKEN`

Tool to validate and refresh an access token. For Fibery's standard API, this validates the current token is still working (Fibery tokens don't expire). For OAuth2 integrations with third-party services, this could be used to refresh tokens through the validate endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `refresh_token` | string | Yes | The refresh token to validate and use for obtaining a new access token. For Fibery's standard API, this can be the current API token. For OAuth2 integrations, this should be the refresh token from the third-party service. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Validate Fibery authentication and get access token

**Slug:** `FIBERY_POST_AUTH_TOKEN`

Validates Fibery API authentication and returns the active access token. This action validates that your API token is working correctly by attempting to query the Fibery API. For standard Fibery workspaces, it validates the pre-configured API token from the Authorization header. Behavior: 1. First attempts OAuth2 password grant at /auth/token (rare, only custom installations) 2. If /auth/token returns 404 (standard case), validates existing token via /commands endpoint 3. Returns the validated token that can be used for subsequent API calls The returned access_token should be used in the header: `Authorization: Token <access_token>` Note: Most Fibery workspaces use pre-generated API tokens (created in workspace settings), not username/password authentication. The username/password parameters are only used if a custom OAuth2 endpoint exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `password` | string | No | Password for OAuth2 password grant flow (only used if /auth/token endpoint exists; use placeholder for standard workspaces) |
| `username` | string | No | Username for OAuth2 password grant flow (only used if /auth/token endpoint exists; use placeholder for standard workspaces) |
| `grant_type` | string | No | OAuth2 grant type (fixed as 'password') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Entity

**Slug:** `FIBERY_POST_CREATE_ENTITY`

Tool to create a new Fibery entity. Use when you have prepared all necessary field values and need to persist a new record. Example: Create a 'Project/Task' with title and assignee.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | Yes | Full qualified type name for the entity, e.g., 'App/Type'. |
| `entity` | object | Yes | Field values for the new entity. Relations must be provided as objects with 'fibery/id' keys, e.g., {'assignee': {'fibery/id': '<uuid>'}} or arrays of such objects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Entities (Deprecated)

**Slug:** `FIBERY_POST_FETCH_DATA`

DEPRECATED: Use FIBERY_GET_ENTITIES instead. Fetch entities from a Fibery workspace using flexible queries. This action retrieves entities of a specified type with support for: - Field selection (choose which fields to return) - Filtering with where clauses - Pagination with limit and offset - Parameterized queries for dynamic filtering Use FIBERY_POST_FETCH_SCHEMA to discover available entity types and their fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of entities to return. Defaults to 100. Use a large value like 10000 to fetch all entities. |
| `where` | array | No | Optional filter expression as a nested list. Format: ['operator', ['field/path'], value] or ['operator', ['field/path'], '$param']. Use with 'params' for parameterized queries. |
| `offset` | integer | No | Number of entities to skip for pagination. |
| `params` | object | No | Parameter bindings for variables used in 'where' clause. Keys should match $variable names in the where expression. |
| `select` | array | No | List of field names to include in the response. Must use 'Namespace/field-name' format matching the schema. If omitted, only 'fibery/id' is returned. Common fields: 'fibery/id', 'fibery/name', 'fibery/creation-date'. Use FIBERY_POST_FETCH_SCHEMA to see available fields for each type. |
| `source` | string | Yes | The Fibery entity type to query, in 'Namespace/Type' format (e.g., 'fibery/user', 'Project/Task'). System types use the 'fibery/' namespace. Custom app types use the app name as namespace. Use FIBERY_POST_FETCH_SCHEMA to discover available types in your workspace. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Count Entities by Type

**Slug:** `FIBERY_POST_FETCH_DATA_COUNT`

Count the total number of entities for a given Fibery type (database). This tool queries the Fibery workspace to return how many entities exist for the specified type. Use it to get totals like "how many users", "how many features", etc. Authentication: Requires a valid Fibery API token with read access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | object | No | Optional filter object for custom-app endpoints. Note: This action counts all entities of the type. For filtered counts, use Get Entities with a where clause. |
| `source` | string | Yes | Full Fibery type name in 'Namespace/Type' format. Examples: 'fibery/user', 'Product/Feature', 'Sales/Lead'. Use Post Fetch Schema or Get Entities to discover available types. |
| `account` | object | No | Optional account/credentials object for custom-app endpoints. Not required when using workspace API token authentication. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Datalist Options

**Slug:** `FIBERY_POST_FETCH_DATA_LIST`

Fetches distinct values for a specific field from a Fibery entity type. Returns a list of unique options that can be used for filtering, dropdowns, or autocomplete. Queries the entity type and extracts distinct field values, useful for building dynamic filters or selection lists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `field` | string | Yes | Field identifier to fetch distinct values for. Use fully-qualified field names in 'Namespace/FieldName' format. Note: for system entity 'fibery/user', fields use 'user/' prefix (e.g., 'user/name'), while 'fibery/id' works for all entities. |
| `source` | string | Yes | Full Fibery entity type name in 'Namespace/Type' format. Use the workspace schema to discover available types. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Fetch Schema

**Slug:** `FIBERY_POST_FETCH_SCHEMA`

Fetch the complete schema metadata for a Fibery workspace. Returns all types (entities) and their fields, including system types (fibery/user, fibery/app) and user-defined types (MySpace/Task, etc.). Use this to discover available types before querying data or to understand the structure of your workspace.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `with_description` | boolean | No | Include field descriptions in the response |
| `with_soft_deleted` | boolean | No | Include soft-deleted types and fields in the response |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Exchange OAuth2 authorization code

**Slug:** `FIBERY_POST_OAUTH2_ACCESS_TOKEN`

Exchange an OAuth2 authorization code for access and refresh tokens. This action is used during the final step of the OAuth2 authorization code flow when building Fibery custom integration apps. After a user authorizes your app on a third-party service and is redirected back with an authorization code, use this endpoint to exchange that code for access tokens. Important: This endpoint is typically implemented by YOUR custom integration app (connector), not by Fibery itself. The action probes multiple common endpoint paths across your app's base URL and Fibery's OAuth service to maximize compatibility. Typical flow: 1. User initiates OAuth authorization via /oauth2/v1/authorize 2. User approves on the third-party service 3. Third-party redirects to callback_uri with an authorization code 4. Call THIS endpoint with the code to get access/refresh tokens

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | The authorization code received after user authorizes the OAuth2 request. This code is typically obtained from the redirect URL after user consent. |
| `grant_type` | string | No | OAuth2 grant type. For authorization code flow, this must be 'authorization_code'. |
| `redirect_uri` | string | Yes | The redirect URI (callback URL) that was used in the initial authorization request. Must match exactly the URI registered with the OAuth2 provider. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete/Revoke Access Token

**Slug:** `FIBERY_POST_REVOKE_TOKEN`

Delete/revoke an existing Fibery API access token by its ID. Uses the DELETE /api/tokens/:token_id endpoint to permanently remove an API token. Important: This endpoint typically requires cookie-based authentication (browser session). When using API token authentication, you may receive a 401 Unauthorized error. Use this when you need to invalidate a specific API token, such as during security rotation or when revoking access for a specific integration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `token_id` | string | Yes | The unique ID of the API token to delete/revoke. This is the token's identifier (e.g., '12345678'), not the token value itself. You can get token IDs by listing tokens via GET /api/tokens. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Validate Fibery Workspace Credentials

**Slug:** `FIBERY_POST_VALIDATE_ACCOUNT`

Validates Fibery workspace credentials by performing a test API query to retrieve the authenticated user's name. This action verifies that the provided credentials (or existing metadata credentials) are valid and have access to the workspace. Use this to confirm authentication before executing other Fibery operations. Supports multiple authentication types: workspace tokens, API keys, basic auth, and OAuth2.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Authentication type identifier. Supported values: 'basic' (username/password), 'token' (API token), 'api_key' or 'api-key' (API key), 'workspace' (workspace token), or 'oauth2' (OAuth2 bearer token). When fields dict is empty, uses the existing authorization from metadata. |
| `fields` | object | No | Credential fields for the authentication type. Can be empty {} to use existing metadata credentials. For 'basic': {'username': str, 'password': str}. For 'token'/'api_key': {'token': str} or {'api_key': str}. For 'oauth2': {'access_token': str, 'expire_on': str (optional ISO 8601 datetime)}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Validate Filter

**Slug:** `FIBERY_POST_VALIDATE_FILTER`

Validates filter definitions before executing data queries. Use this tool to verify that a filter's structure and syntax are correct without actually fetching data. For Fibery workspaces: Validates by executing a safe test query with limit=1. For custom apps: Calls the app's POST /validate/filter endpoint if available. Returns validation result indicating whether the filter can be safely used.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | object | Yes | Filter definition to validate. For Fibery workspaces, use Fibery query keys: 'q/select' (list of fields), 'q/where' (filter conditions), 'q/limit' (max results), 'q/offset' (pagination), and 'params' (query parameters). For custom apps, structure depends on the app's filter schema. |
| `source` | string | Yes | Data source identifier. For Fibery workspaces, use the full type name (e.g., 'fibery/user', 'Project Management/Task'). For custom apps, use the source ID as defined in the app's GET / response. |
| `account` | object | No | Account credentials for custom app authentication. Not required for Fibery workspace queries (workspace auth is handled via headers). For custom apps, include credentials as defined by the app's auth schema. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Entity

**Slug:** `FIBERY_UPDATE_ENTITY`

Update an existing Fibery entity's fields. Use this to modify text fields, numbers, single-select states, workflow states, or relation fields on an entity. Prerequisites: - You need the entity's UUID (fibery/id) - obtain via Get Entities or Create Entity. - You need the fully-qualified type name (e.g., 'Engineering/Task'). - For workflow/state fields, you need the state's UUID. Limitations: - Rich text fields cannot be updated via this command. - Entity collection fields should be updated after entity creation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | Yes | Fully-qualified Type name in 'Space/Type' format. Example: 'Product Discovery/Opportunity', 'Engineering/Task', 'HR/Employee'. Use the Get Entities or Fetch Schema action to discover available types. |
| `fields` | object | Yes | Mapping of field API names (in 'Space/FieldName' format) to new values. For text fields: use strings. For numbers: use integers or floats. For single-select/workflow states: use {'fibery/id': '<state-uuid>'}. For relations (single): use {'fibery/id': '<entity-uuid>'}. For relations (multiple): use [{'fibery/id': '<uuid1>'}, {'fibery/id': '<uuid2>'}]. IMPORTANT: Rich text fields (like description, notes, etc.) CANNOT be updated via this action. Rich text fields are collaborative documents that require: (1) querying for the field's fibery/secret, then (2) updating via the /api/documents/commands endpoint with the 'create-or-update-documents' command. Use a dedicated rich text update action or the documents API directly. |
| `entity_id` | string | Yes | The UUID of the entity to update in standard format (8-4-4-4-12 hex). Obtain this from a previous Get Entity or Create Entity response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update User Preferences

**Slug:** `FIBERY_UPDATE_USER_PREFERENCES`

Tool to update the current user's preferences by using the Commands API. It fetches the current user id and preferences, merges the provided payload, and writes back the merged object into 'fibery/ui-preferences' of the current fibery/user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `preferences` | object | Yes | Dictionary of preference keys and values to merge into existing preferences. Common keys: 'firstDayOfWeek' (1=Monday to 7=Sunday), 'weekends' (list of day numbers), 'isoWeekends' (e.g., [6, 7]). Custom keys are also supported. Values are deep-merged with existing preferences. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload File

**Slug:** `FIBERY_UPLOAD_FILE`

Upload a file to Fibery's file storage. Use this action to upload files that can later be attached to entities or used in documents. Returns file metadata including the file ID and secret needed for subsequent operations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | The file to upload to Fibery. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
