Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
73d6fe3
feat(web2cli): add generate-spec and spec-driven CLI outputs (#230)
xiami762 May 8, 2026
12e2797
feat(update): CN mirror prompt and uv sync timeout handling (#233)
xiami762 May 8, 2026
1809802
Fix/azure custom deployment name (#234)
JohnYin-hub May 8, 2026
6bfc6bd
security: harden server routes, PTY, webfetch, and auth (#231)
xiami762 May 8, 2026
bf6c333
fix(webui): align regenerate truncation with parent user turn (#235)
xiami762 May 8, 2026
9c6b4eb
feat(onesec): DNS/time handling, skill docs, handler, and tests (#238)
xiami762 May 8, 2026
e8360f7
fix(skills): enforce uv-based time calculation before API calls (#239)
xiami762 May 9, 2026
08b6996
feat: add multimodal image analysis support (#237)
Axiaoiac May 9, 2026
c5f093f
docs(skills): tool registration + workflow path guidance (#240)
xiami762 May 9, 2026
23d41a2
fix(browser): normalize env file decoding across platforms (#242)
xiami762 May 9, 2026
c04cc3e
feat: add Sangfor AF firewall API tools for versions 8.0.48, 8.0.85, …
duguwanglong May 9, 2026
bd7f83b
feat(mcp): remote transport, catalog templates, and tool UI (#241)
xiami762 May 9, 2026
a56cc5b
refactor(af): rename to sangfor_af_v8_0_xx with conventional naming
duguwanglong May 9, 2026
53a360f
feat(config): canonicalize verify_ssl and relax TDP connectivity prob…
xiami762 May 9, 2026
53a2137
feat: image analysis, chat draft persistence, and tool validator
May 9, 2026
78a5b89
feat(workflow): live execution progress, execution_store, scheduler c…
xiami762 May 9, 2026
2c4a622
fix(browser): restore env loader calls during import (#244)
xiami762 May 9, 2026
4e84ccb
feat: 图片分析和聊天功能优化
May 9, 2026
d1235d9
fix(model): disable vision toggle for predefined built-in models
May 9, 2026
c4f29c9
fix(af): fix login body, sessions method, interface path and monitor …
duguwanglong May 9, 2026
2044c99
feat(model): treat predefined models as non-vision; only custom model…
May 9, 2026
f1d70a6
fix(model): predefined models report vision=false (not null) so UI bl…
May 9, 2026
b7b47af
fix(model): predefined models must return false (not null) to activel…
May 9, 2026
ae0ff0e
fix(hub): fix tool tag classification for sangfor_af / onesig / ngsoc
duguwanglong May 9, 2026
dce6c54
chore(af): promote sangfor_af v8.0.48 and v8.0.85 to bundled flockshu…
duguwanglong May 9, 2026
6ca6e84
feat: 内置模型视觉开关默认关闭
May 9, 2026
3cfe4b3
Merge pull request #247 from AgentFlocks/feat/af-api-tools
xiami762 May 9, 2026
292243d
Merge branch 'dev' into feat/image-analysis-and-chat-improvements
Axiaoiac May 9, 2026
d8b44e5
Merge pull request #245 from AgentFlocks/feat/image-analysis-and-chat…
xiami762 May 9, 2026
d09b389
chore: bump version to v2026.5.9 and refresh uv.lock
May 9, 2026
c1b244f
Merge pull request #249 from AgentFlocks/chore/v2026.5.9-version-and-…
xiami762 May 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: sangfor_af
service_id: sangfor_af
version: "8.0.48"
description: >
Sangfor AF (Application Firewall) v8.0.48 REST API service.
Uses session-based cookie authentication: call login to obtain
a token, then supply it via Cookie header in subsequent requests.
description_cn: >
深信服 AF 下一代防火墙 v8.0.48 REST API 服务。
使用基于 Session 的 Cookie 认证:首先调用 login 获取 token,
后续请求在 Cookie 中携带 token。基础 URL 为设备管理地址(如 https://192.168.1.1)。
auth:
type: custom
secret: sangfor_af_v8_0_48_username
secret_secret: sangfor_af_v8_0_48_password
credential_fields:
- key: username
label: 管理员用户名
storage: secret
config_key: username
secret_id: sangfor_af_v8_0_48_username
input_type: text
required: true
- key: password
label: 管理员密码
storage: secret
config_key: password
secret_id: sangfor_af_v8_0_48_password
input_type: password
required: true
- key: base_url
label: 设备地址 (Base URL)
storage: config
config_key: base_url
input_type: url
default: "https://192.168.1.1"
defaults:
base_url: "https://192.168.1.1"
timeout: 60
category: custom
product_version: "8.0.48"
notes: |
深信服 AF v8.0.48 API 认证流程:
1. 在 AF WebUI「系统 → 管理员账号」勾选 WEBAPI 权限。
2. Handler 自动调用 POST /api/v1/namespaces/public/login,
用配置的用户名/密码换取 token 并缓存(带 keepalive 自动续期)。
3. 后续所有请求由 Handler 自动注入 Cookie: token=<token>。
4. token 默认 10 分钟无操作后失效,缓存命中失败时会自动重新登录。

`verify_ssl` 由表单底部「SSL 验证」开关控制,下列字段都会被
识别为 SSL 验证开关,按以下优先级取值:
1. `verify_ssl` (主键)
2. `ssl_verify` (兼容别名)
3. `custom_settings.verify_ssl` (WebUI 表单写入位置)
4. 兜底默认值 `False`(**默认关闭证书验证**,AF 设备通常使用自签名证书)
103 changes: 103 additions & 0 deletions .flocks/flockshub/plugins/tools/api/sangfor_af_v8_0_48/_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
schema_version: 1
provider: sangfor_af

# Service-level connectivity probe.
# get_system_version is a lightweight read-only GET that verifies
# authentication and basic reachability.
connectivity:
tool: sangfor_af_v48_status
params:
action: get_system_version

# Tool-level test samples shown in the WebUI ToolDetailDrawer drop-down.
fixtures:
sangfor_af_v48_auth:
- label: "Session keepalive"
label_cn: "刷新 Session 保活"
tags: [smoke]
params:
action: keepalive
assert:
success: true

sangfor_af_v48_status:
- label: "Get system version"
label_cn: "获取系统版本信息"
tags: [smoke]
params:
action: get_system_version
assert:
success: true

- label: "Get CPU usage"
label_cn: "获取 CPU 使用率"
tags: [smoke]
params:
action: get_cpu_usage

- label: "Get memory usage"
label_cn: "获取内存使用率"
tags: [smoke]
params:
action: get_memory_usage

sangfor_af_v48_ops:
- label: "List blacklist entries"
label_cn: "查询黑名单列表"
tags: [smoke, blacklist]
params:
action: get_blackwhitelist
type: BLACK
assert:
success: true

- label: "List whitelist entries"
label_cn: "查询白名单列表"
tags: [smoke, whitelist]
params:
action: get_blackwhitelist
type: WHITE

- label: "List blocked attacker IPs"
label_cn: "查询封锁攻击者 IP 列表"
tags: [smoke, blockip]
params:
action: get_blockip_list
assert:
success: true

sangfor_af_v48_objects:
- label: "List IP groups"
label_cn: "查询 IP 地址组列表"
tags: [smoke]
params:
action: get_ipgroups
assert:
success: true

- label: "List services"
label_cn: "查询服务对象列表"
tags: [smoke]
params:
action: get_services
assert:
success: true

sangfor_af_v48_network:
- label: "List routing table (all routes)"
label_cn: "查询完整路由表"
tags: [smoke]
params:
action: get_routes
routeType: ALL_ROUTE
assert:
success: true

sangfor_af_v48_system:
- label: "List admin accounts"
label_cn: "查询管理员账户列表"
tags: [smoke]
params:
action: get_accounts
assert:
success: true
Loading
Loading