list_storage_driver_descriptors
const url = 'https://example.com/api/v1/admin/policies/storage-drivers?context=manage';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use reqwest;
#[tokio::main]pub async fn main() { let url = "https://example.com/api/v1/admin/policies/storage-drivers";
let querystring = [ ("context", "manage"), ];
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .query(&querystring) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url 'https://example.com/api/v1/admin/policies/storage-drivers?context=manage' \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”List storage driver capability descriptors
统一 API 响应格式
成功: { "code": "success", "msg": "", "data": {...} }
失败: { "code": "auth.credentials_failed", "msg": "Invalid Credentials" }
object
object
管理端/服务端可执行动作声明。
object
Connector 内唯一且稳定的 action ID。
前端本地化说明 key。
该 action 可通过哪些后端 endpoint 执行。
Action-owned input schema. Values are never persisted into the policy.
object
Connector localization key for a collapsed advanced field group.
True 表示 endpoint 可以省略 URL scheme,由 connector 在后端补齐或解释。
Endpoint 允许的 URL protocol,取值与浏览器 URL.protocol 一致,例如 https:。
Connector-owned rule deciding whether an empty optional text field also
resolves to default_value.
Ordered conditional defaults. The first matching rule wins; when none
matches, default_value remains the fallback.
Ordered connector-owned default selected from the current field values.
object
One connector field equals one scalar value.
Conditions deliberately stay small and inspectable. Multiple conditions on one rule are ANDed; connectors can declare multiple ordered rules when they need OR behavior.
可选 help 文案 key。
What the form/payload normalizer does when visible_when is false.
Endpoint 协议不合法时的前端文案 key。
前端可用的基础控件类型。
前端本地化 label key。默认通常等于 name。
提交 payload 中的字段名。
可选 placeholder,本地化策略由前端决定。
是否必填。复杂条件校验仍由 connector/service 做最终裁决。
字段必填校验失败时的前端文案 key。
Conditions that make an otherwise optional field required in the UI.
One connector field equals one scalar value.
Conditions deliberately stay small and inspectable. Multiple conditions on one rule are ANDed; connectors can declare multiple ordered rules when they need OR behavior.
字段进入哪个配置域。
是否是敏感字段,前端应按 secret input 处理,后端不应明文回显。
Select control contract. Present exactly when kind is select.
object
Whether a string select may accept a value outside its fixed presets.
Connector-owned label for a synthetic option that clears the explicit value and resumes descriptor default resolution.
Connector-owned label for the synthetic custom-value option.
Field whose current value scopes the dynamic catalog.
Connector-owned fixed choices. Mutually exclusive with data_source.
object
Conditions that must all match before this option is offered by the UI. The connector still performs authoritative semantic validation.
One connector field equals one scalar value.
Conditions deliberately stay small and inspectable. Multiple conditions on one rule are ANDed; connectors can declare multiple ordered rules when they need OR behavior.
Optional connector-owned explanation for richer selectors.
Connector-owned frontend localization key.
Scalar type submitted by a select field.
Select is a UI control, not a wire type. Keeping the value type explicit is required for dynamic choices such as a numeric remote node id.
True 表示该字段失焦时前端可以安全 trim。
可被前端用于即时反馈、且必须由后端再次执行的基础约束。
object
Conditions that must all match for the field to be rendered.
One connector field equals one scalar value.
Conditions deliberately stay small and inspectable. Multiple conditions on one rule are ANDed; connectors can declare multiple ordered rules when they need OR behavior.
用于把 action 归类到授权、连接测试、policy action 等入口。
前端本地化 label key。
True 表示该动作会修改 provider 远端状态。
Connector-owned presentation schema for successful structured output.
Action output remains transient and is never copied into policy config.
object
Connector-owned label used when a boolean value is false.
Connector-owned localization key used as the field label.
Top-level key read from StoragePolicyActionResult.output.
Connector-owned label used when a boolean value is true.
Wire value shape accepted by the generic presenter.
True 表示执行前必须存在可用授权凭据。
True 表示 UI 在执行前应展示明确确认步骤。
True 表示必须先保存 policy,draft 参数不能执行。
授权 provider,例如 microsoft_graph。
存储对象能力。
object
是否支持容量观测。
是否支持高效 range read。
是否支持底层对象路径列举。
底层对象路径采用 opaque UUID,还是保留原文件名作为 provider item name。
是否暴露对象存储 upload/download strategy 选项。
是否支持 presigned download。
是否需要或支持 remote node 绑定。
是否支持 provider/storage-native media metadata。
是否支持 provider/storage-native thumbnail。
当前 connector 能解析并输出的配置 schema 版本。
持久化到 policy 的稳定 connector/plugin id。
Connector-owned credential management presentation and lifecycle copy.
Generic admin code consumes these semantic slots without knowing the connector id or provider-specific localization keys.
object
Message shown after the authorization window is opened.
Localized lifecycle label for the original authorization time.
Message shown after creating a policy that still needs authorization.
Status text shown while the credential snapshot is loading.
Label used when an existing credential starts authorization again.
Accessible label for the redirect URI copy action.
Redirect URI registration guidance.
Label for an authorization redirect URI exposed by the platform.
Localized lifecycle label for the latest token refresh time.
Message shown when authorization is requested with unsaved policy data.
Message shown when credential validation is requested with unsaved data.
Credential status wire value to connector-owned presentation metadata.
The map keeps the UI independent from provider-specific status copy and lets future connector credential contracts add status values without a frontend provider matrix.
object
object
Optional guidance shown below the normalized reason.
Optional alert heading for states that require administrator attention.
Optional explanatory copy for this status.
Connector-owned localized status label.
Localized fallback used when no reason rule matches.
Connector-owned normalization rules for sanitized wire reasons.
object
Case-insensitive fragments matched against the sanitized status reason.
Connector-owned localization key presented instead of the wire reason.
Semantic styling consumed by the generic credential panel.
Credential panel heading.
Localized lifecycle label for the latest validation time.
Optional success detail rendered with connector-provided parameters.
Message shown after a credential validates successfully.
Connector 的主要凭据模式。
凭据 payload 的独立 schema 版本。配置字段演进不应使已保存凭据失效。
Policy 数据相对于多个 Primary 的可见范围。
人类可读说明。
管理端配置字段声明。
object
Connector localization key for a collapsed advanced field group.
True 表示 endpoint 可以省略 URL scheme,由 connector 在后端补齐或解释。
Endpoint 允许的 URL protocol,取值与浏览器 URL.protocol 一致,例如 https:。
Connector-owned rule deciding whether an empty optional text field also
resolves to default_value.
Ordered conditional defaults. The first matching rule wins; when none
matches, default_value remains the fallback.
Ordered connector-owned default selected from the current field values.
object
One connector field equals one scalar value.
Conditions deliberately stay small and inspectable. Multiple conditions on one rule are ANDed; connectors can declare multiple ordered rules when they need OR behavior.
可选 help 文案 key。
What the form/payload normalizer does when visible_when is false.
Endpoint 协议不合法时的前端文案 key。
前端可用的基础控件类型。
前端本地化 label key。默认通常等于 name。
提交 payload 中的字段名。
可选 placeholder,本地化策略由前端决定。
是否必填。复杂条件校验仍由 connector/service 做最终裁决。
字段必填校验失败时的前端文案 key。
Conditions that make an otherwise optional field required in the UI.
One connector field equals one scalar value.
Conditions deliberately stay small and inspectable. Multiple conditions on one rule are ANDed; connectors can declare multiple ordered rules when they need OR behavior.
字段进入哪个配置域。
是否是敏感字段,前端应按 secret input 处理,后端不应明文回显。
Select control contract. Present exactly when kind is select.
object
Whether a string select may accept a value outside its fixed presets.
Connector-owned label for a synthetic option that clears the explicit value and resumes descriptor default resolution.
Connector-owned label for the synthetic custom-value option.
Field whose current value scopes the dynamic catalog.
Connector-owned fixed choices. Mutually exclusive with data_source.
object
Conditions that must all match before this option is offered by the UI. The connector still performs authoritative semantic validation.
One connector field equals one scalar value.
Conditions deliberately stay small and inspectable. Multiple conditions on one rule are ANDed; connectors can declare multiple ordered rules when they need OR behavior.
Optional connector-owned explanation for richer selectors.
Connector-owned frontend localization key.
Scalar type submitted by a select field.
Select is a UI control, not a wire type. Keeping the value type explicit is required for dynamic choices such as a numeric remote node id.
True 表示该字段失焦时前端可以安全 trim。
可被前端用于即时反馈、且必须由后端再次执行的基础约束。
object
Conditions that must all match for the field to be rendered.
One connector field equals one scalar value.
Conditions deliberately stay small and inspectable. Multiple conditions on one rule are ANDed; connectors can declare multiple ordered rules when they need OR behavior.
人类可读名称。
Target-owned in-place promotion contracts from compatible connectors.
Target-owned contract for promoting a compatible saved policy in place.
object
object
Require the target connector’s normalized value to remain exactly equal to the normalized source value. Use this for object-namespace fields.
Target-owned confirmation copy rendered before mutating a saved policy.
object
Require the target connector’s normalized value to remain exactly equal to the normalized source value. Use this for object-namespace fields.
Target-owned recommendation copy rendered by the generic UI.
Stable identity for one target-owned in-place connector promotion.
object
Negate the matcher result. This keeps exclusions composable without adding a second inverse variant for every matcher kind.
Source connector config field inspected by the generic recommendation and server-side eligibility checks.
Stable connector/plugin identifier.
Built-in connectors use reverse-DNS-style identifiers such as
asterdrive.storage.local. Dynamically loaded plugins use the same type and
registry path, so core code never needs a built-in connector enum.
用于开发追踪的相关 issue 编号,不参与业务逻辑。
是否需要额外授权才能成为可用 policy。
是否能在首次系统初始化中直接创建一个可用的默认 policy。
需要先保存 policy、再跳转授权或完成其他后置配置的 connector 应设为 false。
管理端展示元数据。
这类 label/icon/helper 虽然最终由前端渲染,但语义上属于 connector: 新 connector 不应该要求前端再维护一份 driver 展示矩阵。
object
Connector-owned badge accent color.
Keeping the color as structured RGB data lets external connectors pick their own presentation without extending a core-owned color enum or sending executable CSS through the descriptor API.
object
Base_path 为空时展示的 fallback 文案。
Base_path input placeholder。
创建向导配置步骤说明 key。
创建向导配置步骤标题 key。
前端 i18n description key。
编辑页上下文说明 key。
创建向导右侧 helper 文案 key。
Icon 库名称兜底。
Driver 选择卡片/上下文条图标资源。
前端 i18n label key。
上传工作流能力。
object
是否允许前端直接拿 provider-native session 上传。
支持对象存储 multipart/block upload 语义。
对象存储 multipart/block upload 的具体语义。
object
是否支持清理未完成的 provider multipart/block upload。
Complete 阶段是否需要显式提交 part 列表。
是否支持查询 provider 已接收的 part/block 列表。
Provider 最小非 final part 大小。
True 表示实际 part size 由 policy chunk_size 决定,但会被 min_part_size 修正。
浏览器直传 part 后是否必须从响应读取 ETag。
Azure block upload 通过 URL 中的 blockid 作为 completion token,因此不要求 浏览器能读 ETag;S3-compatible multipart 通常需要 ETag。
浏览器是否可以通过 presigned URL 直传 part。
AsterDrive 服务端是否可以 relay 上传 part。
支持浏览器/客户端使用 presigned URL 直传。
支持 provider-native resumable/session upload。
Provider-native resumable/session upload 的具体语义。
该字段只描述 provider 自己的 session/range 协议,例如 Microsoft Graph upload session。S3-compatible multipart/block upload 不应填这里。
object
当前实现是否向上层暴露 provider-native abort。
后端默认使用的分片大小。
分片边界对齐要求。
是否允许浏览器直接拿 provider session 上传。
Provider 是否在最后一个 range/fragment 接收后隐式完成 session。
Provider 或当前实现允许的最大分片大小。
小文件可绕过 resumable session 的大小上限。
Provider 接受的最小分片大小。
Provider 标识,例如 microsoft_graph。
面向 UI/诊断的 session 名称,例如 Microsoft Graph upload session。
当前实现是否向上层暴露 provider-native status/query。
后端/客户端可以用单请求写入小对象。
单请求上传的静态语义。实际是否走 direct 仍受 policy chunk_size 限制。
object
Provider 自身单请求 API 的最大对象大小;None 表示当前 connector 不声明静态上限。
True 表示单请求 direct/relay 上限由具体 policy chunk_size 决定。
True 表示浏览器把对象发给 AsterDrive,由后端 relay 到 provider。
后端可以通过 StreamUploadDriver 把 reader 写入 provider。
Example
{ "code": "success", "data": [ { "actions": [ { "endpoints": [ "execute_draft_storage_policy_action" ], "fields": [ { "default_mode": "missing_only", "inactive_value_behavior": "preserve", "kind": "text", "scope": "connector_config", "select": { "data_source": "remote_nodes", "value_kind": "string" } } ], "kind": "custom", "output_fields": [ { "value_kind": "text" } ] } ], "capabilities": { "object_naming": "opaque_uuid" }, "credential_management": { "status_presentations": { "additionalProperty": { "tone": "neutral" } } }, "credential_mode": "none", "deployment_scope": "instance_local", "fields": [ { "default_mode": "missing_only", "inactive_value_behavior": "preserve", "kind": "text", "scope": "connector_config", "select": { "data_source": "remote_nodes", "value_kind": "string" } } ], "promotions": [ { "requirements": [ { "matcher": { "kind": "string_equals" } } ] } ] } ]}Unauthorized
Forbidden