360 Secure SkillHub
360 安全技能中心

Change permissions of PDF

该 Skill 接收 PDF 文件和权限开关,调用 Solutions API 上传文件并轮询任务,最后返回任务状态、下载链接及权限值的结构化结果;使用 API 密钥认证,处理文件会发送到外部服务。

crossservicesolutions
crossservicesolutions
热度 90.52
最近更新 2026-05-11 15:54:52
分类:安全依赖:第三方 API / 读写文件 / 代码执行应用场景:工作流 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add change-pdf-permissions
Metadata
name
change-pdf-permissions
description
Change a PDF’s permission flags (edit, print, copy, forms, annotations, etc.) by uploading it to the Solutions API, polling until completion, then returning a download URL for the updated PDF.
license
MIT
compatibility
{"agentskills":">=0.1.0"}
metadata
{"category":"document-security","tags":["pdf","permissions","restrict","allow","security","cross-service-solutions"],"provider":"Cross-Service-Solutions (Solutions API)"}
allowed-tools
["http","files"]

change-pdf-permissions

Purpose

This skill changes the permission flags of a PDF (e.g., whether it can be printed, edited, or copied) by:

  1. accepting a PDF file from the user,
  2. accepting desired permission settings (true/false),
  3. uploading them to the Solutions API,
  4. polling the job status until it is finished,
  5. returning the download URL for the updated PDF.

Credentials

The API requires an API key used as a Bearer token:

  • Authorization: Bearer <API_KEY>

How the user gets an API key:

Rule: never echo or log the API key.

API endpoints

Base URL:

  • https://api.xss-cross-service-solutions.com/solutions/solutions

Create permission-change job:

  • POST /api/75
  • multipart/form-data parameters:
    • file — required — PDF file
    • canModify — required — "true" or "false"
    • canModifyAnnotations — required — "true" or "false"
    • canPrint — required — "true" or "false"
    • canPrintHighQuality — required — "true" or "false"
    • canAssembleDocument — required — "true" or "false"
    • canFillInForm — required — "true" or "false"
    • canExtractContent — required — "true" or "false"
    • canExtractForAccessibility — required — "true" or "false"

Get result by ID:

  • GET /api/<ID>

When done, the response contains:

  • output.files[] with { name, path } where path is a downloadable URL.

Inputs

Required

  • PDF file (binary)
  • Permission flags (boolean-like), all required by API:
    • canModify
    • canModifyAnnotations
    • canPrint
    • canPrintHighQuality
    • canAssembleDocument
    • canFillInForm
    • canExtractContent
    • canExtractForAccessibility
  • API key (string)

Optional

  • None

Defaults (recommended)

If the user does not specify permissions, use a conservative default that disallows modification and extraction, but allows printing:

  • canModify: false
  • canModifyAnnotations: false
  • canPrint: true
  • canPrintHighQuality: true
  • canAssembleDocument: false
  • canFillInForm: true (reasonable default if forms exist)
  • canExtractContent: false
  • canExtractForAccessibility: true (often desirable for accessibility)

These defaults can be adjusted per product policy.

Output

Return a structured result:

  • job_id (number)
  • status (string)
  • download_url (string, when done)
  • file_name (string, when available)
  • permissions (object) reflecting the final values sent

Example output:

{
  "job_id": 7501,
  "status": "done",
  "download_url": "https://.../permissions.pdf",
  "file_name": "permissions.pdf",
  "permissions": {
    "canModify": false,
    "canModifyAnnotations": false,
    "canPrint": true,
    "canPrintHighQuality": true,
    "canAssembleDocument": false,
    "canFillInForm": true,
    "canExtractContent": false,
    "canExtractForAccessibility": true
  }
}