| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using Admin.NET.Plugin.AiDOP.Const.S8;
- using Admin.NET.Plugin.AiDOP.Infrastructure.S8;
- using Admin.NET.Plugin.AiDOP.Service.S8.Rules.DataAccess;
- namespace Admin.NET.Plugin.AiDOP.Controllers.S8;
- /// <summary>
- /// 治理数据集目录(只读)。
- ///
- /// S8-STANDARD-DATASET-HARD-CUTOVER-1:取代已物理删除的「数据源」配置端点。
- /// 二者的性质完全不同,不要当成改名:
- /// · 旧的 data-sources 是**租户可写的物理连接配置**(含连接串与凭据);
- /// · 本端点是**平台级只读目录**,内容来自代码内的 Catalog + Provider Registry,
- /// 没有任何写入口 —— 数据集的增减是数据平台侧的开发行为,不是租户配置行为。
- ///
- /// 只返回 <b>Catalog 已定义 且 Provider 已注册 且 定义未停用</b> 的数据集:
- /// 让用户在向导里选到一个"定义了但没实现"的数据集,只会把失败推迟到启用那一刻
- /// (dataset_provider_not_registered),对配置者毫无帮助。
- /// </summary>
- [ApiController]
- [Route("api/aidop/s8/config/datasets")]
- [NonUnify]
- public class AdoS8ConfigDatasetsController : ControllerBase
- {
- private readonly IS8DatasetCatalog _catalog;
- private readonly S8MonitoringDataProviderRegistry _registry;
- public AdoS8ConfigDatasetsController(IS8DatasetCatalog catalog, S8MonitoringDataProviderRegistry registry)
- {
- _catalog = catalog;
- _registry = registry;
- }
- [HttpGet]
- [S8Permission(S8PermissionCatalog.ConfigRead)]
- public IActionResult ListAsync()
- {
- var rows = _catalog.All
- .Where(d => d.IsActive && _registry.IsRegistered(d.DatasetCode))
- .OrderBy(d => d.DatasetCode, StringComparer.Ordinal)
- .Select(d => new
- {
- datasetCode = d.DatasetCode,
- displayName = d.DisplayName,
- kind = d.Kind.ToString(),
- // 供前端在选择规则类型时先行过滤:能力不匹配的组合在这里就该看不见,
- // 而不是等提交后被 Enable Gate 以 dataset_capability_mismatch 拒绝。
- supportsTimeout = d.Capabilities.SupportsTimeout,
- supportsShortage = d.Capabilities.SupportsShortage,
- supportsOutOfRange = d.Capabilities.SupportsOutOfRange
- })
- .ToList();
- return Ok(rows);
- }
- }
|