COR

COR Auth API

The Auth API from COR — 5 operation(s) for auth.

OpenAPI Specification

cor-auth-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: COR Attachments Auth API
  description: The COR API lets you integrate with projectcor.com applications using simple HTTP methods, in either XML or JSON formats, making this an ideal API for developing integrations with other softwares, external clients or mobile applications
  version: 1.0.0
servers:
- url: https://api.projectcor.com/v1
  description: Production server
security:
- bearerAuth: []
tags:
- name: Auth
paths:
  /oauth/token:
    post:
      tags:
      - Auth
      summary: JWT Authorization by Client credentials
      description: We'll be using the OAuth2 Client Credentials workflow as an authentication strategy and JWTs for the format of the tokens.
      security: []
      parameters:
      - name: grant_type
        in: query
        required: true
        schema:
          type: string
          enum:
          - client_credentials
          default: client_credentials
      responses:
        '200':
          description: Successfully authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
  /oauth2/token:
    post:
      tags:
      - Auth
      summary: JWT Authorization by Authorization code
      description: The authorization code is obtained by using an authorization server (COR) as an intermediary between the client and resource owner.
      security: []
      parameters:
      - name: grant_type
        in: query
        required: true
        schema:
          type: string
          enum:
          - authorization_code
          default: authorization_code
      - name: code
        in: query
        required: true
        schema:
          type: string
        description: Authorization code obtained from consent screen
      responses:
        '200':
          description: Successfully authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
  /auth/login:
    post:
      tags:
      - Auth
      summary: JWT Authorization by User Credentials
      security: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - email
              - password
              properties:
                email:
                  type: string
                  format: email
                  description: User E-Mail
                password:
                  type: string
                  format: password
                  description: User Password
      responses:
        '200':
          description: Successfully authenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
  /me:
    get:
      tags:
      - Auth
      summary: Get Authenticated User
      description: Returns information about the currently authenticated user
      responses:
        '200':
          description: User information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
  /oauth/refreshtoken:
    post:
      tags:
      - Auth
      summary: JWT Refresh Token
      description: Refresh the user token
      security: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - refresh_token
              properties:
                refresh_token:
                  type: string
                  description: Refresh token
      responses:
        '200':
          description: Token refreshed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
components:
  schemas:
    AuthResponse:
      type: object
      properties:
        access_token:
          type: string
        token_type:
          type: string
        expires_in:
          type: integer
        refresh_token:
          type: string
    LeaveType:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        type_code:
          type: string
        company_id:
          type: integer
          nullable: true
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        deleted_at:
          type: string
          format: date-time
          nullable: true
        icon_name:
          type: string
    Label:
      type: object
      properties:
        id:
          type: integer
        hex:
          type: string
          description: Hex color code
        hsl:
          type: string
          nullable: true
        rgb:
          type: string
          nullable: true
        lang:
          type: string
        name:
          type: string
        color_id:
          type: integer
    Leave:
      type: object
      properties:
        id:
          type: integer
        user_id:
          type: integer
        company_id:
          type: integer
        leave_type_id:
          type: integer
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        deleted_at:
          type: string
          format: date-time
          nullable: true
        all_day:
          type: boolean
        leaveType:
          $ref: '#/components/schemas/LeaveType'
    UserBase:
      type: object
      properties:
        id:
          type: integer
        first_name:
          type: string
        last_name:
          type: string
        picture:
          type: string
          description: URL to user's profile picture
        email:
          type: string
          format: email
        cuil:
          type: string
        remaining_hours:
          type: number
        user_position_id:
          type: integer
        role_id:
          type: integer
          description: 1=C-Level, 2=Director, 3=Project Manager, 4=Collaborator, 5=Freelancer, 6=Client
        daily_hours:
          type: number
        plan_id:
          type: integer
          description: 4=Project Management, 5=Capacity Planning
        plan_name:
          type: string
        hidden:
          type: boolean
        position_name:
          type: string
          nullable: true
        category_id:
          type: integer
          nullable: true
        category_name:
          type: string
          nullable: true
        gmt:
          type: string
          description: UTC offset from the user's last login location. Indicates the timezone configured at their last login.
          example: -03:00
        leaves:
          type: array
          items:
            $ref: '#/components/schemas/Leave'
    User:
      allOf:
      - $ref: '#/components/schemas/UserBase'
      - type: object
        properties:
          labels:
            type: array
            items:
              $ref: '#/components/schemas/Label'
            nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    basicAuth:
      type: http
      scheme: basic