Codehooks · AsyncAPI Specification

Codehooks Events API

Version 1.0.0

Asynchronous event API for Codehooks serverless backend hooks and queue workers. Covers CRUD lifecycle hooks triggered on collection document operations and asynchronous queue worker processing for named topics.

View Spec View on GitHub BackendDatabaseEventsHooksJavaScriptNoSQLQueuesServerlessWebhooksWorkersWorkflowsAsyncAPIWebhooksEvents

Channels

collection/beforeCreate
subscribe onBeforeCreate
Before document creation hook
Triggered before a new document is created in a collection. Allows validation or transformation of the incoming document data.
collection/afterCreate
subscribe onAfterCreate
After document creation hook
Triggered after a new document has been successfully created in a collection.
collection/beforeRead
subscribe onBeforeRead
Before document read hook
Triggered before a document is read from a collection. Allows modification of query parameters or access control enforcement.
collection/afterRead
subscribe onAfterRead
After document read hook
Triggered after a document has been read from a collection. Allows transformation or filtering of the returned data.
collection/beforeUpdate
subscribe onBeforeUpdate
Before document update hook
Triggered before a document is updated in a collection. Allows validation or transformation of the update data.
collection/afterUpdate
subscribe onAfterUpdate
After document update hook
Triggered after a document has been successfully updated in a collection.
collection/beforeDelete
subscribe onBeforeDelete
Before document deletion hook
Triggered before a document is deleted from a collection. Allows validation or prevention of the deletion.
collection/afterDelete
subscribe onAfterDelete
After document deletion hook
Triggered after a document has been successfully deleted from a collection.
queue/{topic}
subscribe onQueueJob
Queue worker job processing
Queue worker channel for processing asynchronous jobs. Worker functions registered for a topic receive jobs enqueued via the REST API or internal triggers.

Messages

DocumentEvent
Document Event
Event payload containing a document from a Codehooks collection during CRUD lifecycle hooks.
ReadEvent
Read Event
Event payload containing query parameters for a read operation on a Codehooks collection.
DocumentUpdateEvent
Document Update Event
Event payload containing the update data and target document identifier during update hooks.
DeleteEvent
Delete Event
Event payload containing the document identifier targeted for deletion during delete hooks.
QueueJobEvent
Queue Job Event
Event payload for a queued job delivered to a worker function for asynchronous processing.

Servers

https
production https://{projectId}.api.codehooks.io/{space}
Codehooks serverless event endpoint

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: Codehooks Events API
  version: 1.0.0
  description: >-
    Asynchronous event API for Codehooks serverless backend hooks and queue
    workers. Covers CRUD lifecycle hooks triggered on collection document
    operations and asynchronous queue worker processing for named topics.
  contact:
    name: Codehooks
    url: https://codehooks.io/
  license:
    name: Proprietary
    url: https://codehooks.io/terms

servers:
  production:
    url: https://{projectId}.api.codehooks.io/{space}
    protocol: https
    description: Codehooks serverless event endpoint
    variables:
      projectId:
        default: myproject-ff00
        description: The project ID assigned to your Codehooks project
      space:
        default: dev
        description: The datastore space name (e.g. dev, staging, prod)

channels:
  collection/beforeCreate:
    description: >-
      Triggered before a new document is created in a collection. Allows
      validation or transformation of the incoming document data.
    subscribe:
      operationId: onBeforeCreate
      summary: Before document creation hook
      message:
        $ref: '#/components/messages/DocumentEvent'

  collection/afterCreate:
    description: >-
      Triggered after a new document has been successfully created in a
      collection.
    subscribe:
      operationId: onAfterCreate
      summary: After document creation hook
      message:
        $ref: '#/components/messages/DocumentEvent'

  collection/beforeRead:
    description: >-
      Triggered before a document is read from a collection. Allows
      modification of query parameters or access control enforcement.
    subscribe:
      operationId: onBeforeRead
      summary: Before document read hook
      message:
        $ref: '#/components/messages/ReadEvent'

  collection/afterRead:
    description: >-
      Triggered after a document has been read from a collection. Allows
      transformation or filtering of the returned data.
    subscribe:
      operationId: onAfterRead
      summary: After document read hook
      message:
        $ref: '#/components/messages/DocumentEvent'

  collection/beforeUpdate:
    description: >-
      Triggered before a document is updated in a collection. Allows
      validation or transformation of the update data.
    subscribe:
      operationId: onBeforeUpdate
      summary: Before document update hook
      message:
        $ref: '#/components/messages/DocumentUpdateEvent'

  collection/afterUpdate:
    description: >-
      Triggered after a document has been successfully updated in a collection.
    subscribe:
      operationId: onAfterUpdate
      summary: After document update hook
      message:
        $ref: '#/components/messages/DocumentEvent'

  collection/beforeDelete:
    description: >-
      Triggered before a document is deleted from a collection. Allows
      validation or prevention of the deletion.
    subscribe:
      operationId: onBeforeDelete
      summary: Before document deletion hook
      message:
        $ref: '#/components/messages/DeleteEvent'

  collection/afterDelete:
    description: >-
      Triggered after a document has been successfully deleted from a
      collection.
    subscribe:
      operationId: onAfterDelete
      summary: After document deletion hook
      message:
        $ref: '#/components/messages/DeleteEvent'

  queue/{topic}:
    description: >-
      Queue worker channel for processing asynchronous jobs. Worker functions
      registered for a topic receive jobs enqueued via the REST API or
      internal triggers.
    parameters:
      topic:
        description: The named queue topic
        schema:
          type: string
    subscribe:
      operationId: onQueueJob
      summary: Queue worker job processing
      message:
        $ref: '#/components/messages/QueueJobEvent'

components:
  messages:
    DocumentEvent:
      name: DocumentEvent
      title: Document Event
      summary: >-
        Event payload containing a document from a Codehooks collection
        during CRUD lifecycle hooks.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/DocumentEventPayload'

    ReadEvent:
      name: ReadEvent
      title: Read Event
      summary: >-
        Event payload containing query parameters for a read operation
        on a Codehooks collection.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/ReadEventPayload'

    DocumentUpdateEvent:
      name: DocumentUpdateEvent
      title: Document Update Event
      summary: >-
        Event payload containing the update data and target document
        identifier during update hooks.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/DocumentUpdateEventPayload'

    DeleteEvent:
      name: DeleteEvent
      title: Delete Event
      summary: >-
        Event payload containing the document identifier targeted for
        deletion during delete hooks.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/DeleteEventPayload'

    QueueJobEvent:
      name: QueueJobEvent
      title: Queue Job Event
      summary: >-
        Event payload for a queued job delivered to a worker function
        for asynchronous processing.
      contentType: application/json
      payload:
        $ref: '#/components/schemas/QueueJobEventPayload'

  schemas:
    DocumentEventPayload:
      type: object
      properties:
        collection:
          type: string
          description: The name of the collection the event pertains to.
        document:
          type: object
          additionalProperties: true
          description: The document data involved in the event.
        _id:
          type: string
          description: The unique identifier of the document.

    ReadEventPayload:
      type: object
      properties:
        collection:
          type: string
          description: The name of the collection being read.
        query:
          type: object
          additionalProperties: true
          description: The query parameters used for the read operation.
        hints:
          type: object
          additionalProperties: true
          description: Query hints including sort, limit, skip, and projection.

    DocumentUpdateEventPayload:
      type: object
      properties:
        collection:
          type: string
          description: The name of the collection being updated.
        _id:
          type: string
          description: The unique identifier of the document being updated.
        updateData:
          type: object
          additionalProperties: true
          description: >-
            The update data, which may include direct field values or
            MongoDB-like operators such as $set, $inc, $unset, $push, $pull.

    DeleteEventPayload:
      type: object
      properties:
        collection:
          type: string
          description: The name of the collection the document is being deleted from.
        _id:
          type: string
          description: The unique identifier of the document being deleted.

    QueueJobEventPayload:
      type: object
      properties:
        _id:
          type: string
          description: Unique identifier of the queued job.
        topic:
          type: string
          description: The queue topic name.
        payload:
          type: object
          additionalProperties: true
          description: The job payload data to be processed by the worker.