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: projectsApi
url: ../openapi/jfrog-projects-api-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
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.