Frontegg ReBAC API

The ReBAC API from Frontegg — 9 operation(s) for rebac.

Documentation

Specifications

Other Resources

OpenAPI Specification

frontegg-rebac-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Multi-Apps Overview Account Invitations ReBAC API
  description: Frontegg’s Multi-Apps feature simplifies and streamlines application management, delivering a seamless user experience. This section includes all necessary endpoints for managing applications and copying application settings across environments. All endpoints are categorized as **Management Endpoints**, requiring environment-level authorization and providing full control over entitlement resources.
  version: '1.0'
  x-metadata:
    note: Trigger publish artifacts job, remove this x-metadata after publishing
servers:
- url: https://api.frontegg.com/applications
  description: EU Region
- url: https://api.us.frontegg.com/applications
  description: US Region
- url: https://api.ca.frontegg.com/applications
  description: CA Region
- url: https://api.au.frontegg.com/applications
  description: AU Region
- url: https://{domain}.frontegg.com/applications
  description: Frontegg sub-domain for use with user tokens
  variables:
    domain:
      default: app-xxx
tags:
- name: ReBAC
  x-displayName: ReBAC
paths:
  /resources/entity-types/v1:
    servers:
    - url: https://api.frontegg.com/entitlements
      description: EU Region
    - url: https://api.us.frontegg.com/entitlements
      description: US Region
    - url: https://api.ca.frontegg.com/entitlements
      description: CA Region
    - url: https://api.au.frontegg.com/entitlements
      description: AU Region
    - url: https://{domain}.frontegg.com/entitlements
      description: Frontegg sub-domain for use with user tokens
      variables:
        domain:
          default: app-xxx
    get:
      operationId: EntityTypesV1Controller_getEntityTypes
      summary: Get Entity Types
      description: List all entity types in your schema.
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedEntityTypesResponse'
      tags:
      - ReBAC
      security:
      - bearer: []
    post:
      operationId: EntityTypesV1Controller_createEntityType
      summary: Create Entity Type
      description: Create a new entity type (e.g. document, folder, project).
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityTypeRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityTypeResponse'
      tags:
      - ReBAC
      security:
      - bearer: []
  /resources/entity-types/v1/{key}:
    servers:
    - url: https://api.frontegg.com/entitlements
      description: EU Region
    - url: https://api.us.frontegg.com/entitlements
      description: US Region
    - url: https://api.ca.frontegg.com/entitlements
      description: CA Region
    - url: https://api.au.frontegg.com/entitlements
      description: AU Region
    - url: https://{domain}.frontegg.com/entitlements
      description: Frontegg sub-domain for use with user tokens
      variables:
        domain:
          default: app-xxx
    get:
      operationId: EntityTypesV1Controller_getEntityType
      summary: Get Entity Type
      description: Retrieve an entity type along with its relations and actions.
      parameters:
      - name: key
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityTypeOneResponse'
      tags:
      - ReBAC
      security:
      - bearer: []
    patch:
      operationId: EntityTypesV1Controller_updateEntityType
      summary: Update Entity Type
      description: Update an existing entity type.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityTypeRequest'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityTypeResponse'
      tags:
      - ReBAC
      security:
      - bearer: []
    delete:
      operationId: EntityTypesV1Controller_deleteEntityType
      summary: Delete Entity Type
      description: Deletes an entity type and all its schema definitions.
      parameters: []
      responses:
        '204':
          description: ''
      tags:
      - ReBAC
      security:
      - bearer: []
  /resources/entity-types/v1/{key}/actions:
    servers:
    - url: https://api.frontegg.com/entitlements
      description: EU Region
    - url: https://api.us.frontegg.com/entitlements
      description: US Region
    - url: https://api.ca.frontegg.com/entitlements
      description: CA Region
    - url: https://api.au.frontegg.com/entitlements
      description: AU Region
    - url: https://{domain}.frontegg.com/entitlements
      description: Frontegg sub-domain for use with user tokens
      variables:
        domain:
          default: app-xxx
    post:
      operationId: EntityTypesActionsV1Controller_createEntityTypeActions
      summary: Create Entity Type Actions
      description: Creates an action on an entity type and defines, via relationKeys, how permission is granted directly or through hierarchical relationships.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityTypeActionsRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntityTypeActionsResponse'
      tags:
      - ReBAC
      security:
      - bearer: []
  /resources/entity-types/v1/{key}/actions/{actionKey}:
    servers:
    - url: https://api.frontegg.com/entitlements
      description: EU Region
    - url: https://api.us.frontegg.com/entitlements
      description: US Region
    - url: https://api.ca.frontegg.com/entitlements
      description: CA Region
    - url: https://api.au.frontegg.com/entitlements
      description: AU Region
    - url: https://{domain}.frontegg.com/entitlements
      description: Frontegg sub-domain for use with user tokens
      variables:
        domain:
          default: app-xxx
    patch:
      operationId: EntityTypesActionsV1Controller_updateEntityTypeAction
      summary: Update Entity Type Action
      description: Update an existing action's relation mappings.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityTypeActionUpdateRequest'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityTypeActionsResponse'
      tags:
      - ReBAC
      security:
      - bearer: []
    delete:
      operationId: EntityTypesActionsV1Controller_deleteEntityTypeAction
      summary: Delete Entity Type Action
      description: Remove an action from an entity type.
      parameters: []
      responses:
        '204':
          description: ''
      tags:
      - ReBAC
      security:
      - bearer: []
  /resources/entity-types/v1/{key}/relations:
    servers:
    - url: https://api.frontegg.com/entitlements
      description: EU Region
    - url: https://api.us.frontegg.com/entitlements
      description: US Region
    - url: https://api.ca.frontegg.com/entitlements
      description: CA Region
    - url: https://api.au.frontegg.com/entitlements
      description: AU Region
    - url: https://{domain}.frontegg.com/entitlements
      description: Frontegg sub-domain for use with user tokens
      variables:
        domain:
          default: app-xxx
    post:
      operationId: EntityTypesRelationsV1Controller_createEntityTypeRelations
      summary: Create Entity Type Relations
      description: Define schema-level relation types (e.g. reader, owner, parent) and which entity types can be subjects.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityTypeRelationsRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntityTypeRelationResponse'
      tags:
      - ReBAC
      security:
      - bearer: []
  /resources/entity-types/v1/{key}/relations/{relationKey}:
    servers:
    - url: https://api.frontegg.com/entitlements
      description: EU Region
    - url: https://api.us.frontegg.com/entitlements
      description: US Region
    - url: https://api.ca.frontegg.com/entitlements
      description: CA Region
    - url: https://api.au.frontegg.com/entitlements
      description: AU Region
    - url: https://{domain}.frontegg.com/entitlements
      description: Frontegg sub-domain for use with user tokens
      variables:
        domain:
          default: app-xxx
    patch:
      operationId: EntityTypesRelationsV1Controller_updateEntityTypeRelation
      summary: Update Entity Type Relation
      description: Modify a relation's allowed subject entity types.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityTypeRelationUpdateRequest'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityTypeRelationResponse'
      tags:
      - ReBAC
      security:
      - bearer: []
    delete:
      operationId: EntityTypesRelationsV1Controller_deleteEntityTypeRelation
      summary: Delete Entity Type Relation
      description: Remove a relation definition from an entity type.
      parameters: []
      responses:
        '204':
          description: ''
      tags:
      - ReBAC
      security:
      - bearer: []
  /resources/relations/v1/assignments:
    servers:
    - url: https://api.frontegg.com/entitlements
      description: EU Region
    - url: https://api.us.frontegg.com/entitlements
      description: US Region
    - url: https://api.ca.frontegg.com/entitlements
      description: CA Region
    - url: https://api.au.frontegg.com/entitlements
      description: AU Region
    - url: https://{domain}.frontegg.com/entitlements
      description: Frontegg sub-domain for use with user tokens
      variables:
        domain:
          default: app-xxx
    get:
      operationId: RelationsV1Controller_getRelationAssignments
      summary: Get Relation Assignments
      description: List all instance-level relationship assignments.
      parameters:
      - name: offset
        required: false
        in: query
        example: 0
        schema:
          default: 0
          type: integer
      - name: limit
        required: false
        in: query
        example: 10
        schema:
          default: 10
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedRelationAssignmentsResponse'
      tags:
      - ReBAC
      security:
      - bearer: []
  /resources/relations/v1/assign:
    servers:
    - url: https://api.frontegg.com/entitlements
      description: EU Region
    - url: https://api.us.frontegg.com/entitlements
      description: US Region
    - url: https://api.ca.frontegg.com/entitlements
      description: CA Region
    - url: https://api.au.frontegg.com/entitlements
      description: AU Region
    - url: https://{domain}.frontegg.com/entitlements
      description: Frontegg sub-domain for use with user tokens
      variables:
        domain:
          default: app-xxx
    post:
      operationId: RelationsV1Controller_createRelationAssignments
      summary: Create Relation Assignments
      description: Create relation assignments (instance-level relationships). E.g., "User A is a reader of Document 1".
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RelationAssignmentsRequest'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RelationAssignmentDto'
      tags:
      - ReBAC
      security:
      - bearer: []
  /resources/relations/v1/unassign:
    servers:
    - url: https://api.frontegg.com/entitlements
      description: EU Region
    - url: https://api.us.frontegg.com/entitlements
      description: US Region
    - url: https://api.ca.frontegg.com/entitlements
      description: CA Region
    - url: https://api.au.frontegg.com/entitlements
      description: AU Region
    - url: https://{domain}.frontegg.com/entitlements
      description: Frontegg sub-domain for use with user tokens
      variables:
        domain:
          default: app-xxx
    post:
      operationId: RelationsV1Controller_deleteRelationAssignments
      summary: Delete Relation Assignments
      description: Remove instance-level relationship assignments.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RelationAssignmentsRequest'
      responses:
        '204':
          description: ''
      tags:
      - ReBAC
      security:
      - bearer: []
components:
  schemas:
    EntityTypeRelationRequest:
      type: object
      properties:
        key:
          type: string
          example: reader
        subjectEntityKeys:
          example:
          - copywriter
          - customer
          type: array
          items:
            type: string
      required:
      - key
      - subjectEntityKeys
    EntityTypeRelationsRequest:
      type: object
      properties:
        relations:
          type: array
          items:
            $ref: '#/components/schemas/EntityTypeRelationRequest'
      required:
      - relations
    EntityTypeOneResponse:
      type: object
      properties:
        key:
          type: string
          readOnly: true
          example: document
        description:
          type: string
          readOnly: true
          example: Representation of a Word document file
        createdAt:
          type: string
          readOnly: true
          example: '2021-06-02T14:00:00.000Z'
          format: date-time
        relations:
          readOnly: true
          type: array
          items:
            type: string
        actions:
          readOnly: true
          type: array
          items:
            type: string
      required:
      - key
      - description
      - createdAt
      - relations
      - actions
    PagedRelationAssignmentsResponse:
      type: object
      properties:
        items:
          readOnly: true
          type: array
          items:
            $ref: '#/components/schemas/RelationAssignmentDto'
        hasNext:
          type: boolean
          readOnly: true
          example: false
      required:
      - items
      - hasNext
    RelationAssignmentRequestDto:
      type: object
      properties:
        subjectEntityTypeKey:
          type: string
          example: user
        subjectKey:
          type: string
          example: anthony@email-of.his
        relationKey:
          type: string
          example: reader
        targetEntityTypeKey:
          type: string
          example: document
        targetKey:
          type: string
          example: document-1.doc
        activeFrom:
          type: string
          example: '2024-01-01T00:00:00Z'
        activeUntil:
          type: string
          example: '2024-12-31T23:59:59Z'
      required:
      - subjectEntityTypeKey
      - subjectKey
      - relationKey
      - targetEntityTypeKey
      - targetKey
    EntityTypeRelationResponse:
      type: object
      properties:
        vendorId:
          type: string
          readOnly: true
          example: 123e4567-e89b-12d3-a456-426614174000
        targetEntityTypeKey:
          type: string
          readOnly: true
          example: book
        key:
          type: string
          readOnly: true
          example: reader
        subjectEntityTypeKeys:
          readOnly: true
          example:
          - copywriter
          - customer
          type: array
          items:
            type: string
      required:
      - vendorId
      - targetEntityTypeKey
      - key
      - subjectEntityTypeKeys
    EntityTypeResponse:
      type: object
      properties:
        key:
          type: string
          readOnly: true
          example: document
        description:
          type: string
          readOnly: true
          example: Representation of a Word document file
        createdAt:
          type: string
          readOnly: true
          example: '2021-06-02T14:00:00.000Z'
          format: date-time
      required:
      - key
      - description
      - createdAt
    EntityTypeRelationUpdateRequest:
      type: object
      properties:
        key:
          type: string
          example: reader
        subjectEntityKeys:
          example:
          - copywriter
          - customer
          type: array
          items:
            type: string
      required:
      - key
      - subjectEntityKeys
    RelationAssignmentsRequest:
      type: object
      properties:
        assignments:
          type: array
          items:
            $ref: '#/components/schemas/RelationAssignmentRequestDto'
      required:
      - assignments
    PagedEntityTypesResponse:
      type: object
      properties:
        hasNext:
          type: boolean
          readOnly: true
          example: true
        items:
          readOnly: true
          type: array
          items:
            $ref: '#/components/schemas/EntityTypeResponse'
      required:
      - hasNext
      - items
    EntityTypeActionsResponse:
      type: object
      properties:
        vendorId:
          type: string
          readOnly: true
          example: 123e4567-e89b-12d3-a456-426614174000
        entityTypeKey:
          type: string
          readOnly: true
          example: book
        key:
          type: string
          readOnly: true
          example: read
        relationKeys:
          readOnly: true
          example:
          - reader
          - writer
          - fromRelation: parent
            toAction: read
          type: array
          items:
            type: string
      required:
      - vendorId
      - entityTypeKey
      - key
      - relationKeys
    EntityTypeActionRequest:
      type: object
      properties:
        key:
          type: string
          example: read
        relationKeys:
          example:
          - reader
          - writer
          - fromRelation: parent
            toAction: read
          description: Array of relation keys (strings) or arrow syntax objects ({ fromRelation, toAction })
          type: array
          items:
            type: string
      required:
      - key
      - relationKeys
    EntityTypeActionUpdateRequest:
      type: object
      properties:
        key:
          type: string
          example: read
        relationKeys:
          example:
          - reader
          - writer
          - fromRelation: parent
            toAction: read
          description: Array of relation keys (strings) or arrow syntax objects ({ fromRelation, toAction })
          type: array
          items:
            type: string
      required:
      - key
      - relationKeys
    EntityTypeActionsRequest:
      type: object
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/EntityTypeActionRequest'
      required:
      - actions
    RelationAssignmentDto:
      type: object
      properties:
        subjectEntityTypeKey:
          type: string
          readOnly: true
          example: user
        subjectKey:
          type: string
          readOnly: true
          example: anthony@email-of.his
        relationKey:
          type: string
          readOnly: true
          example: reader
        targetEntityTypeKey:
          type: string
          readOnly: true
          example: document
        targetKey:
          type: string
          readOnly: true
          example: document-1.doc
        activeFrom:
          type: string
          example: '2024-01-01T00:00:00Z'
        activeUntil:
          type: string
          example: '2024-12-31T23:59:59Z'
      required:
      - subjectEntityTypeKey
      - subjectKey
      - relationKey
      - targetEntityTypeKey
      - targetKey
    EntityTypeRequest:
      type: object
      properties:
        key:
          type: string
          example: document
        description:
          type: string
          example: Representation of a Word document file
      required:
      - key
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
x-tagGroups:
- name: Management
  tags:
  - Applications settings