openapi: 3.0.1 info: title: Artemis Web API description: "This is the documentation of the Artemis REST API accessible to normal\ \ users.\n \n In order to authenticate for the API: \n - Use the session cookie\ \ (get it with /api/auth/login/credentials or /api/auth/login/ldap) \n - The x-artemis-api-key\ \ header is used to circumvent the csrf protection." version: 1.0.0 servers: - url: https://artemis.grserver.gr/ tags: - name: login description: API for credentials and LDAP authentication - name: user account description: API related to the user's account - name: session description: API for handling the session state - name: data description: API for retrieving miscellaneous application data paths: /api/auth/login/credentials: post: tags: - login summary: User logs in with credentials (email/password). operationId: credentials parameters: - name: x-artemis-api-key in: header required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: "#/components/schemas/loginBody" required: true responses: 200: description: successful operation content: application/json: schema: $ref: "#/components/schemas/user" x-codegen-request-body-name: body /api/auth/login/ldap: post: tags: - login summary: User logs in with her ldap credentials (email/password). operationId: ldap parameters: - name: x-artemis-api-key in: header required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: "#/components/schemas/loginBody" required: true responses: 200: description: successful operation content: application/json: schema: $ref: "#/components/schemas/user" x-codegen-request-body-name: body /api/auth/logout: delete: tags: - login summary: User logout operationId: logoutp parameters: - name: x-artemis-api-key in: header required: true schema: type: string format: uuid - in: cookie name: sid required: true schema: type: string responses: 204: description: User logged out. content: {} /api/auth/change-password: put: tags: - user account summary: Change user's password operationId: changePass parameters: - name: x-artemis-api-key in: header required: true schema: type: string format: uuid - in: cookie name: sid required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/passBody" required: true responses: 200: description: Your password has been updated. content: {} 300: description: Old password is wrong or password missmatch. content: {} x-codegen-request-body-name: body /api/auth/jwt: get: tags: - session summary: Retrieve JWT. operationId: jwt parameters: - name: x-artemis-api-key in: header required: true schema: type: string format: uuid - in: cookie name: sid required: true schema: type: string responses: 200: description: JWT retrieved. content: application/json: schema: $ref: "#/components/schemas/jwt" /api/auth/signup: post: tags: - user account summary: Create new account operationId: signup parameters: - name: x-artemis-api-key in: header required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: "#/components/schemas/signupBody" required: true responses: 200: description: user created content: {} 400: description: missing fields or invalid email. content: {} 403: description: The email has already been used. content: {} x-codegen-request-body-name: body /api/auth/userinfo: get: tags: - user account summary: Get user information operationId: userifo parameters: - name: x-artemis-api-key in: header required: true schema: type: string format: uuid - in: cookie name: sid required: true schema: type: string responses: 200: description: user content: application/json: schema: $ref: "#/components/schemas/user" /api/configs: get: tags: - data summary: Get the configuration data operationId: configinfo parameters: - name: x-artemis-api-key in: header required: true schema: type: string format: uuid - in: cookie name: sid required: true schema: type: string responses: 200: description: configs content: application/json: schema: $ref: "#/components/schemas/configs" /api/download_tables: post: tags: - data summary: Get data for the table described in the action field, in json format operationId: downloadtable parameters: - name: x-artemis-api-key in: header required: true schema: type: string format: uuid - in: cookie name: sid required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/tableBody" required: true responses: 200: description: table content: application/json: schema: $ref: "#/components/schemas/table" x-codegen-request-body-name: body components: schemas: loginBody: type: object properties: email: type: string password: type: string rememberMe: type: boolean signupBody: type: object properties: email: type: string password: type: string name: type: string tableBody: type: object properties: action: type: string parameters: type: string jwt: type: object properties: accessToken: type: string passBody: type: object properties: old_password: type: string new_password: type: string user: type: object properties: user: type: object properties: _id: type: string name: type: string email: type: string role: type: string lastLogin: type: string sessionId: type: string configs: type: object properties: configs: type: array items: type: object properties: raw_config: type: string comment: type: string time_modified: type: string table: type: array items: type: object properties: {}