feat(contracts): site center schemas, endpoints and migration 0031
Site health/proxy, SiteAccount login state (challenge, lastLoginAt, lastError, userData), SiteUserData history table, SiteCredentialsBody by kind, refresh-login/health-check/user-data/delete endpoints, SitesSettings defaults. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
381791cd64
commit
e2d1e21968
7 files changed
+458
-31
No files matched your search
@@ -395,6 +395,41 @@ export const Api = {
|
||||
// ── 来源 ──
|
||||
sites: {
|
||||
...crud("/sites", "站点", { row: sources.Site, create: sources.SiteCreate, update: sources.SiteUpdate }, R),
|
||||
list: ep({
|
||||
method: "get",
|
||||
path: "/sites",
|
||||
scope: "read",
|
||||
summary: "站点列表(include=accounts 附带账号与整体账号状态)",
|
||||
query: sources.SiteListQuery,
|
||||
response: cursorPage(sources.SiteListItem),
|
||||
}),
|
||||
remove: del("/sites/{id}", "删除站点:停用后删账号与凭证;已抓到的资源和下载任务保留(标站点已关闭)"),
|
||||
healthCheck: ep({
|
||||
method: "post",
|
||||
path: "/sites/{id}/health-check",
|
||||
scope: "admin",
|
||||
summary: "检测健康:首页连通 + 登录态,同步返回并写站点健康列",
|
||||
params: IdParam,
|
||||
response: sources.SiteHealthResult,
|
||||
}),
|
||||
refreshLogin: ep({
|
||||
method: "post",
|
||||
path: "/sites/{id}/refresh-login",
|
||||
scope: "admin",
|
||||
summary: "刷新登录:账密重新登录换 Cookie;Cookie / API Key 校验;成功后拉用户数据",
|
||||
params: IdParam,
|
||||
body: sources.SiteRefreshLoginInput,
|
||||
response: sources.SiteRefreshLoginAccepted,
|
||||
}),
|
||||
userData: ep({
|
||||
method: "get",
|
||||
path: "/sites/{id}/user-data",
|
||||
scope: "read",
|
||||
summary: "站点账号用户数据按天历史",
|
||||
params: IdParam,
|
||||
query: sources.SiteUserDataQuery,
|
||||
response: z.object({ items: z.array(sources.SiteUserDataPoint) }),
|
||||
}),
|
||||
enable: ep({
|
||||
method: "post",
|
||||
path: "/sites/{id}/enable",
|
||||
@@ -429,13 +464,11 @@ export const Api = {
|
||||
query: CursorQuery,
|
||||
response: cursorPage(sources.SiteSnapshot),
|
||||
}),
|
||||
/** 兼容别名:规范接口是 /site-accounts 资源 CRUD;这里按 (site,label) 新建或更新 site_account 的凭证 */
|
||||
credentials: ep({
|
||||
method: "put",
|
||||
path: "/sites/{id}/credentials",
|
||||
scope: "admin",
|
||||
summary:
|
||||
"兼容别名:按 (站点, label) 新建或更新 site_account 凭证(→ secret_ref,不回显);新客户端请用 POST/PATCH /site-accounts",
|
||||
summary: "设置站点账号凭证(按 kind:password / cookie / api_key / passkey;存为 secret,不回显)",
|
||||
params: IdParam,
|
||||
body: instances.SiteCredentialsPut,
|
||||
response: instances.SiteCredentialsResult,
|
||||
@@ -471,17 +504,20 @@ export const Api = {
|
||||
response: sources.WorkbenchReleaseDetail,
|
||||
}),
|
||||
},
|
||||
siteAccounts: crud(
|
||||
"/site-accounts",
|
||||
"站点账号",
|
||||
{
|
||||
row: sources.SiteAccount,
|
||||
create: sources.SiteAccountCreate,
|
||||
update: sources.SiteAccountUpdate,
|
||||
filters: { siteId: Id.optional() },
|
||||
},
|
||||
R,
|
||||
),
|
||||
siteAccounts: {
|
||||
...crud(
|
||||
"/site-accounts",
|
||||
"站点账号",
|
||||
{
|
||||
row: sources.SiteAccount,
|
||||
create: sources.SiteAccountCreate,
|
||||
update: sources.SiteAccountUpdate,
|
||||
filters: { siteId: Id.optional() },
|
||||
},
|
||||
R,
|
||||
),
|
||||
remove: del("/site-accounts/{id}", "删除站点账号与其凭证"),
|
||||
},
|
||||
feedSources: {
|
||||
...crud(
|
||||
"/feed-sources",
|
||||
|
||||
Reference in new issue
Block a user