openapi: 3.2.0 info: title: Lokki Action Log API description: The main API powering the Lokki Dashboard and Online Store version: '2.0' contact: {} servers: [] security: - x-access-token: [] tags: - name: Action Log paths: /v2/action-log/admin: get: operationId: getActionLogs parameters: - name: startDate required: true in: query schema: format: date-time type: string - name: endDate required: true in: query schema: format: date-time type: string - name: page required: true in: query schema: minimum: 0 type: number - name: limit required: true in: query schema: minimum: 0 type: number - name: companyId required: false in: query schema: type: string - name: userId required: false in: query schema: type: string - name: actionName required: false in: query schema: type: string - name: collectionName required: false in: query schema: type: string - name: documentId required: false in: query schema: type: string - name: hasChanges required: false in: query schema: type: boolean responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ActionLogsPage' tags: - Action Log /v2/action-log/admin/history: get: operationId: getActionLogHistory parameters: - name: collectionName required: true in: query schema: type: string - name: documentId required: true in: query schema: type: string - name: startDate required: false in: query schema: format: date-time type: string - name: endDate required: false in: query schema: format: date-time type: string - name: page required: false in: query schema: minimum: 0 type: number - name: limit required: false in: query schema: minimum: 1 type: number responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/ActionLogHistoryPage' tags: - Action Log /v2/action-log/admin/revert: post: operationId: revertActionLogChange parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RevertActionLogChangeDto' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/RevertActionLogChangeResult' tags: - Action Log components: schemas: ActionLogHistoryPage: type: object properties: entries: type: array items: $ref: '#/components/schemas/ActionLogHistoryEntry' hasNextPage: type: boolean required: - entries - hasNextPage ActionLogSource: type: string enum: - DECORATOR - AUTO RevertActionLogChangeDto: type: object properties: actionLogId: type: string collectionName: type: string documentId: type: string required: - actionLogId - collectionName - documentId ActionLogEntryChange: type: object properties: operation: $ref: '#/components/schemas/ActionLogOperation' diff: type: - object - 'null' additionalProperties: true collectionName: type: string documentId: type: string truncated: type: boolean required: - operation - diff - collectionName - documentId - truncated ActionLogsPage: type: object properties: entries: type: array items: $ref: '#/components/schemas/ActionLogEntry' hasNextPage: type: boolean required: - entries - hasNextPage RevertActionLogChangeResult: type: object properties: revertedFields: type: array items: type: string required: - revertedFields ActionLogEntry: type: object properties: actionSource: $ref: '#/components/schemas/ActionLogSource' changes: type: array items: $ref: '#/components/schemas/ActionLogEntryChange' requestPayload: type: - object - 'null' additionalProperties: true id: type: string createdAt: format: date-time type: string actionName: type: string method: type: string routePath: type: string statusCode: type: number durationMs: type: number companyId: type: - string - 'null' companyName: type: - string - 'null' actor: $ref: '#/components/schemas/ActionLogActor' required: - actionSource - changes - requestPayload - id - createdAt - actionName - method - routePath - statusCode - durationMs - companyId - companyName - actor ActionLogActorType: type: string enum: - OWNER - EMPLOYEE - ADMIN - ADMIN_IMPERSONATING - SYSTEM - UNKNOWN ActionLogOperation: type: string enum: - create - update - delete ActionLogSystemSource: type: string enum: - STRIPE_WEBHOOK - PAYOUT_GENERATION - PAYMENT_CAPTURE ActionLogHistoryEntry: type: object properties: operation: $ref: '#/components/schemas/ActionLogOperation' diff: type: - object - 'null' additionalProperties: true id: type: string createdAt: format: date-time type: string actionName: type: string method: type: string routePath: type: string actor: $ref: '#/components/schemas/ActionLogActor' truncated: type: boolean required: - operation - diff - id - createdAt - actionName - method - routePath - actor - truncated ActionLogActor: type: object properties: type: $ref: '#/components/schemas/ActionLogActorType' systemSource: $ref: '#/components/schemas/ActionLogSystemSource' userId: type: string email: type: - string - 'null' name: type: - string - 'null' impersonatorUserId: type: - string - 'null' impersonatorEmail: type: - string - 'null' required: - type - systemSource - userId - email - name - impersonatorUserId - impersonatorEmail securitySchemes: x-access-token: scheme: bearer bearerFormat: JWT type: apiKey in: header name: x-access-token