openapi: 3.0.2 info: title: TiDB Lightning web interface version: 4.0.6 servers: - url: http://127.0.0.1:8289/ tags: - name: Tasks description: Task queue management - name: Progress description: Task progress - name: Pause description: Pause/resume tasks - name: Log description: Logging components: schemas: Error: type: object required: - error additionalProperties: false properties: error: type: string description: error message TaskList: type: object required: - current - queue additionalProperties: false properties: current: type: integer format: int64 nullable: true description: ID of the currently running task queue: type: array items: type: integer format: int64 description: IDs of the queued tasks TaskConfig: type: object description: The serialized task configuration TaskStatus: type: integer description: Task status enum: - 0 # Not started - 1 # Running - 2 # Completed example: 1 ProgressTask: type: object required: - t - s additionalProperties: false properties: t: type: object additionalProperties: type: object required: - w - z - s additionalProperties: false properties: w: type: integer format: int64 description: Total bytes parsed and delivered z: type: integer format: int64 description: Total bytes of the entire table s: $ref: '#/components/schemas/TaskStatus' m: type: string description: Error message of the table description: Progress summary of each table. example: {'`db`.`tbl`': {w: 390129, z: 557291, s: 1}} s: $ref: '#/components/schemas/TaskStatus' m: type: string description: Error message from previous task example: |- some errors of previous task (stack trace) CheckpointStatus: type: integer description: Table status enum: - 0 # Missing - 30 # Loaded - 60 # AllWritten - 90 # Closed - 120 # Imported - 140 # IndexImported - 150 # AlteredAutoInc - 170 # ChecksumSkipped - 180 # Checksummed - 200 # AnalyzeSkipped - 210 # Analyzed - 3 # LoadErrored - 6 # WriteErrored - 9 # CloseErrored - 12 # ImportErrored - 14 # IndexImportErrored - 15 # AlterAutoIncErrored - 18 # ChecksumErrored - 21 # AnalyzeErrored example: 60 TableCheckpoints: type: object required: - Status - AllocBase - Engines properties: Status: $ref: '#/components/schemas/CheckpointStatus' AllocBase: type: integer format: int64 description: Current maximum value of AUTO_INCREMENT ID example: 44819 Engines: type: object additionalProperties: type: object description: Engine progress required: - Status - Chunks additionalProperties: false properties: Status: $ref: '#/components/schemas/CheckpointStatus' Chunks: type: array items: type: object description: File progress required: - Key - ColumnPermutation - Chunk - Checksum additionalProperties: false properties: Key: type: object required: - Path - Offset additionalProperties: false properties: Path: type: string description: File path Offset: type: integer format: int64 description: Start offset default: 0 ColumnPermutation: type: array description: Column permutation items: type: integer Chunk: type: object description: Current progress required: - Offset - EndOffset - PrevRowIDMax - RowIDMax additionalProperties: false properties: Offset: type: integer format: int64 description: Current file offset EndOffset: type: integer format: int64 description: End file offset PrevRowIDMax: type: integer format: int64 description: Current row ID RowIDMax: type: integer format: int64 description: End row ID Checksum: type: object description: Partial checksum required: - checksum - size - kvs additionalProperties: false properties: checksum: type: integer format: int64 description: XOR-combined CRC64 checksum size: type: integer format: int64 description: Total encoded bytes kvs: type: integer format: int64 description: Total number of KV pairs example: -1: {Status: 60, Chunks: []} 0: {Status: 90, Chunks: [{ Key: {Path: '/data/db1/db.tbl.01.sql', Offset: 0}, ColumnPermutation: [], Chunk: {Offset: 3391, EndOffset: 450192, PrevRowIDMax: 318, RowIDMax: 40125}, Checksum: {checksum: 1785171221414119207, size: 9670, kvs: 1908} }]} Paused: type: object required: - paused additionalProperties: false properties: paused: type: boolean LogLevel: type: object required: - level additionalProperties: false properties: level: type: string description: Log level enum: - debug - info - warn - error - dpanic - panic - fatal parameters: TaskId: name: taskId in: path required: true description: The task ID schema: type: integer format: int64 example: 1567890123456789012 requestBodies: TaskConfig: description: Task configuration in TOML format (`tidb-lightning.toml`) required: true content: application/toml: example: | [mydumper] data-source-dir = '/data/db1' LogLevel: description: Log level required: true content: application/json: schema: $ref: '#/components/schemas/LogLevel' responses: serverModeDisabled: description: Server mode disabled content: application/json: schema: $ref: '#/components/schemas/Error' example: {error: server-mode not enabled} invalidTaskId: description: Invalid task ID content: application/json: schema: $ref: '#/components/schemas/Error' example: {error: invalid task ID} taskIdNotFound: description: Task ID does not exist in the task queue content: application/json: schema: $ref: '#/components/schemas/Error' example: {error: task ID not found} paths: /tasks: get: summary: Get IDs of the running and queued tasks operationId: GetTask tags: [Tasks] responses: 200: description: Received task list content: application/json: schema: $ref: '#/components/schemas/TaskList' examples: empty: summary: Nothing to run value: {current: null, queue: []} single: summary: Single task running value: {current: 1567890123456789012, queue: []} multiple: summary: Multiple tasks queued value: {current: 1567890123456789012, queue: [1543210987654321098, 1585858585858585858]} 501: $ref: '#/components/responses/serverModeDisabled' post: summary: Submit a new task operationId: PostTask tags: [Tasks] requestBody: $ref: '#/components/requestBodies/TaskConfig' responses: 200: description: Task is queued content: application/json: schema: type: object required: - id properties: id: type: integer format: int64 description: The new task ID example: {id: 1567890123456789012} 400: description: The submitted task configuration has syntax error or invalid settings content: application/json: schema: $ref: '#/components/schemas/Error' example: {error: 'invalid task configuration: invalid `tidb.port` setting'} 501: $ref: '#/components/responses/serverModeDisabled' /tasks/{taskId}: parameters: - $ref: '#/components/parameters/TaskId' get: summary: Get configuration of a single task operationId: GetOneTask tags: [Tasks] responses: 200: description: Received task configuration content: application/json: schema: $ref: '#/components/schemas/TaskConfig' 400: $ref: '#/components/responses/invalidTaskId' 404: $ref: '#/components/responses/taskIdNotFound' 501: $ref: '#/components/responses/serverModeDisabled' delete: summary: Stop and delete a single task from the task queue operationId: DeleteOneTask tags: [Tasks] responses: 200: description: Task is successfully deleted 400: $ref: '#/components/responses/invalidTaskId' 404: $ref: '#/components/responses/taskIdNotFound' 501: $ref: '#/components/responses/serverModeDisabled' /tasks/{taskId}/front: parameters: - $ref: '#/components/parameters/TaskId' patch: summary: Move the task to the front of the queue operationId: PatchOneTaskFront tags: [Tasks] responses: 200: description: Task is successfully moved to the front 400: $ref: '#/components/responses/invalidTaskId' 404: $ref: '#/components/responses/taskIdNotFound' 501: $ref: '#/components/responses/serverModeDisabled' /tasks/{taskId}/back: parameters: - $ref: '#/components/parameters/TaskId' patch: summary: Move the task to the back of the queue operationId: PatchOneTaskBack tags: [Tasks] responses: 200: description: Task is successfully moved to the back 400: $ref: '#/components/responses/invalidTaskId' 404: $ref: '#/components/responses/taskIdNotFound' 501: $ref: '#/components/responses/serverModeDisabled' /progress/task: get: summary: Get the progress summary of the current task operationId: GetProgressTask tags: [Progress] responses: 200: description: Progress of current task content: application/json: schema: $ref: '#/components/schemas/ProgressTask' /progress/table: parameters: - name: t description: The name of the table in: query required: true schema: type: string example: '`db`.`tbl`' get: summary: Get the progress summary of a table operationId: GetProgressTable tags: [Progress] responses: 200: description: Progress of the table content: application/json: schema: $ref: '#/components/schemas/TableCheckpoints' 404: description: Table not found content: application/json: schema: type: string description: Error message example: '"table `db`.`tbl` not found"' /pause: get: summary: Get whether the program is paused operationId: GetPause tags: [Pause] responses: 200: description: Result of whether the program is paused content: application/json: schema: $ref: '#/components/schemas/Paused' put: summary: Pause the program operationId: PutPause tags: [Pause] responses: 200: description: The program is paused /resume: put: summary: Resume the program operationId: PutResume tags: [Pause] responses: 200: description: The program is resumed /loglevel: get: summary: Get the current log level operationId: GetLogLevel tags: [Log] responses: 200: description: Current log level content: application/json: schema: $ref: '#/components/schemas/LogLevel' put: summary: Change the current log level operationId: PutLogLevel tags: [Log] requestBody: $ref: '#/components/requestBodies/LogLevel' responses: 200: description: Log level is updated 400: description: Invalid log level content: application/json: schema: $ref: '#/components/schemas/Error'