JFrog · Arazzo Workflow

JFrog Access Provision Project

Version 1.0.0

Create a project, add a user to it, and confirm the project.

1 workflow 1 source API 1 provider
View Spec View on GitHub ArtifactoryCI/CDContainer RegistryDevOpsMLOpsPackage ManagementSecuritySoftware Supply ChainArazzoWorkflows

Provider

jfrog

Workflows

provision-project
Create a project, assign a user, and verify the project.
Creates a project keyed by projectKey, adds a user with the supplied roles, then fetches the project to confirm it exists.
3 steps inputs: displayName, maxStorage, projectKey, role, username outputs: addedUser, projectKey
1
createProject
createProject
Create a new project with the supplied key, display name and storage quota.
2
addUser
addUserToProject
Add the supplied user to the project with the requested role.
3
confirmProject
getProject
Read the project back to confirm it was created with the expected key.

Source API Descriptions

Arazzo Workflow Specification

jfrog-access-provision-project-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: JFrog Access Provision Project
  summary: Create a project, add a user to it, and confirm the project.
  description: >-
    Project-based isolation in the JFrog Platform via the Access service. The
    workflow creates a project with a storage quota, adds an existing user to it
    with a role, then reads the project back to confirm it was created. Every
    step spells out its request inline so the flow can be read and executed
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: accessApi
  url: ../openapi/jfrog-access-openapi.yml
  type: openapi
workflows:
- workflowId: provision-project
  summary: Create a project, assign a user, and verify the project.
  description: >-
    Creates a project keyed by projectKey, adds a user with the supplied roles,
    then fetches the project to confirm it exists.
  inputs:
    type: object
    required:
    - projectKey
    - displayName
    - username
    - role
    properties:
      projectKey:
        type: string
        description: The unique project key (max 32 chars).
      displayName:
        type: string
        description: The human-readable project name.
      username:
        type: string
        description: An existing username to add to the project.
      role:
        type: string
        description: The role to assign the user (e.g. Developer, Project Admin).
      maxStorage:
        type: integer
        description: The maximum storage in gibibytes for the project.
  steps:
  - stepId: createProject
    description: >-
      Create a new project with the supplied key, display name and storage
      quota.
    operationId: createProject
    requestBody:
      contentType: application/json
      payload:
        project_key: $inputs.projectKey
        display_name: $inputs.displayName
        description: Provisioned by the provision-project workflow
        max_storage_in_gibibytes: $inputs.maxStorage
        admin_privileges:
          manage_members: true
          manage_resources: true
          index_resources: true
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      projectKey: $response.body#/project_key
  - stepId: addUser
    description: >-
      Add the supplied user to the project with the requested role.
    operationId: addUserToProject
    parameters:
    - name: projectKey
      in: path
      value: $steps.createProject.outputs.projectKey
    - name: username
      in: path
      value: $inputs.username
    requestBody:
      contentType: application/json
      payload:
        roles:
        - $inputs.role
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      addedUser: $inputs.username
  - stepId: confirmProject
    description: >-
      Read the project back to confirm it was created with the expected key.
    operationId: getProject
    parameters:
    - name: projectKey
      in: path
      value: $steps.createProject.outputs.projectKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      projectKey: $response.body#/project_key
      displayName: $response.body#/display_name
  outputs:
    projectKey: $steps.confirmProject.outputs.projectKey
    addedUser: $steps.addUser.outputs.addedUser