smart-admin-web 10.13.1 → 10.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/api/index.d.ts +37 -0
- package/dist/api/index.js +35 -14
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +381 -3
- package/dist/assets/icons/ph-subset.json.js +3 -3
- package/dist/assets/smart-logo.svg.js +5 -0
- package/dist/assets/smart-logo.svg.js.map +1 -0
- package/dist/components/SmartLogo.vue.d.ts +3 -0
- package/dist/components/SmartLogo.vue.js +1 -1
- package/dist/components/SmartLogo2.vue.js +22 -64
- package/dist/components/SmartLogo2.vue.js.map +1 -1
- package/dist/composables/useLoginHero.d.ts +2 -0
- package/dist/composables/useLoginHero.js +22 -0
- package/dist/composables/useLoginHero.js.map +1 -0
- package/dist/composables/usePageTitle.js +16 -14
- package/dist/composables/usePageTitle.js.map +1 -1
- package/dist/composables/useSite.d.ts +5 -0
- package/dist/composables/useSite.js +16 -13
- package/dist/composables/useSite.js.map +1 -1
- package/dist/index.js +92 -91
- package/dist/lib/favicon.d.ts +1 -0
- package/dist/lib/favicon.js +12 -0
- package/dist/lib/favicon.js.map +1 -0
- package/dist/lib/loginHero.d.ts +16 -0
- package/dist/lib/loginHero.js +33 -0
- package/dist/lib/loginHero.js.map +1 -0
- package/dist/lib/logoCrop.d.ts +25 -0
- package/dist/lib/logoCrop.js +22 -0
- package/dist/lib/logoCrop.js.map +1 -0
- package/dist/lib/runtime.d.ts +2 -0
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/runtime.js.map +1 -1
- package/dist/lib/securityRules.d.ts +26 -0
- package/dist/lib/securityRules.js +86 -0
- package/dist/lib/securityRules.js.map +1 -0
- package/dist/locales/en-US.d.ts +250 -28
- package/dist/locales/en-US.js +271 -58
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/zh-CN.d.ts +250 -28
- package/dist/locales/zh-CN.js +266 -58
- package/dist/locales/zh-CN.js.map +1 -1
- package/dist/router/viewRegistry.js +10 -10
- package/dist/router/viewRegistry.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/utils/oauthBrand.d.ts +34 -9
- package/dist/utils/oauthBrand.js +70 -74
- package/dist/utils/oauthBrand.js.map +1 -1
- package/dist/views/login/components/LoginHeroPanel.vue.d.ts +18 -0
- package/dist/views/login/components/LoginHeroPanel.vue.js +8 -0
- package/dist/views/login/components/LoginHeroPanel.vue.js.map +1 -0
- package/dist/views/login/components/LoginHeroPanel2.vue.js +66 -0
- package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -0
- package/dist/views/login/skins/SplitPanel.vue.js +1 -1
- package/dist/views/login/skins/SplitPanel2.vue.js +39 -59
- package/dist/views/login/skins/SplitPanel2.vue.js.map +1 -1
- package/dist/views/system/api-docs/index.vue.js +5 -0
- package/dist/views/system/api-docs/index.vue.js.map +1 -0
- package/dist/views/system/api-docs/index2.vue.js +64 -0
- package/dist/views/system/api-docs/index2.vue.js.map +1 -0
- package/dist/views/system/config/components/AdminMock.vue.js +8 -0
- package/dist/views/system/config/components/AdminMock.vue.js.map +1 -0
- package/dist/views/system/config/components/AdminMock2.vue.js +76 -0
- package/dist/views/system/config/components/AdminMock2.vue.js.map +1 -0
- package/dist/views/system/config/components/AdvancedSection.vue.js +5 -0
- package/dist/views/system/config/components/AdvancedSection.vue.js.map +1 -0
- package/dist/views/system/config/components/AdvancedSection2.vue.js +135 -0
- package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/BrandSection.vue.d.ts +7 -0
- package/dist/views/system/config/components/BrandSection.vue.js +8 -0
- package/dist/views/system/config/components/BrandSection.vue.js.map +1 -0
- package/dist/views/system/config/components/BrandSection2.vue.js +264 -0
- package/dist/views/system/config/components/BrandSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgGroup.vue.d.ts +18 -0
- package/dist/views/system/config/components/CfgGroup.vue.js +8 -0
- package/dist/views/system/config/components/CfgGroup.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgGroup2.vue.js +22 -0
- package/dist/views/system/config/components/CfgGroup2.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgRow.vue.d.ts +26 -0
- package/dist/views/system/config/components/CfgRow.vue.js +9 -0
- package/dist/views/system/config/components/CfgRow.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgRow2.vue.js +53 -0
- package/dist/views/system/config/components/CfgRow2.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgSegment.vue.d.ts +28 -0
- package/dist/views/system/config/components/CfgSegment.vue.js +8 -0
- package/dist/views/system/config/components/CfgSegment.vue.js.map +1 -0
- package/dist/views/system/config/components/CfgSegment2.vue.js +44 -0
- package/dist/views/system/config/components/CfgSegment2.vue.js.map +1 -0
- package/dist/views/system/config/components/ConfigFormModal.vue.js +5 -2
- package/dist/views/system/config/components/ConfigFormModal.vue.js.map +1 -1
- package/dist/views/system/config/components/ConfigFormModal2.vue.js +66 -56
- package/dist/views/system/config/components/ConfigFormModal2.vue.js.map +1 -1
- package/dist/views/system/config/components/JobSection.vue.js +8 -0
- package/dist/views/system/config/components/JobSection.vue.js.map +1 -0
- package/dist/views/system/config/components/JobSection2.vue.js +138 -0
- package/dist/views/system/config/components/JobSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/{GroupExtraConfig.vue.d.ts → LoginMock.vue.d.ts} +3 -4
- package/dist/views/system/config/components/LoginMock.vue.js +8 -0
- package/dist/views/system/config/components/LoginMock.vue.js.map +1 -0
- package/dist/views/system/config/components/LoginMock2.vue.js +121 -0
- package/dist/views/system/config/components/LoginMock2.vue.js.map +1 -0
- package/dist/views/system/config/components/LogoCropper.vue.d.ts +10 -0
- package/dist/views/system/config/components/LogoCropper.vue.js +8 -0
- package/dist/views/system/config/components/LogoCropper.vue.js.map +1 -0
- package/dist/views/system/config/components/LogoCropper2.vue.js +122 -0
- package/dist/views/system/config/components/LogoCropper2.vue.js.map +1 -0
- package/dist/views/system/config/components/LogoEditor.vue.js +8 -0
- package/dist/views/system/config/components/LogoEditor.vue.js.map +1 -0
- package/dist/views/system/config/components/LogoEditor2.vue.js +163 -0
- package/dist/views/system/config/components/LogoEditor2.vue.js.map +1 -0
- package/dist/views/system/config/components/ProviderSheet.vue.d.ts +17 -0
- package/dist/views/system/config/components/ProviderSheet.vue.js +8 -0
- package/dist/views/system/config/components/ProviderSheet.vue.js.map +1 -0
- package/dist/views/system/config/components/ProviderSheet2.vue.js +343 -0
- package/dist/views/system/config/components/ProviderSheet2.vue.js.map +1 -0
- package/dist/views/system/config/components/ScaleToFit.vue.d.ts +17 -0
- package/dist/views/system/config/components/ScaleToFit.vue.js +8 -0
- package/dist/views/system/config/components/ScaleToFit.vue.js.map +1 -0
- package/dist/views/system/config/components/ScaleToFit2.vue.js +41 -0
- package/dist/views/system/config/components/ScaleToFit2.vue.js.map +1 -0
- package/dist/views/system/config/components/SectionLayout.vue.d.ts +28 -0
- package/dist/views/system/config/components/SectionLayout.vue.js +8 -0
- package/dist/views/system/config/components/SectionLayout.vue.js.map +1 -0
- package/dist/views/system/config/components/SectionLayout2.vue.js +45 -0
- package/dist/views/system/config/components/SectionLayout2.vue.js.map +1 -0
- package/dist/views/system/config/components/SecuritySection.vue.js +8 -0
- package/dist/views/system/config/components/SecuritySection.vue.js.map +1 -0
- package/dist/views/system/config/components/SecuritySection2.vue.js +416 -0
- package/dist/views/system/config/components/SecuritySection2.vue.js.map +1 -0
- package/dist/views/system/config/components/SensitiveSection.vue.js +8 -0
- package/dist/views/system/config/components/SensitiveSection.vue.js.map +1 -0
- package/dist/views/system/config/components/SensitiveSection2.vue.js +209 -0
- package/dist/views/system/config/components/SensitiveSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/SigninSection.vue.d.ts +3 -0
- package/dist/views/system/config/components/SigninSection.vue.js +8 -0
- package/dist/views/system/config/components/SigninSection.vue.js.map +1 -0
- package/dist/views/system/config/components/SigninSection2.vue.js +201 -0
- package/dist/views/system/config/components/SigninSection2.vue.js.map +1 -0
- package/dist/views/system/config/components/UploadSection.vue.d.ts +3 -0
- package/dist/views/system/config/components/UploadSection.vue.js +8 -0
- package/dist/views/system/config/components/UploadSection.vue.js.map +1 -0
- package/dist/views/system/config/components/UploadSection2.vue.js +167 -0
- package/dist/views/system/config/components/UploadSection2.vue.js.map +1 -0
- package/dist/views/system/config/draft.d.ts +148 -0
- package/dist/views/system/config/draft.js +170 -0
- package/dist/views/system/config/draft.js.map +1 -0
- package/dist/views/system/config/flash.d.ts +2 -0
- package/dist/views/system/config/flash.js +9 -0
- package/dist/views/system/config/flash.js.map +1 -0
- package/dist/views/system/config/groups.d.ts +35 -7
- package/dist/views/system/config/groups.js +99 -14
- package/dist/views/system/config/groups.js.map +1 -1
- package/dist/views/system/config/index.vue.js +4 -1
- package/dist/views/system/config/index.vue.js.map +1 -1
- package/dist/views/system/config/index2.vue.js +180 -115
- package/dist/views/system/config/index2.vue.js.map +1 -1
- package/dist/views/system/config/providerForm.d.ts +33 -0
- package/dist/views/system/config/providerForm.js +63 -0
- package/dist/views/system/config/providerForm.js.map +1 -0
- package/package.json +4 -4
- package/dist/views/system/config/components/ExternalAuthConfig.vue.js +0 -8
- package/dist/views/system/config/components/ExternalAuthConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/ExternalAuthConfig2.vue.js +0 -218
- package/dist/views/system/config/components/ExternalAuthConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/GroupExtraConfig.vue.js +0 -8
- package/dist/views/system/config/components/GroupExtraConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/GroupExtraConfig2.vue.js +0 -108
- package/dist/views/system/config/components/GroupExtraConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/HighSensConfig.vue.js +0 -5
- package/dist/views/system/config/components/HighSensConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/HighSensConfig2.vue.js +0 -134
- package/dist/views/system/config/components/HighSensConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/JobConfig.vue.js +0 -5
- package/dist/views/system/config/components/JobConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/JobConfig2.vue.js +0 -116
- package/dist/views/system/config/components/JobConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/OtherConfig.vue.js +0 -5
- package/dist/views/system/config/components/OtherConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/OtherConfig2.vue.js +0 -121
- package/dist/views/system/config/components/OtherConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/SecurityConfig.vue.js +0 -8
- package/dist/views/system/config/components/SecurityConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/SecurityConfig2.vue.js +0 -456
- package/dist/views/system/config/components/SecurityConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/SysBaseConfig.vue.js +0 -5
- package/dist/views/system/config/components/SysBaseConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/SysBaseConfig2.vue.js +0 -107
- package/dist/views/system/config/components/SysBaseConfig2.vue.js.map +0 -1
- package/dist/views/system/config/components/UploadConfig.vue.js +0 -5
- package/dist/views/system/config/components/UploadConfig.vue.js.map +0 -1
- package/dist/views/system/config/components/UploadConfig2.vue.js +0 -135
- package/dist/views/system/config/components/UploadConfig2.vue.js.map +0 -1
- /package/dist/views/system/{config/components/ExternalAuthConfig.vue.d.ts → api-docs/index.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{HighSensConfig.vue.d.ts → AdminMock.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{JobConfig.vue.d.ts → AdvancedSection.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{OtherConfig.vue.d.ts → JobSection.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{SecurityConfig.vue.d.ts → LogoEditor.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{SysBaseConfig.vue.d.ts → SecuritySection.vue.d.ts} +0 -0
- /package/dist/views/system/config/components/{UploadConfig.vue.d.ts → SensitiveSection.vue.d.ts} +0 -0
package/dist/api/schema.d.ts
CHANGED
|
@@ -487,6 +487,26 @@ export interface paths {
|
|
|
487
487
|
patch?: never;
|
|
488
488
|
trace?: never;
|
|
489
489
|
};
|
|
490
|
+
"/api/v1/sys/config/logo": {
|
|
491
|
+
parameters: {
|
|
492
|
+
query?: never;
|
|
493
|
+
header?: never;
|
|
494
|
+
path?: never;
|
|
495
|
+
cookie?: never;
|
|
496
|
+
};
|
|
497
|
+
get?: never;
|
|
498
|
+
put?: never;
|
|
499
|
+
/**
|
|
500
|
+
* 上传站点 Logo(只收 PNG/JPG/WEBP、1 MB 以内,不受全局上传白名单约束),返回带签名直链的文件信息;
|
|
501
|
+
* 前端拿 `viewUrl` 写进 `sys.site.logo` 后随批量保存生效。
|
|
502
|
+
*/
|
|
503
|
+
post: operations["Config_UploadLogo"];
|
|
504
|
+
delete?: never;
|
|
505
|
+
options?: never;
|
|
506
|
+
head?: never;
|
|
507
|
+
patch?: never;
|
|
508
|
+
trace?: never;
|
|
509
|
+
};
|
|
490
510
|
"/api/v1/sys/config": {
|
|
491
511
|
parameters: {
|
|
492
512
|
query?: never;
|
|
@@ -705,7 +725,7 @@ export interface paths {
|
|
|
705
725
|
cookie?: never;
|
|
706
726
|
};
|
|
707
727
|
/**
|
|
708
|
-
*
|
|
728
|
+
* 管理端:全部已配置完整的 provider(含已禁用)+ enabled / linkByAccount 两个运营开关,
|
|
709
729
|
* 供系统配置「第三方登录」Tab 的卡片开关。权限码 = 本路由;种子挂在系统配置菜单下。
|
|
710
730
|
*/
|
|
711
731
|
get: operations["ExternalAuth_ProvidersAll"];
|
|
@@ -839,6 +859,61 @@ export interface paths {
|
|
|
839
859
|
patch?: never;
|
|
840
860
|
trace?: never;
|
|
841
861
|
};
|
|
862
|
+
"/api/v1/sys/external-auth/providers": {
|
|
863
|
+
parameters: {
|
|
864
|
+
query?: never;
|
|
865
|
+
header?: never;
|
|
866
|
+
path?: never;
|
|
867
|
+
cookie?: never;
|
|
868
|
+
};
|
|
869
|
+
/**
|
|
870
|
+
* 目录:已装的类型、全部 provider(配置状态、非机密字段值、机密字段的 hasValue 与尾四位、要填到厂商后台的回调地址),
|
|
871
|
+
* 以及 `dataProtectionEphemeral`(主密钥是临时的,保存会被拒)与 `callbackBaseUrlMissing`(生产环境没配回调基址)两个页面级告警。
|
|
872
|
+
*/
|
|
873
|
+
get: operations["ExternalAuthProvider_Get"];
|
|
874
|
+
put?: never;
|
|
875
|
+
post?: never;
|
|
876
|
+
delete?: never;
|
|
877
|
+
options?: never;
|
|
878
|
+
head?: never;
|
|
879
|
+
patch?: never;
|
|
880
|
+
trace?: never;
|
|
881
|
+
};
|
|
882
|
+
"/api/v1/sys/external-auth/providers/{code}": {
|
|
883
|
+
parameters: {
|
|
884
|
+
query?: never;
|
|
885
|
+
header?: never;
|
|
886
|
+
path?: never;
|
|
887
|
+
cookie?: never;
|
|
888
|
+
};
|
|
889
|
+
get?: never;
|
|
890
|
+
/** 新增或更新一条配置(body 带 `type`)。机密字段留空 = 不修改,首次保存必填;改了 OIDC 的 Authority 要重输机密。 */
|
|
891
|
+
put: operations["ExternalAuthProvider_Save"];
|
|
892
|
+
post?: never;
|
|
893
|
+
/** 清除配置(软删)。不会删除用户已绑定的外部账号。 */
|
|
894
|
+
delete: operations["ExternalAuthProvider_Delete"];
|
|
895
|
+
options?: never;
|
|
896
|
+
head?: never;
|
|
897
|
+
patch?: never;
|
|
898
|
+
trace?: never;
|
|
899
|
+
};
|
|
900
|
+
"/api/v1/sys/external-auth/providers/test": {
|
|
901
|
+
parameters: {
|
|
902
|
+
query?: never;
|
|
903
|
+
header?: never;
|
|
904
|
+
path?: never;
|
|
905
|
+
cookie?: never;
|
|
906
|
+
};
|
|
907
|
+
get?: never;
|
|
908
|
+
put?: never;
|
|
909
|
+
/** 连接测试:用表单里的值测,机密留空则用已保存的;不落库。结果逐项列出,失败原因在返回体里,不抛异常。 */
|
|
910
|
+
post: operations["ExternalAuthProvider_Test"];
|
|
911
|
+
delete?: never;
|
|
912
|
+
options?: never;
|
|
913
|
+
head?: never;
|
|
914
|
+
patch?: never;
|
|
915
|
+
trace?: never;
|
|
916
|
+
};
|
|
842
917
|
"/api/v1/sys/job/page": {
|
|
843
918
|
parameters: {
|
|
844
919
|
query?: never;
|
|
@@ -3058,6 +3133,118 @@ export interface components {
|
|
|
3058
3133
|
/** @description 来源枚举类型名(内核的是 `ErrorCode`,消费者的是自己那个) */
|
|
3059
3134
|
source?: string;
|
|
3060
3135
|
};
|
|
3136
|
+
/** @description 「登录方式」目录出参:在服务层目录之上加上页面级的回调基址告警。 */
|
|
3137
|
+
ExternalAuthCatalogOutput: {
|
|
3138
|
+
/** @description 数据保护主密钥是进程内临时密钥,此时保存会被拒(40034) */
|
|
3139
|
+
dataProtectionEphemeral: boolean;
|
|
3140
|
+
/** @description 生产环境没配 `CallbackBaseUrl`,登录时控制器会抛异常 */
|
|
3141
|
+
callbackBaseUrlMissing: boolean;
|
|
3142
|
+
/** @description 已安装的类型 */
|
|
3143
|
+
types: components["schemas"]["ExternalAuthTypeView"][];
|
|
3144
|
+
/** @description 全部 provider;每项带回调地址 */
|
|
3145
|
+
providers: components["schemas"]["ExternalAuthProviderView"][];
|
|
3146
|
+
/** @description 回调地址模板,标识处为 `{code}`;没配回调基址时为空串 */
|
|
3147
|
+
callbackUriTemplate: string;
|
|
3148
|
+
};
|
|
3149
|
+
/** @description 连接测试的一项检查(出参)。string ExternalAuthCheckView.Status 为 `ok` / `failed` / `skipped`。 */
|
|
3150
|
+
ExternalAuthCheckView: {
|
|
3151
|
+
key: string;
|
|
3152
|
+
status: string;
|
|
3153
|
+
detail: null | string;
|
|
3154
|
+
};
|
|
3155
|
+
/** @description 类型描述里的一个字段(出参)。字段含义见 ExternalAuthField。 */
|
|
3156
|
+
ExternalAuthFieldView: {
|
|
3157
|
+
name: string;
|
|
3158
|
+
secret: boolean;
|
|
3159
|
+
required: boolean;
|
|
3160
|
+
default: null | string;
|
|
3161
|
+
definesEndpoint: boolean;
|
|
3162
|
+
};
|
|
3163
|
+
/**
|
|
3164
|
+
* @description 保存入参。IReadOnlyDictionary<string, string?>? ExternalAuthProviderSaveInput.Secrets 的属性名必须叫 `Secrets`:操作日志的脱敏器按名字子串匹配 `secret`,
|
|
3165
|
+
* 命中即整包打码,机密不会落进日志。
|
|
3166
|
+
*/
|
|
3167
|
+
ExternalAuthProviderSaveInput: {
|
|
3168
|
+
/** @description 类型码;新增时决定类型,更新时必须与已存类型一致 */
|
|
3169
|
+
type: string;
|
|
3170
|
+
/** @description 展示名;空 = 用类型默认 */
|
|
3171
|
+
displayName: null | string;
|
|
3172
|
+
/** @description 图标;空 = 用类型默认 */
|
|
3173
|
+
icon: null | string;
|
|
3174
|
+
/** @description 非机密字段值(字段名 → 值) */
|
|
3175
|
+
values: null | {
|
|
3176
|
+
[key: string]: string;
|
|
3177
|
+
};
|
|
3178
|
+
/** @description 机密字段值(字段名 → 明文);留空 = 不修改,首次保存必填 */
|
|
3179
|
+
secrets: null | {
|
|
3180
|
+
[key: string]: string;
|
|
3181
|
+
};
|
|
3182
|
+
};
|
|
3183
|
+
/** @description 连接测试入参:用表单里的值测,不落库。IReadOnlyDictionary<string, string?>? ExternalAuthProviderTestInput.Secrets 留空的机密字段取 string? ExternalAuthProviderTestInput.Code 对应的已保存值。 */
|
|
3184
|
+
ExternalAuthProviderTestInput: {
|
|
3185
|
+
/** @description 已保存 provider 的码;新增未保存时可空,此时机密必须全部在 IReadOnlyDictionary<string, string?>? ExternalAuthProviderTestInput.Secrets 里给出 */
|
|
3186
|
+
code: null | string;
|
|
3187
|
+
/** @description 类型码 */
|
|
3188
|
+
type: string;
|
|
3189
|
+
/** @description 非机密字段值 */
|
|
3190
|
+
values: null | {
|
|
3191
|
+
[key: string]: string;
|
|
3192
|
+
};
|
|
3193
|
+
/** @description 机密字段值 */
|
|
3194
|
+
secrets: null | {
|
|
3195
|
+
[key: string]: string;
|
|
3196
|
+
};
|
|
3197
|
+
};
|
|
3198
|
+
/** @description 一个 provider 的配置视图(出参)。<b>不含机密明文</b>:IReadOnlyDictionary<string, ExternalAuthSecretState> ExternalAuthProviderView.Secrets 只有状态。 */
|
|
3199
|
+
ExternalAuthProviderView: {
|
|
3200
|
+
/** @description provider 码 */
|
|
3201
|
+
code: string;
|
|
3202
|
+
/** @description 类型码;代码注册的 provider 无类型,为空串 */
|
|
3203
|
+
type: string;
|
|
3204
|
+
/** @description 展示名(已回退到类型默认) */
|
|
3205
|
+
displayName: string;
|
|
3206
|
+
/** @description 图标(已回退到类型默认) */
|
|
3207
|
+
icon: null | string;
|
|
3208
|
+
/** @description ExternalAuthProviderSource */
|
|
3209
|
+
source: string;
|
|
3210
|
+
/** @description 对应类型已安装;库里的行对应的可选包被卸载后为 `false`,此时不出实例 */
|
|
3211
|
+
installed: boolean;
|
|
3212
|
+
/** @description 必填项与必填机密都齐全,登录可用 */
|
|
3213
|
+
configured: boolean;
|
|
3214
|
+
/** @description 非机密字段值 */
|
|
3215
|
+
values: {
|
|
3216
|
+
[key: string]: string;
|
|
3217
|
+
};
|
|
3218
|
+
/** @description 机密字段状态,键为字段名 */
|
|
3219
|
+
secrets: {
|
|
3220
|
+
[key: string]: components["schemas"]["ExternalAuthSecretState"];
|
|
3221
|
+
};
|
|
3222
|
+
/**
|
|
3223
|
+
* @description 要填到厂商后台的回调地址;由端点层按当前请求与 `CallbackBaseUrl` 算出
|
|
3224
|
+
* @default
|
|
3225
|
+
*/
|
|
3226
|
+
callbackUri: string;
|
|
3227
|
+
};
|
|
3228
|
+
/** @description 一个机密字段的状态:只回「是否已配置」与尾四位提示,永远没有明文。 */
|
|
3229
|
+
ExternalAuthSecretState: {
|
|
3230
|
+
/** @description 已配置 */
|
|
3231
|
+
hasValue: boolean;
|
|
3232
|
+
/** @description 尾四位;机密不足 8 位或未配置时为 `null` */
|
|
3233
|
+
hint: null | string;
|
|
3234
|
+
};
|
|
3235
|
+
/** @description 连接测试结果(出参):逐项列出;任何一项 `failed` 则 bool ExternalAuthTestView.Ok 为 `false`。 */
|
|
3236
|
+
ExternalAuthTestView: {
|
|
3237
|
+
ok: boolean;
|
|
3238
|
+
checks: components["schemas"]["ExternalAuthCheckView"][];
|
|
3239
|
+
};
|
|
3240
|
+
/** @description 已安装的 provider 类型(出参):管理页据此渲染「添加」入口与设置面板的字段。 */
|
|
3241
|
+
ExternalAuthTypeView: {
|
|
3242
|
+
type: string;
|
|
3243
|
+
defaultDisplayName: string;
|
|
3244
|
+
defaultIcon: null | string;
|
|
3245
|
+
allowMultiple: boolean;
|
|
3246
|
+
fields: components["schemas"]["ExternalAuthFieldView"][];
|
|
3247
|
+
};
|
|
3061
3248
|
/** @description 个人中心"账号绑定"列表项(只回展示所需,不回 Subject 等原始标识)。 */
|
|
3062
3249
|
ExternalBindingItem: {
|
|
3063
3250
|
/** @description provider 码(如 `github`/`wechat`)。 */
|
|
@@ -3081,7 +3268,7 @@ export interface components {
|
|
|
3081
3268
|
};
|
|
3082
3269
|
/** @description 管理端:全部已注册 provider + 当前运营启用状态(含已禁用,供配置中心开关)。 */
|
|
3083
3270
|
ExternalProviderAdminItem: {
|
|
3084
|
-
/** @description provider 码(如 `github`/`wechat`)
|
|
3271
|
+
/** @description provider 码(如 `github`/`wechat`),即登录方式配置里的 Code。 */
|
|
3085
3272
|
code: string;
|
|
3086
3273
|
displayName: string;
|
|
3087
3274
|
icon?: null | string;
|
|
@@ -3092,7 +3279,7 @@ export interface components {
|
|
|
3092
3279
|
};
|
|
3093
3280
|
/** @description 登录页可用的外部登录方式(仅非密钥字段;点亮 SSO 按钮用)。 */
|
|
3094
3281
|
ExternalProviderItem: {
|
|
3095
|
-
/** @description provider 码(如 `github`/`wechat`)
|
|
3282
|
+
/** @description provider 码(如 `github`/`wechat`),即登录方式配置里的 Code。 */
|
|
3096
3283
|
code: string;
|
|
3097
3284
|
displayName: string;
|
|
3098
3285
|
icon?: null | string;
|
|
@@ -3419,6 +3606,15 @@ export interface components {
|
|
|
3419
3606
|
ip?: null | string;
|
|
3420
3607
|
userAgent?: null | string;
|
|
3421
3608
|
};
|
|
3609
|
+
/** @description 登录页 Hero 的可选覆盖值;空值代表使用前端内置文案。 */
|
|
3610
|
+
LoginHeroOutput: {
|
|
3611
|
+
/** @description 主标题全文 */
|
|
3612
|
+
headline?: null | string;
|
|
3613
|
+
/** @description 主标题中需要强调色的原文片段 */
|
|
3614
|
+
highlight?: null | string;
|
|
3615
|
+
/** @description 卖点清单 */
|
|
3616
|
+
features?: string[];
|
|
3617
|
+
};
|
|
3422
3618
|
/** @description 登录入参。验证码字段在 `Security:Captcha:Enabled` 关闭时可不传(默认关)。 */
|
|
3423
3619
|
LoginInput: {
|
|
3424
3620
|
/** @description 登录账号 */
|
|
@@ -4463,6 +4659,48 @@ export interface components {
|
|
|
4463
4659
|
message?: null | string;
|
|
4464
4660
|
data?: null | components["schemas"]["DashboardSummaryOutput"];
|
|
4465
4661
|
};
|
|
4662
|
+
/**
|
|
4663
|
+
* @description 统一返回模型——所有接口的响应外壳。
|
|
4664
|
+
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
4665
|
+
* Message 是后端兜底文案(非浏览器调用方降级用,浏览器端应忽略它);Data 为业务载荷。<example>
|
|
4666
|
+
* 成功:`{ "code": 0, "msgKey": "common.success", "data": {...} }`<br />
|
|
4667
|
+
* 失败:`{ "code": 40001, "msgKey": "error.auth.passwordWrong", "args": {}, "message": "...", "data": null }`</example>
|
|
4668
|
+
*/
|
|
4669
|
+
ResultOfExternalAuthCatalogOutput: {
|
|
4670
|
+
/**
|
|
4671
|
+
* Format: int32
|
|
4672
|
+
* @description 业务码,0 为成功,其余见 ErrorCode 分段
|
|
4673
|
+
*/
|
|
4674
|
+
code?: number | string;
|
|
4675
|
+
/** @description 语义键(前端 i18n 语言包的键),如 `error.auth.passwordWrong` */
|
|
4676
|
+
msgKey?: null | string;
|
|
4677
|
+
/** @description 文案插值参数,与语言包模板占位符对应;无参数时为 null(序列化省略) */
|
|
4678
|
+
args?: null | Record<string, never>;
|
|
4679
|
+
/** @description 兜底文案(仅降级用途,浏览器端一律走 MsgKey 翻译) */
|
|
4680
|
+
message?: null | string;
|
|
4681
|
+
data?: null | components["schemas"]["ExternalAuthCatalogOutput"];
|
|
4682
|
+
};
|
|
4683
|
+
/**
|
|
4684
|
+
* @description 统一返回模型——所有接口的响应外壳。
|
|
4685
|
+
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
4686
|
+
* Message 是后端兜底文案(非浏览器调用方降级用,浏览器端应忽略它);Data 为业务载荷。<example>
|
|
4687
|
+
* 成功:`{ "code": 0, "msgKey": "common.success", "data": {...} }`<br />
|
|
4688
|
+
* 失败:`{ "code": 40001, "msgKey": "error.auth.passwordWrong", "args": {}, "message": "...", "data": null }`</example>
|
|
4689
|
+
*/
|
|
4690
|
+
ResultOfExternalAuthTestView: {
|
|
4691
|
+
/**
|
|
4692
|
+
* Format: int32
|
|
4693
|
+
* @description 业务码,0 为成功,其余见 ErrorCode 分段
|
|
4694
|
+
*/
|
|
4695
|
+
code?: number | string;
|
|
4696
|
+
/** @description 语义键(前端 i18n 语言包的键),如 `error.auth.passwordWrong` */
|
|
4697
|
+
msgKey?: null | string;
|
|
4698
|
+
/** @description 文案插值参数,与语言包模板占位符对应;无参数时为 null(序列化省略) */
|
|
4699
|
+
args?: null | Record<string, never>;
|
|
4700
|
+
/** @description 兜底文案(仅降级用途,浏览器端一律走 MsgKey 翻译) */
|
|
4701
|
+
message?: null | string;
|
|
4702
|
+
data?: null | components["schemas"]["ExternalAuthTestView"];
|
|
4703
|
+
};
|
|
4466
4704
|
/**
|
|
4467
4705
|
* @description 统一返回模型——所有接口的响应外壳。
|
|
4468
4706
|
* 字段分工:Code 给机器判断;MsgKey+Args 给前端 i18n 渲染;
|
|
@@ -5902,6 +6140,12 @@ export interface components {
|
|
|
5902
6140
|
copyrightUrl?: null | string;
|
|
5903
6141
|
/** @description 站点 Logo 图片地址(登录页、侧栏、顶栏、应用选择页统一显示;留空则前端回退内置矢量 logo) */
|
|
5904
6142
|
logo?: null | string;
|
|
6143
|
+
/** @description 登录页 Hero 文案(按 locale 分组;缺失字段由前端回退内置 i18n) */
|
|
6144
|
+
loginHero?: {
|
|
6145
|
+
[key: string]: components["schemas"]["LoginHeroOutput"];
|
|
6146
|
+
};
|
|
6147
|
+
/** @description 是否显示登录页 Hero 卖点 */
|
|
6148
|
+
showFeatures?: boolean;
|
|
5905
6149
|
/** @description 是否启用登录验证码(运行时配置驱动;前端据此决定登录页是否展示验证码)。 */
|
|
5906
6150
|
captchaEnabled?: boolean;
|
|
5907
6151
|
/** @description 是否启用短信验证码免密登录(运行时配置驱动;前端据此决定登录页是否展示短信登录入口)。 */
|
|
@@ -7664,6 +7908,8 @@ export interface operations {
|
|
|
7664
7908
|
GroupCode?: string;
|
|
7665
7909
|
/** @description 排除的分组编码(可选;用于只列自定义配置等视图)。 */
|
|
7666
7910
|
ExcludedGroupCodes?: string[];
|
|
7911
|
+
/** @description 排除的配置键(可选;配置中心「高级」页用它去掉结构化表单已认领的键)。 */
|
|
7912
|
+
ExcludedKeys?: string[];
|
|
7667
7913
|
Current?: number | string;
|
|
7668
7914
|
Size?: number | string;
|
|
7669
7915
|
SortField?: string;
|
|
@@ -7862,6 +8108,34 @@ export interface operations {
|
|
|
7862
8108
|
};
|
|
7863
8109
|
};
|
|
7864
8110
|
};
|
|
8111
|
+
Config_UploadLogo: {
|
|
8112
|
+
parameters: {
|
|
8113
|
+
query?: never;
|
|
8114
|
+
header?: never;
|
|
8115
|
+
path?: never;
|
|
8116
|
+
cookie?: never;
|
|
8117
|
+
};
|
|
8118
|
+
requestBody: {
|
|
8119
|
+
content: {
|
|
8120
|
+
"multipart/form-data": {
|
|
8121
|
+
file?: components["schemas"]["IFormFile"];
|
|
8122
|
+
};
|
|
8123
|
+
};
|
|
8124
|
+
};
|
|
8125
|
+
responses: {
|
|
8126
|
+
/** @description OK */
|
|
8127
|
+
200: {
|
|
8128
|
+
headers: {
|
|
8129
|
+
[name: string]: unknown;
|
|
8130
|
+
};
|
|
8131
|
+
content: {
|
|
8132
|
+
"text/plain": components["schemas"]["ResultOfFileUploadOutput"];
|
|
8133
|
+
"application/json": components["schemas"]["ResultOfFileUploadOutput"];
|
|
8134
|
+
"text/json": components["schemas"]["ResultOfFileUploadOutput"];
|
|
8135
|
+
};
|
|
8136
|
+
};
|
|
8137
|
+
};
|
|
8138
|
+
};
|
|
7865
8139
|
Config_Add: {
|
|
7866
8140
|
parameters: {
|
|
7867
8141
|
query?: never;
|
|
@@ -8454,6 +8728,110 @@ export interface operations {
|
|
|
8454
8728
|
};
|
|
8455
8729
|
};
|
|
8456
8730
|
};
|
|
8731
|
+
ExternalAuthProvider_Get: {
|
|
8732
|
+
parameters: {
|
|
8733
|
+
query?: never;
|
|
8734
|
+
header?: never;
|
|
8735
|
+
path?: never;
|
|
8736
|
+
cookie?: never;
|
|
8737
|
+
};
|
|
8738
|
+
requestBody?: never;
|
|
8739
|
+
responses: {
|
|
8740
|
+
/** @description OK */
|
|
8741
|
+
200: {
|
|
8742
|
+
headers: {
|
|
8743
|
+
[name: string]: unknown;
|
|
8744
|
+
};
|
|
8745
|
+
content: {
|
|
8746
|
+
"text/plain": components["schemas"]["ResultOfExternalAuthCatalogOutput"];
|
|
8747
|
+
"application/json": components["schemas"]["ResultOfExternalAuthCatalogOutput"];
|
|
8748
|
+
"text/json": components["schemas"]["ResultOfExternalAuthCatalogOutput"];
|
|
8749
|
+
};
|
|
8750
|
+
};
|
|
8751
|
+
};
|
|
8752
|
+
};
|
|
8753
|
+
ExternalAuthProvider_Save: {
|
|
8754
|
+
parameters: {
|
|
8755
|
+
query?: never;
|
|
8756
|
+
header?: never;
|
|
8757
|
+
path: {
|
|
8758
|
+
code: string;
|
|
8759
|
+
};
|
|
8760
|
+
cookie?: never;
|
|
8761
|
+
};
|
|
8762
|
+
requestBody: {
|
|
8763
|
+
content: {
|
|
8764
|
+
"application/json": components["schemas"]["ExternalAuthProviderSaveInput"];
|
|
8765
|
+
"text/json": components["schemas"]["ExternalAuthProviderSaveInput"];
|
|
8766
|
+
"application/*+json": components["schemas"]["ExternalAuthProviderSaveInput"];
|
|
8767
|
+
};
|
|
8768
|
+
};
|
|
8769
|
+
responses: {
|
|
8770
|
+
/** @description OK */
|
|
8771
|
+
200: {
|
|
8772
|
+
headers: {
|
|
8773
|
+
[name: string]: unknown;
|
|
8774
|
+
};
|
|
8775
|
+
content: {
|
|
8776
|
+
"text/plain": components["schemas"]["ResultOfboolean"];
|
|
8777
|
+
"application/json": components["schemas"]["ResultOfboolean"];
|
|
8778
|
+
"text/json": components["schemas"]["ResultOfboolean"];
|
|
8779
|
+
};
|
|
8780
|
+
};
|
|
8781
|
+
};
|
|
8782
|
+
};
|
|
8783
|
+
ExternalAuthProvider_Delete: {
|
|
8784
|
+
parameters: {
|
|
8785
|
+
query?: never;
|
|
8786
|
+
header?: never;
|
|
8787
|
+
path: {
|
|
8788
|
+
code: string;
|
|
8789
|
+
};
|
|
8790
|
+
cookie?: never;
|
|
8791
|
+
};
|
|
8792
|
+
requestBody?: never;
|
|
8793
|
+
responses: {
|
|
8794
|
+
/** @description OK */
|
|
8795
|
+
200: {
|
|
8796
|
+
headers: {
|
|
8797
|
+
[name: string]: unknown;
|
|
8798
|
+
};
|
|
8799
|
+
content: {
|
|
8800
|
+
"text/plain": components["schemas"]["ResultOfboolean"];
|
|
8801
|
+
"application/json": components["schemas"]["ResultOfboolean"];
|
|
8802
|
+
"text/json": components["schemas"]["ResultOfboolean"];
|
|
8803
|
+
};
|
|
8804
|
+
};
|
|
8805
|
+
};
|
|
8806
|
+
};
|
|
8807
|
+
ExternalAuthProvider_Test: {
|
|
8808
|
+
parameters: {
|
|
8809
|
+
query?: never;
|
|
8810
|
+
header?: never;
|
|
8811
|
+
path?: never;
|
|
8812
|
+
cookie?: never;
|
|
8813
|
+
};
|
|
8814
|
+
requestBody: {
|
|
8815
|
+
content: {
|
|
8816
|
+
"application/json": components["schemas"]["ExternalAuthProviderTestInput"];
|
|
8817
|
+
"text/json": components["schemas"]["ExternalAuthProviderTestInput"];
|
|
8818
|
+
"application/*+json": components["schemas"]["ExternalAuthProviderTestInput"];
|
|
8819
|
+
};
|
|
8820
|
+
};
|
|
8821
|
+
responses: {
|
|
8822
|
+
/** @description OK */
|
|
8823
|
+
200: {
|
|
8824
|
+
headers: {
|
|
8825
|
+
[name: string]: unknown;
|
|
8826
|
+
};
|
|
8827
|
+
content: {
|
|
8828
|
+
"text/plain": components["schemas"]["ResultOfExternalAuthTestView"];
|
|
8829
|
+
"application/json": components["schemas"]["ResultOfExternalAuthTestView"];
|
|
8830
|
+
"text/json": components["schemas"]["ResultOfExternalAuthTestView"];
|
|
8831
|
+
};
|
|
8832
|
+
};
|
|
8833
|
+
};
|
|
8834
|
+
};
|
|
8457
8835
|
Job_Page: {
|
|
8458
8836
|
parameters: {
|
|
8459
8837
|
query?: {
|