Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beskrivning

Camunda BPM är en processmotor och en viktig del i Sundsvalls kommuns strategi för att bygga en generell ärendehantering.

Det finns ett Rest-api för att prata med Camunda, men det kräver genomgripande kunskap av hur processmotorn fungerar.
Därför finns ProcessEngine-api:et för att göra det enklare att prata med processmotorn.

https://github.com/Sundsvallskommun/process-engine-parking-permit

Livscykelstatus

Test

Lösningsbeskrivning

API:et är ett Spring Boot-projekt som försöker efterlikna övriga API:er inom Sundsvalls kommuns utvecklingsfabrik. Därför används dept-44-dependecies för till exempel Webclient och Test.

Hantering av personuppgifter

Inga personuppgifter hanteras, endast ärendenummer skickas in och sparas i processmotorns historik. För tillfället finns ingen databas eller liknande kopplad till API:et.

API specifikation

StartProcess

Starta en ny processinstans med namn och ärende id.

POST

/process-engine/startprocess

Body:

Code Block
{
    "processName":"Namn",
    "caseNumber": "123",
    "processInstanceId":"1"

}

UpdateProcess

Updatera en process som körs och väntar på svar innan den kör vidare. Skicka med processInstanceId för den process som det gäller.

POST

/process-engine/updateprocess

Body:

Code Block
{
    "processName":"Namn",
    "caseNumber": "123",
    "processInstanceId":"1"

}

<API specifikation i Swagger-UI (använd plug-in).

Swagger ui
openapi: 3.0.1
info:
  title: Process Engine
  contact: {}
  license:
    name: MIT License
    url: 'https://opensource.org/licenses/MIT'
  version: '1.0'
servers:
  - url: 'http://localhost:8888/process-engine-api'
    description: Generated server url
security:
  - default: []
paths:
  /process/update-process:
    post:
      tags:
        - camunda-endpoints
      description: Update a process instance with the given process instance ID
      operationId: updateParkingPermitProcess
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseObject'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParkingPermitResponse'
      security:
        - default: []
      x-auth-type: Application & Application User
      x-throttling-tier: Unlimited
      x-wso2-application-security:
        security-types:
          - oauth2
        optional: false
  /process/start-process:
    post:
      tags:
        - camunda-endpoints
      description: Start a new process instance with the given process name
      operationId: startParkingPermitProcess
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseObject'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParkingPermitResponse'
      security:
        - default: []
      x-auth-type: Application & Application User
      x-throttling-tier: Unlimited
      x-wso2-application-security:
        security-types:
          - oauth2
        optional: false
  /api-docs:
    get:
      tags:
        - API
      summary: OpenAPI
      operationId: getApiDocs
      responses:
        '200':
          description: OK
          content:
            application/yaml:
              schema:
                type: string
      security:
        - default: []
      x-auth-type: None
      x-throttling-tier: Unlimited
      x-wso2-mutual-ssl: Optional
      x-wso2-application-security:
        security-types:
          - oauth2
        optional: false
components:
  schemas:
    CaseObject:
      type: object
      properties:
        processName:
          type: string
        caseNumber:
          type: string
        processInstanceId:
          type: string
    ParkingPermitResponse:
      type: object
      properties:
        processId:
          type: string
          example: bfc9d438-db4e-11ec-bb5b-0242ac110003
  securitySchemes:
    default:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: 'https://test.com'
          scopes: {}
x-wso2-cors:
  corsConfigurationEnabled: false
  accessControlAllowOrigins:
    - '*'
  accessControlAllowCredentials: false
  accessControlAllowHeaders:
    - authorization
    - Access-Control-Allow-Origin
    - Content-Type
    - SOAPAction
    - apikey
    - testKey
  accessControlAllowMethods:
    - GET
    - PUT
    - POST
    - DELETE
    - PATCH
    - OPTIONS
x-wso2-production-endpoints:
  urls:
    - 'https://saas080.sundsvall.se/process-engine-api/'
  type: http
x-wso2-basePath: /process-engine/1.0
x-wso2-transports:
  - https
x-wso2-response-cache:
  enabled: false
  cacheTimeoutInSeconds: 300


Publicera även en API-Key mot Sandbox som gör att man kan testköra API:et.

API-specifikationen skall såklart reflektera att API-design följts fullt ut.>

Säkerhetsklassning

Säkerhetsklass ?

Autentiseringsmetod: API Key

(Ref: Säkerhetsklassning av APIer )

API-ägare

<Kontaktuppgifter till den verksamhet som äger APIets livscykel>

Teknisk ägare

<Kontaktuppgifter till utvecklare/teknisk förvaltare>

Källkod

https://github.com/Sundsvallskommun/process-engine-parking-permit