Skip to main content

Folder Permissions and Sharing

Use this guide to create folders, assign folder permissions, and share folders with groups.

Folder-level controls are useful when users need access to a subset of documents instead of the entire site.

Before You Begin

Confirm you have:

  • A deployed FormKiQ environment. See Quick Start.
  • A JWT access token with permission to manage folders and sharing.
  • cURL or an API client such as Postman.
  • A group that should receive folder access. See Manage Users and Groups.

Variables Used

PlaceholderDescription
HTTP_API_URLFormKiQ API endpoint from the CloudFormation stack output, including https://.
AUTHORIZATION_TOKENJWT access token used in the Authorization header.
SITE_IDFormKiQ site ID. Use default unless your deployment uses multiple sites.
FOLDER_PATHFolder path to create and secure.
FOLDER_INDEX_KEYFolder index key returned by folder APIs.
GROUP_NAMEGroup receiving folder access.
SHARE_KEYShare key returned by the share API.

The examples below use shell variables. Replace the values before running the commands:

export HTTP_API_URL="https://your-formkiq-api.example.com"
export AUTHORIZATION_TOKEN="your-jwt-access-token"
export SITE_ID="default"
export FOLDER_PATH="/review/invoices"
export GROUP_NAME="document-reviewers"

Step 1: Create a Folder

Use POST /folders to create a folder path.

curl -X POST "${HTTP_API_URL}/folders?siteId=${SITE_ID}" \
-H "Authorization: ${AUTHORIZATION_TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"path\": \"${FOLDER_PATH}\"
}"

Step 2: List Folders

Use GET /folders to confirm the folder exists and to capture its index key.

curl -X GET "${HTTP_API_URL}/folders?siteId=${SITE_ID}" \
-H "Authorization: ${AUTHORIZATION_TOKEN}"

Set FOLDER_INDEX_KEY to the folder index key returned for the folder.

export FOLDER_INDEX_KEY="returned-folder-index-key"

Step 3: Set Folder Permissions

Use PUT /folders/permissions to define which roles can access the folder.

curl -X PUT "${HTTP_API_URL}/folders/permissions?siteId=${SITE_ID}" \
-H "Authorization: ${AUTHORIZATION_TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"path\": \"${FOLDER_PATH}\",
\"roles\": [
{
\"roleName\": \"${GROUP_NAME}\",
\"permissions\": [\"READ\", \"WRITE\"]
}
]
}"

Folder permissions support READ, WRITE, and DELETE.

Step 4: Verify Folder Permissions

Use GET /folders/{indexKey}/permissions to inspect the folder permissions.

curl -X GET "${HTTP_API_URL}/folders/${FOLDER_INDEX_KEY}/permissions?siteId=${SITE_ID}" \
-H "Authorization: ${AUTHORIZATION_TOKEN}"

Step 5: Share the Folder

Use POST /shares/folders/{indexKey} to share the folder with a group.

curl -X POST "${HTTP_API_URL}/shares/folders/${FOLDER_INDEX_KEY}?siteId=${SITE_ID}" \
-H "Authorization: ${AUTHORIZATION_TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"share\": {
\"group\": \"${GROUP_NAME}\",
\"permissions\": [\"READ\", \"WRITE\"]
}
}"

Step 6: List User Shares

Use GET /shares to confirm the folder share is visible to the current user.

curl -X GET "${HTTP_API_URL}/shares?siteId=${SITE_ID}" \
-H "Authorization: ${AUTHORIZATION_TOKEN}"

Verify the Result

Confirm that:

  • The folder appears in GET /folders.
  • The folder permissions include the expected group.
  • The share appears in GET /shares for users who should have access.
  • Users outside the group cannot access the shared folder.

Troubleshooting

ProblemLikely causeWhat to check
Folder permissions do not applyThe wrong folder path or index key was used.Recheck FOLDER_PATH and FOLDER_INDEX_KEY.
Share is missing for a userThe user is not in the shared group.Check group membership.
User can read but not writeThe share or folder permissions do not include WRITE.Check both folder permissions and share permissions.
403 ForbiddenThe caller cannot manage folder permissions.Use a token with the required site permissions.

Next Steps