@lovrabet/rabetbase-cli 2.3.16-beta.7 → 2.4.1
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 +4 -10
- package/lib/api/api-doc.js +1 -1
- package/lib/api/fetch-model-list.js +1 -1
- package/lib/api/generate-api-file.js +1 -1
- package/lib/auth/auth-server-ui.js +1 -1
- package/lib/auth/auth-server.js +1 -1
- package/lib/auth/constant.js +1 -1
- package/lib/auth/get-cookie.js +1 -1
- package/lib/auth/get-session-user.js +1 -1
- package/lib/auth/is-session-valid.js +1 -1
- package/lib/auth/login-success-html.js +1 -1
- package/lib/auth/logout.js +1 -1
- package/lib/cli-flags.js +1 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api/generate.js +1 -1
- package/lib/commands/api/index.js +1 -1
- package/lib/commands/api/list.js +1 -1
- package/lib/commands/api/pull.js +1 -1
- package/lib/commands/api/shared.js +1 -1
- package/lib/commands/app/index.js +1 -1
- package/lib/commands/app/list.js +1 -1
- package/lib/commands/app/members-list.js +1 -1
- package/lib/commands/app/remote-directory.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/delete.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/app-config/list.js +1 -1
- package/lib/commands/app-config/set.js +1 -1
- package/lib/commands/app-config/shared.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/bff/create.js +1 -1
- package/lib/commands/bff/delete.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/bff/list.js +1 -1
- package/lib/commands/bff/pull.js +1 -1
- package/lib/commands/bff/push.js +1 -1
- package/lib/commands/bff/status.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/cli-update.js +1 -1
- package/lib/commands/codegen/index.js +1 -1
- package/lib/commands/codegen/sdk.js +1 -1
- package/lib/commands/codegen/sql.js +1 -1
- package/lib/commands/common/app-registry.js +1 -1
- package/lib/commands/common/app-selector.js +1 -1
- package/lib/commands/common/async-task.js +1 -1
- package/lib/commands/common/dry-run.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/common/validate.js +1 -1
- package/lib/commands/config/get.js +1 -1
- package/lib/commands/config/index.js +1 -1
- package/lib/commands/config/list.js +1 -1
- package/lib/commands/config/set.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/filter.js +1 -1
- package/lib/commands/data/getOne.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/data/shared.js +1 -1
- package/lib/commands/dataset/business-group-update.js +1 -1
- package/lib/commands/dataset/capability.js +1 -1
- package/lib/commands/dataset/delete.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/extend-update.js +1 -1
- package/lib/commands/dataset/field-update.js +1 -1
- package/lib/commands/dataset/generate.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/operations.js +1 -1
- package/lib/commands/dataset/relation-audit.js +1 -1
- package/lib/commands/dataset/relation-create.js +1 -1
- package/lib/commands/dataset/relation-delete.js +1 -1
- package/lib/commands/dataset/relation-shared.js +1 -1
- package/lib/commands/dataset/relation-update.js +1 -1
- package/lib/commands/dataset/relations.js +1 -1
- package/lib/commands/dataset/rename.js +1 -1
- package/lib/commands/dataset/restore.js +1 -1
- package/lib/commands/db/analysis-batching.js +1 -1
- package/lib/commands/db/analyze-batch-plan.js +1 -1
- package/lib/commands/db/analyze-cancel.js +1 -1
- package/lib/commands/db/analyze-start.js +1 -1
- package/lib/commands/db/analyze-status.js +1 -1
- package/lib/commands/db/create.js +1 -1
- package/lib/commands/db/delete.js +1 -1
- package/lib/commands/db/detail.js +1 -1
- package/lib/commands/db/diff.js +1 -1
- package/lib/commands/db/index.js +1 -1
- package/lib/commands/db/list.js +1 -1
- package/lib/commands/db/shared.js +1 -1
- package/lib/commands/db/tables.js +1 -1
- package/lib/commands/db/test.js +1 -1
- package/lib/commands/db/update.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init/index.js +1 -1
- package/lib/commands/issue/index.js +1 -1
- package/lib/commands/issue/nudge.js +1 -1
- package/lib/commands/issue/report.js +1 -1
- package/lib/commands/issue/shared.js +1 -1
- package/lib/commands/kb/create.js +1 -1
- package/lib/commands/kb/delete.js +1 -1
- package/lib/commands/kb/detail.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/kb/list.js +1 -1
- package/lib/commands/kb/shared.js +1 -1
- package/lib/commands/kb/update.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/menu/asset-update.js +1 -1
- package/lib/commands/menu/delete.js +1 -1
- package/lib/commands/menu/external-link-create.js +1 -1
- package/lib/commands/menu/external-link-update.js +1 -1
- package/lib/commands/menu/group-create.js +1 -1
- package/lib/commands/menu/group-update.js +1 -1
- package/lib/commands/menu/index.js +1 -1
- package/lib/commands/menu/list.js +1 -1
- package/lib/commands/menu/move.js +1 -1
- package/lib/commands/menu/regroup-start.js +1 -1
- package/lib/commands/menu/rename.js +1 -1
- package/lib/commands/menu/shared/compare-table.js +1 -1
- package/lib/commands/menu/shared/delete-plan.js +1 -1
- package/lib/commands/menu/shared/facts.js +1 -1
- package/lib/commands/menu/shared/index.js +1 -1
- package/lib/commands/menu/shared/inquirer.js +1 -1
- package/lib/commands/menu/shared/local-pages.js +1 -1
- package/lib/commands/menu/shared/logic.js +1 -1
- package/lib/commands/menu/shared/mutations.js +1 -1
- package/lib/commands/menu/shared/service.js +1 -1
- package/lib/commands/menu/shared/sync-core.js +1 -1
- package/lib/commands/menu/shared/update-core.js +1 -1
- package/lib/commands/menu/shared/valid-url.js +1 -1
- package/lib/commands/menu/sync.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/page/generate-start.js +1 -1
- package/lib/commands/page/generate-status.js +1 -1
- package/lib/commands/page/index.js +1 -1
- package/lib/commands/page/pull.js +1 -1
- package/lib/commands/page/push.js +1 -1
- package/lib/commands/page/react/create.d.ts +2 -0
- package/lib/commands/page/react/create.js +1 -0
- package/lib/commands/page/react/detail.d.ts +2 -0
- package/lib/commands/page/react/detail.js +1 -0
- package/lib/commands/page/react/list.d.ts +2 -0
- package/lib/commands/page/react/list.js +1 -0
- package/lib/commands/page/react/publish.d.ts +2 -0
- package/lib/commands/page/react/publish.js +1 -0
- package/lib/commands/page/react/shared.d.ts +78 -0
- package/lib/commands/page/react/shared.js +1 -0
- package/lib/commands/page/react/syntax.d.ts +18 -0
- package/lib/commands/page/react/syntax.js +1 -0
- package/lib/commands/page/react/template.d.ts +8 -0
- package/lib/commands/page/react/template.js +1 -0
- package/lib/commands/page/react/update.d.ts +2 -0
- package/lib/commands/page/react/update.js +1 -0
- package/lib/commands/page/relation-audit.js +1 -1
- package/lib/commands/page/restore.js +1 -1
- package/lib/commands/page/shared.d.ts +1 -0
- package/lib/commands/page/shared.js +1 -1
- package/lib/commands/page/standard-page-status.js +1 -1
- package/lib/commands/page/sync.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-apis-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/project/create/enhanced-guided-create.js +1 -1
- package/lib/commands/project/create/format-elapsed.js +1 -1
- package/lib/commands/project/create/main.js +1 -1
- package/lib/commands/project/create/non-interactive.js +1 -1
- package/lib/commands/project/create/project-template-path.js +1 -1
- package/lib/commands/project/create/use-copy-project-template.js +1 -1
- package/lib/commands/project/create/use-format-code.js +1 -1
- package/lib/commands/project/create/use-install-dependencies.js +1 -1
- package/lib/commands/project/index.js +1 -1
- package/lib/commands/project/upgrade.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/role/user-resolve.js +1 -1
- package/lib/commands/run/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/sql/create.js +1 -1
- package/lib/commands/sql/delete.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/sql/list.js +1 -1
- package/lib/commands/sql/pull.js +1 -1
- package/lib/commands/sql/push.js +1 -1
- package/lib/commands/sql/shared.js +1 -1
- package/lib/commands/sql/status.js +1 -1
- package/lib/commands/sql/validate.js +1 -1
- package/lib/commands/task/index.js +1 -1
- package/lib/commands/task/status.js +1 -1
- package/lib/commands/tenant/index.js +1 -1
- package/lib/commands/tenant/members-list.js +1 -1
- package/lib/commands/tenant/shared.js +1 -1
- package/lib/commands/user-account/dingding-sandbox-bind.d.ts +2 -0
- package/lib/commands/user-account/dingding-sandbox-bind.js +1 -0
- package/lib/commands/user-account/index.d.ts +2 -0
- package/lib/commands/user-account/index.js +1 -0
- package/lib/commands/workspace/add.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/commands/workspace/remove.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/cdn.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/paths.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/context/app-resolver.js +1 -1
- package/lib/context/auth-resolver.js +1 -1
- package/lib/context/config-loader.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/alias-resolver.js +1 -1
- package/lib/core/api-client.d.ts +117 -0
- package/lib/core/api-client.js +1 -1
- package/lib/core/bff/config.js +1 -1
- package/lib/core/bff/file-system.js +1 -1
- package/lib/core/bff/hash.js +1 -1
- package/lib/core/bff/lock.js +1 -1
- package/lib/core/bff/utils.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/page/file-system.js +1 -1
- package/lib/core/page/hash.js +1 -1
- package/lib/core/page/lock.js +1 -1
- package/lib/core/sql-index-auditor.js +1 -1
- package/lib/core/sql-sync/config.js +1 -1
- package/lib/core/sql-sync/file-system.js +1 -1
- package/lib/core/sql-sync/hash.js +1 -1
- package/lib/core/sql-sync/lock.js +1 -1
- package/lib/core/sql-sync/utils.js +1 -1
- package/lib/core/sql-validator.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/error-output.js +1 -1
- package/lib/framework/explicit-yes.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-alias.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.d.ts +3 -0
- package/lib/postinstall.js +1 -0
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.d.ts +37 -0
- package/lib/skills/builtin-skill.js +1 -0
- package/lib/skills/main.js +1 -1
- package/lib/skills/npx-skills-add.d.ts +4 -2
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/telemetry/cli-command-trace.js +1 -1
- package/lib/telemetry/cli-help-trace.js +1 -1
- package/lib/telemetry/ensure-cli-otel-config.js +1 -1
- package/lib/telemetry/register-otel-exit-shutdown.js +1 -1
- package/lib/telemetry/send-cli-trace-log.js +1 -1
- package/lib/telemetry/send-platform-issue-collect-log.js +1 -1
- package/lib/utils/ai_config.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cdn-config.js +1 -1
- package/lib/utils/check-sdk-version.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/config.js +1 -1
- package/lib/utils/copy-directory.js +1 -1
- package/lib/utils/entity-with-id.js +1 -1
- package/lib/utils/file-utils.js +1 -1
- package/lib/utils/guides-cdn.js +1 -1
- package/lib/utils/http-client.js +1 -1
- package/lib/utils/is-non-interactive.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/rules-cdn.js +1 -1
- package/lib/utils/sleep.js +1 -1
- package/lib/utils/template-replacer.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/with-active-cookie.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +9 -3
- package/scripts/postinstall.mjs +24 -0
- package/skills/rabetbase/SKILL.md +493 -0
- package/skills/rabetbase/guides/backend-function.md +835 -0
- package/skills/rabetbase/guides/best-practices.md +137 -0
- package/skills/rabetbase/guides/bff-creation-workflow.md +148 -0
- package/skills/rabetbase/guides/conflict-detection.md +119 -0
- package/skills/rabetbase/guides/data-api-guidelines.md +414 -0
- package/skills/rabetbase/guides/database-connection-workflow.md +169 -0
- package/skills/rabetbase/guides/frontend-development.md +179 -0
- package/skills/rabetbase/guides/legacy-application-blueprint-workflow.md +495 -0
- package/skills/rabetbase/guides/menu-anomaly-manual-cleanup.md +137 -0
- package/skills/rabetbase/guides/page-development-workflow.md +187 -0
- package/skills/rabetbase/guides/react-custom-page-workflow.md +184 -0
- package/skills/rabetbase/guides/role-permit-workflow.md +127 -0
- package/skills/rabetbase/guides/sql-creation-workflow.md +173 -0
- package/skills/rabetbase/guides/sql-mybatis.md +126 -0
- package/skills/rabetbase/guides/troubleshooting.md +67 -0
- package/skills/rabetbase/guides/typescript-sdk.md +227 -0
- package/skills/rabetbase/knowledge/page-schema/LrSmartCreate.md +367 -0
- package/skills/rabetbase/knowledge/page-schema/LrSmartDetail.md +153 -0
- package/skills/rabetbase/knowledge/page-schema/LrSmartEcharts.md +291 -0
- package/skills/rabetbase/knowledge/page-schema/LrSmartFilter.md +478 -0
- package/skills/rabetbase/knowledge/page-schema/LrSmartJsx.md +119 -0
- package/skills/rabetbase/knowledge/page-schema/LrSmartStatistic.md +223 -0
- package/skills/rabetbase/knowledge/page-schema/LrSmartTable.md +632 -0
- package/skills/rabetbase/knowledge/page-schema/YtPage.md +172 -0
- package/skills/rabetbase/knowledge/page-schema/dataset-relations.md +126 -0
- package/skills/rabetbase/knowledge/page-schema/external-resources-usage.md +232 -0
- package/skills/rabetbase/knowledge/page-schema/field-components.md +312 -0
- package/skills/rabetbase/knowledge/page-schema/syntax-reference.md +278 -0
- package/skills/rabetbase/knowledge/react-page/components.md +225 -0
- package/skills/rabetbase/knowledge/react-page/generation-standards.md +385 -0
- package/skills/rabetbase/references/rabetbase-api-list.md +58 -0
- package/skills/rabetbase/references/rabetbase-api-pull.md +82 -0
- package/skills/rabetbase/references/rabetbase-app-config.md +95 -0
- package/skills/rabetbase/references/rabetbase-app-list.md +79 -0
- package/skills/rabetbase/references/rabetbase-app-members-list.md +64 -0
- package/skills/rabetbase/references/rabetbase-auth-login.md +53 -0
- package/skills/rabetbase/references/rabetbase-auth-logout.md +29 -0
- package/skills/rabetbase/references/rabetbase-bff-create.md +59 -0
- package/skills/rabetbase/references/rabetbase-bff-delete.md +42 -0
- package/skills/rabetbase/references/rabetbase-bff-detail.md +38 -0
- package/skills/rabetbase/references/rabetbase-bff-list.md +61 -0
- package/skills/rabetbase/references/rabetbase-bff-pull.md +42 -0
- package/skills/rabetbase/references/rabetbase-bff-push.md +65 -0
- package/skills/rabetbase/references/rabetbase-bff-save.md +63 -0
- package/skills/rabetbase/references/rabetbase-bff-status.md +37 -0
- package/skills/rabetbase/references/rabetbase-cli-skill-install.md +42 -0
- package/skills/rabetbase/references/rabetbase-codegen-sdk.md +35 -0
- package/skills/rabetbase/references/rabetbase-codegen-sql.md +33 -0
- package/skills/rabetbase/references/rabetbase-config.md +296 -0
- package/skills/rabetbase/references/rabetbase-dataset-business-group-update.md +84 -0
- package/skills/rabetbase/references/rabetbase-dataset-delete.md +54 -0
- package/skills/rabetbase/references/rabetbase-dataset-detail.md +106 -0
- package/skills/rabetbase/references/rabetbase-dataset-extend-update.md +70 -0
- package/skills/rabetbase/references/rabetbase-dataset-field-update.md +117 -0
- package/skills/rabetbase/references/rabetbase-dataset-generate.md +206 -0
- package/skills/rabetbase/references/rabetbase-dataset-list.md +42 -0
- package/skills/rabetbase/references/rabetbase-dataset-operations.md +34 -0
- package/skills/rabetbase/references/rabetbase-dataset-relation-audit.md +63 -0
- package/skills/rabetbase/references/rabetbase-dataset-relation-mutations.md +141 -0
- package/skills/rabetbase/references/rabetbase-dataset-relations.md +71 -0
- package/skills/rabetbase/references/rabetbase-dataset-rename.md +107 -0
- package/skills/rabetbase/references/rabetbase-dataset-restore.md +54 -0
- package/skills/rabetbase/references/rabetbase-db-analyze.md +135 -0
- package/skills/rabetbase/references/rabetbase-db-create.md +54 -0
- package/skills/rabetbase/references/rabetbase-db-delete.md +26 -0
- package/skills/rabetbase/references/rabetbase-db-detail.md +27 -0
- package/skills/rabetbase/references/rabetbase-db-diff.md +57 -0
- package/skills/rabetbase/references/rabetbase-db-list.md +37 -0
- package/skills/rabetbase/references/rabetbase-db-tables.md +25 -0
- package/skills/rabetbase/references/rabetbase-db-test.md +29 -0
- package/skills/rabetbase/references/rabetbase-db-update.md +29 -0
- package/skills/rabetbase/references/rabetbase-doctor.md +62 -0
- package/skills/rabetbase/references/rabetbase-file.md +35 -0
- package/skills/rabetbase/references/rabetbase-init.md +70 -0
- package/skills/rabetbase/references/rabetbase-issue-report.md +132 -0
- package/skills/rabetbase/references/rabetbase-kb.md +62 -0
- package/skills/rabetbase/references/rabetbase-menu-asset-update.md +135 -0
- package/skills/rabetbase/references/rabetbase-menu-delete.md +54 -0
- package/skills/rabetbase/references/rabetbase-menu-external-link-create.md +63 -0
- package/skills/rabetbase/references/rabetbase-menu-external-link-update.md +74 -0
- package/skills/rabetbase/references/rabetbase-menu-group-create.md +33 -0
- package/skills/rabetbase/references/rabetbase-menu-group-update.md +38 -0
- package/skills/rabetbase/references/rabetbase-menu-list.md +144 -0
- package/skills/rabetbase/references/rabetbase-menu-move.md +54 -0
- package/skills/rabetbase/references/rabetbase-menu-regroup-start.md +45 -0
- package/skills/rabetbase/references/rabetbase-menu-rename.md +48 -0
- package/skills/rabetbase/references/rabetbase-menu-sync.md +60 -0
- package/skills/rabetbase/references/rabetbase-notification-config-list.md +80 -0
- package/skills/rabetbase/references/rabetbase-ocr.md +86 -0
- package/skills/rabetbase/references/rabetbase-page-generate-start.md +32 -0
- package/skills/rabetbase/references/rabetbase-page-generate-status.md +32 -0
- package/skills/rabetbase/references/rabetbase-page-pull.md +47 -0
- package/skills/rabetbase/references/rabetbase-page-push.md +45 -0
- package/skills/rabetbase/references/rabetbase-page-react-create.md +29 -0
- package/skills/rabetbase/references/rabetbase-page-react-detail.md +26 -0
- package/skills/rabetbase/references/rabetbase-page-react-list.md +23 -0
- package/skills/rabetbase/references/rabetbase-page-react-publish.md +23 -0
- package/skills/rabetbase/references/rabetbase-page-react-update.md +24 -0
- package/skills/rabetbase/references/rabetbase-page-relation-binding.md +72 -0
- package/skills/rabetbase/references/rabetbase-page-restore.md +45 -0
- package/skills/rabetbase/references/rabetbase-page-sync.md +36 -0
- package/skills/rabetbase/references/rabetbase-permit-page-set.md +69 -0
- package/skills/rabetbase/references/rabetbase-permit-role-apis-set.md +53 -0
- package/skills/rabetbase/references/rabetbase-permit-role-menus-set.md +57 -0
- package/skills/rabetbase/references/rabetbase-project-create.md +46 -0
- package/skills/rabetbase/references/rabetbase-project-upgrade.md +57 -0
- package/skills/rabetbase/references/rabetbase-role-list.md +68 -0
- package/skills/rabetbase/references/rabetbase-role-user-add.md +54 -0
- package/skills/rabetbase/references/rabetbase-role-user-resolve.md +27 -0
- package/skills/rabetbase/references/rabetbase-run.md +53 -0
- package/skills/rabetbase/references/rabetbase-schema.md +22 -0
- package/skills/rabetbase/references/rabetbase-sql-create.md +41 -0
- package/skills/rabetbase/references/rabetbase-sql-delete.md +37 -0
- package/skills/rabetbase/references/rabetbase-sql-detail.md +32 -0
- package/skills/rabetbase/references/rabetbase-sql-exec.md +34 -0
- package/skills/rabetbase/references/rabetbase-sql-list.md +54 -0
- package/skills/rabetbase/references/rabetbase-sql-pull.md +54 -0
- package/skills/rabetbase/references/rabetbase-sql-push.md +46 -0
- package/skills/rabetbase/references/rabetbase-sql-status.md +39 -0
- package/skills/rabetbase/references/rabetbase-sql-validate.md +73 -0
- package/skills/rabetbase/references/rabetbase-standard-page-status.md +31 -0
- package/skills/rabetbase/references/rabetbase-task-status.md +40 -0
- package/skills/rabetbase/references/rabetbase-tenant-members-list.md +69 -0
- package/skills/rabetbase/references/rabetbase-update.md +56 -0
- package/skills/rabetbase/references/rabetbase-user-account.md +45 -0
- package/skills/rabetbase/references/rabetbase-workspace.md +60 -0
- package/skills/rabetbase.manifest.json +137 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# dataset relation-audit
|
|
2
|
+
|
|
3
|
+
只读审计数据集关系事实是否结构完整,并列出明确错误、结构风险和需要人工复核的关系。它消费 `dataset relations` 同一套关系事实,不修改数据集关系,也不审计页面字段选项绑定。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
rabetbase dataset relation-audit --format compress
|
|
9
|
+
rabetbase dataset relation-audit --datasetcode <datasetCode> --format compress
|
|
10
|
+
rabetbase dataset relation-audit --from-source DB_TABLE --to-source METADATA --format compress
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 参数
|
|
14
|
+
|
|
15
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
16
|
+
|------|------|------|------|
|
|
17
|
+
| `--datasetcode <code>` | string | 否 | 只审计指定来源数据集的关系 |
|
|
18
|
+
| `--from-source <type>` | string | 否 | 来源数据集类型:`DB_TABLE` / `METADATA` |
|
|
19
|
+
| `--to-source <type>` | string | 否 | 目标数据集类型:`DB_TABLE` / `METADATA` |
|
|
20
|
+
| `--appcode <code>` | string | 否 | 覆盖当前配置中的 AppCode |
|
|
21
|
+
|
|
22
|
+
## 输出
|
|
23
|
+
|
|
24
|
+
输出包含 `summary` 与按风险排序的 `items`。`status` 取值为 `ok`、`warning`、`error`、`manual_review`;`manual_review` 表示 CLI 不能仅凭元数据证明业务语义正确,需要人工确认。
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"appCode": "app-xxx",
|
|
29
|
+
"total": 1,
|
|
30
|
+
"summary": {
|
|
31
|
+
"ok": 0,
|
|
32
|
+
"warning": 0,
|
|
33
|
+
"error": 0,
|
|
34
|
+
"manualReview": 1
|
|
35
|
+
},
|
|
36
|
+
"items": [{
|
|
37
|
+
"status": "manual_review",
|
|
38
|
+
"severity": "medium",
|
|
39
|
+
"manualReviewRequired": true,
|
|
40
|
+
"from": { "source": "DB_TABLE", "datasetCode": "order", "field": "customer_id" },
|
|
41
|
+
"to": { "source": "DB_TABLE", "datasetCode": "customer", "field": "id" },
|
|
42
|
+
"relation": { "cardinality": "MANY_TO_ONE" },
|
|
43
|
+
"reasons": [{
|
|
44
|
+
"code": "missing_label_field",
|
|
45
|
+
"message": "目标关系缺少展示字段,需要人工确认业务展示口径"
|
|
46
|
+
}]
|
|
47
|
+
}]
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Agent 使用规则
|
|
52
|
+
|
|
53
|
+
- DB 增量变更排查顺序:先 `db diff` 看物理表与数据集差异,再 `dataset relation-audit` 看关系事实风险。
|
|
54
|
+
- 页面展示异常排查顺序:先 `dataset relations` 确认关系事实,再 `dataset relation-audit` 判断关系事实是否需要修复,最后用 `page relation-audit` 审计页面绑定。
|
|
55
|
+
- `error` 表示结构上能确定的问题,例如目标数据集不存在、字段不存在或方向不支持。
|
|
56
|
+
- `manual_review` 不是失败结论,表示缺展示字段、关系基数不明或物理约束证据不足,需要人工确认业务口径。
|
|
57
|
+
- 本命令只读;修复关系必须先走 `dataset relation-create/update/delete --dry-run`,并等用户确认。
|
|
58
|
+
|
|
59
|
+
## 参考
|
|
60
|
+
|
|
61
|
+
- [dataset relations](rabetbase-dataset-relations.md)
|
|
62
|
+
- [dataset relation mutations](rabetbase-dataset-relation-mutations.md)
|
|
63
|
+
- [page relation binding](rabetbase-page-relation-binding.md)
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# dataset relation-create / relation-update / relation-delete
|
|
2
|
+
|
|
3
|
+
管理应用的单条数据集关联关系。这里的“关联关系”不是传统外键:它可以是 V2 数据集之间的字段映射、自关联父子关系,也可以是 `DB_TABLE` 字段消费 `METADATA` 字典数据集;目标展示字段 `refTableLabelName` / `to-label-column` 是关系的一等属性。
|
|
4
|
+
|
|
5
|
+
读取数据集关联关系事实使用 `rabetbase dataset relations`。新增、更新、删除单条关联关系分别使用 `rabetbase dataset relation-create` / `relation-update` / `relation-delete`。
|
|
6
|
+
|
|
7
|
+
create 使用来源和目标 datasetCode 描述关系两端。relation-update 只要求 `appCode + relationId` 定位待更新关系,其余关系参数都是可选覆盖项;CLI 先读取完整关系,再合并显式参数并提交完整对象。CLI 会读取合并后的数据集类型并做方向校验。支持 `DB_TABLE -> DB_TABLE`、`DB_TABLE -> METADATA`、`METADATA -> METADATA`;暂不支持 `METADATA -> DB_TABLE`。
|
|
8
|
+
|
|
9
|
+
## Agent 安全边界
|
|
10
|
+
|
|
11
|
+
- 面向用户答疑时,只给出“先只读确认、再生成 dry-run 方案、用户确认后执行”的路径,不直接让用户执行正式写入。
|
|
12
|
+
- 关系缺失时使用 `relation-create --dry-run` 预览;展示字段或支持的关系属性不符合预期时使用 `relation-update --dry-run` 预览。
|
|
13
|
+
- 正式写入后 CLI 会自动回读关系事实验证结果;如果后端调用返回但关系未创建、未更新或未删除,命令会失败,不要把这种失败当作已落库。
|
|
14
|
+
- `relation-update` 可覆盖关系两端字段,但执行前必须通过 `--dry-run` 核对合并后的完整关系对象,避免把关系移动到错误的数据集或字段。
|
|
15
|
+
- 不要把关系写入、页面审计和 `page sync` 混成“一键修复”。关系事实修正后,再重新执行 `page relation-audit`,页面仍需同步时再走 `page sync --dry-run`。
|
|
16
|
+
|
|
17
|
+
## 命令
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
rabetbase dataset relation-create --from-datasetcode <fromDatasetCode> --from-column <fromField> --to-datasetcode <toDatasetCode> --to-column <toField> --to-label-column <toLabelField> --cardinality MANY_TO_ONE --dry-run --format json
|
|
21
|
+
rabetbase dataset relation-update --appcode <appCode> --relation-id <relationId> --to-label-column <nextLabelField> --dry-run --format json
|
|
22
|
+
rabetbase dataset relation-update --appcode <appCode> --relation-id <relationId> --expect-to-label-column <currentLabelField> --to-label-column <nextLabelField> --dry-run --format json
|
|
23
|
+
rabetbase dataset relation-delete --appcode <appCode> --relation-id <relationId> --dry-run --format json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## 参数
|
|
27
|
+
|
|
28
|
+
| Flag | create | update | delete | 说明 |
|
|
29
|
+
|------|--------|--------|--------|------|
|
|
30
|
+
| `--appcode <appCode>` | 可选 | 必填 | 必填 | 目标应用 code;update/delete 必须显式传入 |
|
|
31
|
+
| `--from-datasetcode <code>` | 必填 | 可选覆盖 | 不支持 | 来源数据集 code;update 省略时沿用当前值 |
|
|
32
|
+
| `--from-column <column>` | 必填 | 可选覆盖 | 不支持 | 源字段名;update 省略时沿用当前值 |
|
|
33
|
+
| `--to-datasetcode <code>` | 必填 | 可选覆盖 | 不支持 | 目标数据集 code;update 省略时沿用当前值 |
|
|
34
|
+
| `--to-column <column>` | 必填 | 可选覆盖 | 不支持 | 目标字段名;update 省略时沿用当前值 |
|
|
35
|
+
| `--to-label-column <column>` | 必填 | 可选覆盖 | 不支持 | 目标展示字段名;update 省略时沿用当前值 |
|
|
36
|
+
| `--cardinality <value>` | 必填 | 可选覆盖 | 不支持 | create 的所有支持方向均必填;create/update 均使用显式合法值,update 省略时沿用已有值,缺失时默认 `ONE_TO_MANY` |
|
|
37
|
+
| `--biz-relation-type <type>` | 可选 | 可选覆盖 | 不支持 | 业务关系类型;update 的所有支持方向均可设置为 `normal` / `main_sub` |
|
|
38
|
+
| `--relation-id <id>` | 不支持 | 必填 | 必填 | 关系记录 ID;update/delete 使用该 ID 定位关系 |
|
|
39
|
+
| `--dry-run` | 可选 | 可选 | 可选 | 只预览请求,不实际写入;预览中包含应用、关系定位和待写入字段 |
|
|
40
|
+
| `--yes` | - | - | 非交互执行必填 | `relation-delete` 是高风险写操作 |
|
|
41
|
+
| `--format <fmt>` | 可选 | 可选 | 可选 | 输出格式 |
|
|
42
|
+
|
|
43
|
+
`relation-update` 先按 `appCode + relationId` 读取完整关系,再用显式参数覆盖同名字段。最终请求始终包含 relationId、两端 datasetCode/字段、目标展示字段、关系基数和业务关系类型。所有支持方向都可显式传入 `--cardinality` 与 `--biz-relation-type`,不区分 DB_TABLE/METADATA;cardinality 使用显式合法值,省略时沿用已有值,已有值缺失时默认 `ONE_TO_MANY`。
|
|
44
|
+
|
|
45
|
+
支持矩阵:
|
|
46
|
+
|
|
47
|
+
| From | To | 支持 | 说明 |
|
|
48
|
+
|------|----|:---:|------|
|
|
49
|
+
| `DB_TABLE` | `DB_TABLE` | 是 | V2 数据集之间关系,底层可映射到表关系 |
|
|
50
|
+
| `DB_TABLE` | `METADATA` | 是 | `DB_TABLE` 字段消费 `METADATA` 字典/选项源 |
|
|
51
|
+
| `METADATA` | `METADATA` | 是 | V2 标准页面/配置数据集关系 |
|
|
52
|
+
| `METADATA` | `DB_TABLE` | 否 | CLI 校验阶段拒绝 |
|
|
53
|
+
|
|
54
|
+
| Flag | update | 说明 |
|
|
55
|
+
|------|--------|------|
|
|
56
|
+
| `--appcode <appCode>` | 必填 | 目标应用 code |
|
|
57
|
+
| `--relation-id <id>` | 必填 | 待更新关系的记录 ID |
|
|
58
|
+
| `--from-datasetcode <code>` | 可选 | 覆盖来源数据集 code |
|
|
59
|
+
| `--from-column <column>` | 可选 | 覆盖来源字段 |
|
|
60
|
+
| `--to-datasetcode <code>` | 可选 | 覆盖目标数据集 code |
|
|
61
|
+
| `--to-column <column>` | 可选 | 覆盖目标字段 |
|
|
62
|
+
| `--to-label-column <column>` | 可选 | 覆盖目标展示字段 |
|
|
63
|
+
| `--expect-to-label-column <column>` | 推荐 | 可选乐观并发检查;DB_TABLE 显式传入时回读当前目标展示字段,未配置目标展示字段时按服务端兜底语义使用 `to-column` 作为默认当前值 |
|
|
64
|
+
| `--cardinality` | 可选 | 所有支持方向均使用显式合法值;省略时沿用已有值,缺失时默认 `ONE_TO_MANY` |
|
|
65
|
+
| `--biz-relation-type <type>` | 可选 | 所有支持方向均可设置为 `normal` / `main_sub`;省略时沿用当前值 |
|
|
66
|
+
|
|
67
|
+
## 输出
|
|
68
|
+
|
|
69
|
+
实际写入返回变更前后状态、写后验证结果和执行信息。`relation-update --dry-run` 返回完整请求体、`before` 和 `warnings`,并在适用时返回 `suggestedExpectFlags`;create/delete 的 dry-run 返回各自的请求预览和定位信息。update/delete 使用 `appCode + relationId` 定位,不解析字符串 key。
|
|
70
|
+
|
|
71
|
+
正式写入后,CLI 会自动回读关系事实:
|
|
72
|
+
|
|
73
|
+
- `relation-create`:确认关系已存在,且 `to-label-column` 与请求一致;请求包含 `cardinality` 时一并确认回读值一致;显式传入 `biz-relation-type` 时校验业务关系类型。
|
|
74
|
+
- `relation-update`:确认关系仍存在,且 `to-label-column`、合并后的 `cardinality` 和业务关系类型与请求一致。
|
|
75
|
+
- `relation-delete`:确认关系已不存在。
|
|
76
|
+
|
|
77
|
+
如果后端写接口返回但回读不匹配,命令以 `relation_write_not_verified` 失败,不返回成功结果。
|
|
78
|
+
|
|
79
|
+
关系事实字段主定位字段为 `datasetCode + field`;单条关系写入命令返回结构化执行结果。
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"operation": "create",
|
|
84
|
+
"appCode": "app-xxx",
|
|
85
|
+
"selector": {
|
|
86
|
+
"fromDatasetCode": "from_dataset_code",
|
|
87
|
+
"fromColumn": "from_field",
|
|
88
|
+
"toDatasetCode": "to_dataset_code",
|
|
89
|
+
"toColumn": "to_field"
|
|
90
|
+
},
|
|
91
|
+
"before": null,
|
|
92
|
+
"after": {
|
|
93
|
+
"from": { "datasetCode": "from_dataset_code", "column": "from_field" },
|
|
94
|
+
"to": { "datasetCode": "to_dataset_code", "column": "to_field", "labelColumn": "to_label_field" },
|
|
95
|
+
"cardinality": "MANY_TO_ONE"
|
|
96
|
+
},
|
|
97
|
+
"dryRun": false,
|
|
98
|
+
"backend": {
|
|
99
|
+
"method": "POST",
|
|
100
|
+
"path": "/smartapi/question/er-config/cli/erCreate"
|
|
101
|
+
},
|
|
102
|
+
"verification": {
|
|
103
|
+
"verified": true,
|
|
104
|
+
"status": "matched",
|
|
105
|
+
"afterReadback": {
|
|
106
|
+
"from": { "datasetCode": "from_dataset_code", "column": "from_field" },
|
|
107
|
+
"to": { "datasetCode": "to_dataset_code", "column": "to_field", "labelColumn": "to_label_field" },
|
|
108
|
+
"cardinality": "MANY_TO_ONE",
|
|
109
|
+
"condition": null
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"warnings": []
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`before` / `after` / `verification.afterReadback` 表示写入前后可稳定确认的关系事实。`selector` 使用 `fromDatasetCode`、`fromColumn`、`toDatasetCode`、`toColumn` 表达关系两端。
|
|
117
|
+
|
|
118
|
+
未传 `--expect-to-label-column` 且当前 label 可读取时,METADATA `relation-update` 输出 `warnings[].code = "no_drift_check_applied"` 和 `suggestedExpectFlags`。
|
|
119
|
+
|
|
120
|
+
`DB_TABLE -> METADATA` 场景下,`--to-label-column` 表示消费 METADATA 数据集时使用的目标展示字段。例如来源字段保存目标 `toField`,页面或运行时展示 `toLabelField`。
|
|
121
|
+
|
|
122
|
+
## 提示
|
|
123
|
+
|
|
124
|
+
- 写入前如需读取现状,统一运行 `rabetbase dataset relations --format compress` 或 `--format json`;更新或删除前确认 `relationId`,并确认来源/目标 `datasetCode + field`、`to.labelField`、`relation.cardinality` 和 `relation.bizRelationType`
|
|
125
|
+
- 正式写入返回成功表示 CLI 已完成写后回读验证;若返回 `relation_write_not_verified`,先重新执行 `dataset relations` 查看当前事实,不要继续批量写入。
|
|
126
|
+
- create 使用 `--from-datasetcode` 和 `--to-datasetcode` 描述关系两端;update/delete 使用 `--appcode + --relation-id` 定位当前关系,update 的其他参数只负责覆盖现值
|
|
127
|
+
- 共享自动化可传 `--expect-to-label-column` 做 label 漂移校验
|
|
128
|
+
- 写命令只使用结构化定位字段;不要从 dataset 展示名或字符串 key 自行推断关系
|
|
129
|
+
- `relation-update` 可覆盖来源/目标 datasetCode、字段、展示字段、关系基数和业务关系类型;未传字段保持当前值
|
|
130
|
+
- `to-label-column` 必须来自用户明确指定、目标字段清单,或当前关系事实 `to.labelField`;不确定时不要执行更新
|
|
131
|
+
- `relation-create --cardinality` 不区分 DB_TABLE/METADATA,所有支持方向均必填并按显式合法值提交;update 省略时沿用已有值,缺失时默认 `ONE_TO_MANY`
|
|
132
|
+
- 暂不支持 `METADATA -> DB_TABLE`
|
|
133
|
+
- 修改关系两端字段时必须先检查 `--dry-run` 中的完整合并结果,并确认新方向仍在支持矩阵内
|
|
134
|
+
- 不要在自动化流程中把删除旧关系再新增新关系视为原子编辑操作
|
|
135
|
+
- 如确需删除旧关系再新增新关系,先用 `dataset relations` 核对当前关系,分别对删除和新增执行 `--dry-run`,并在用户明确确认后分步执行
|
|
136
|
+
- 新增、更新、删除单条关系分别使用 `relation-create` / `relation-update` / `relation-delete`
|
|
137
|
+
|
|
138
|
+
## 参考
|
|
139
|
+
|
|
140
|
+
- [dataset relations](rabetbase-dataset-relations.md)
|
|
141
|
+
- [SKILL.md](../SKILL.md)
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# dataset relations
|
|
2
|
+
|
|
3
|
+
读取应用的数据集关联关系清单,默认读取 D0/DO V2 关系事实。这里的关联关系不是数据库外键:它可以是 V2 数据集之间的字段映射、自关联父子关系,也可以是 `DB_TABLE` 字段消费 `METADATA` 字典数据集。默认输出只包含稳定领域字段,Agent 不消费服务端原始 relation。
|
|
4
|
+
|
|
5
|
+
如果目标是判断关系事实是否存在缺字段、缺目标、重复关系或需要人工复核,使用 [`dataset relation-audit`](rabetbase-dataset-relation-audit.md)。
|
|
6
|
+
|
|
7
|
+
## 命令
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
rabetbase dataset relations --format compress
|
|
11
|
+
rabetbase dataset relations --datasetcode <datasetCode> --format compress
|
|
12
|
+
rabetbase dataset relations --from-source DB_TABLE --to-source METADATA --format compress
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 参数
|
|
16
|
+
|
|
17
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
18
|
+
|------|------|------|------|
|
|
19
|
+
| `--datasetcode <code>` | string | 否 | 只读取指定来源数据集的关系 |
|
|
20
|
+
| `--from-source <type>` | string | 否 | 来源数据集类型:`DB_TABLE` / `METADATA` |
|
|
21
|
+
| `--to-source <type>` | string | 否 | 目标数据集类型:`DB_TABLE` / `METADATA` |
|
|
22
|
+
| `--appcode <code>` | string | 否 | 覆盖当前配置中的 AppCode |
|
|
23
|
+
|
|
24
|
+
暂不支持 `METADATA -> DB_TABLE`,命令会在校验阶段拒绝该方向。
|
|
25
|
+
|
|
26
|
+
## 输出
|
|
27
|
+
|
|
28
|
+
返回数据集关系事实。主定位字段是 `datasetCode + field`;`from.table` 来自来源数据集详情,`DB_TABLE` 表示物理表,`METADATA` 在 `data.dataset.tableName` 有值时输出、无值时省略;`to.table` 仅在目标为 `DB_TABLE` 时输出。有效的关系记录 ID 使用顶层 `relationId`,目标展示字段使用 `to.labelField`,关系基数使用 `relation.cardinality`,业务关系类型使用 `relation.bizRelationType`;`main_sub` 表示主子表关系,`null` 表示普通关系。
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"appCode": "app-xxx",
|
|
33
|
+
"total": 1,
|
|
34
|
+
"relations": [{
|
|
35
|
+
"relationId": 14263,
|
|
36
|
+
"from": {
|
|
37
|
+
"source": "DB_TABLE",
|
|
38
|
+
"datasetCode": "from-dataset-code",
|
|
39
|
+
"datasetName": "来源数据集",
|
|
40
|
+
"table": "from_table",
|
|
41
|
+
"field": "from_field"
|
|
42
|
+
},
|
|
43
|
+
"to": {
|
|
44
|
+
"source": "METADATA",
|
|
45
|
+
"datasetCode": "to-dataset-code",
|
|
46
|
+
"datasetName": "目标数据集",
|
|
47
|
+
"field": "to_field",
|
|
48
|
+
"labelField": "to_label_field"
|
|
49
|
+
},
|
|
50
|
+
"relation": {
|
|
51
|
+
"cardinality": "ONE_TO_MANY",
|
|
52
|
+
"bizRelationType": "main_sub"
|
|
53
|
+
}
|
|
54
|
+
}]
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Agent 使用规则
|
|
59
|
+
|
|
60
|
+
- 页面关系审计、标准页面绑定、字典/选项源判断,直接使用 `dataset relations --format compress`;命令底层默认读取 D0/DO V2 关系事实
|
|
61
|
+
- 更新或删除前确认 `relationId`;写入前确认来源/目标 `datasetCode + field`、`to.labelField`、`relation.cardinality` 和 `relation.bizRelationType`
|
|
62
|
+
- `DB_TABLE -> METADATA` 表示业务表字段消费 METADATA 字典,不要把它理解为数据库外键
|
|
63
|
+
- `METADATA -> METADATA` 可以是自关联父子关系;是否自关联由 `from.datasetCode === to.datasetCode` 自行判断,不在协议里增加派生字段
|
|
64
|
+
- 读取输出只表达关系事实,不输出派生能力字段
|
|
65
|
+
- 物理库连接、测连、表清单和结构差异属于 `rabetbase db ...` 命令职责;数据集关系读取统一使用本命令
|
|
66
|
+
|
|
67
|
+
## 参考
|
|
68
|
+
|
|
69
|
+
- [dataset relation audit](rabetbase-dataset-relation-audit.md)
|
|
70
|
+
- [dataset relation mutations](rabetbase-dataset-relation-mutations.md)
|
|
71
|
+
- [SKILL.md](../SKILL.md)
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# dataset rename
|
|
2
|
+
|
|
3
|
+
安全修改 Dataset 展示名。命令只更新 Dataset 名称,不修改字段、关系、物理表映射或业务数据。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
rabetbase dataset rename \
|
|
9
|
+
--code 1a90dbff5f094a9a89936fa99b10984c \
|
|
10
|
+
--name "发票明细-销项" \
|
|
11
|
+
--expect-name "发票明细" \
|
|
12
|
+
--dry-run
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
确认 dry-run 结果无误后再去掉 `--dry-run` 执行:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
rabetbase dataset rename \
|
|
19
|
+
--code 1a90dbff5f094a9a89936fa99b10984c \
|
|
20
|
+
--name "发票明细-销项" \
|
|
21
|
+
--expect-name "发票明细" \
|
|
22
|
+
--format json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 参数
|
|
26
|
+
|
|
27
|
+
| Flag | 必填 | 说明 |
|
|
28
|
+
|------|------|------|
|
|
29
|
+
| `--appcode <code>` | 否 | 目标应用编码;未配置默认 app 时必填 |
|
|
30
|
+
| `--code <code>` | 是 | Dataset code,32 位 hex |
|
|
31
|
+
| `--name <newName>` | 是 | 新展示名 |
|
|
32
|
+
| `--expect-name <oldName>` | 是 | 当前展示名保护;不匹配即中止且不写入 |
|
|
33
|
+
| `--dry-run` | 否 | 只返回 before/after 与提交预览,不调用写接口 |
|
|
34
|
+
| `--format <fmt>` | 否 | 输出格式,AI Agent 优先用 `compress` |
|
|
35
|
+
|
|
36
|
+
## 输出
|
|
37
|
+
|
|
38
|
+
`--format json` / `--format compress` 返回 CLI envelope,rename 业务结果固定在 `data` 下。Agent 校验 dry-run 或正式执行结果时,只读取 `data.after.name`、`data.request`、`data.submitted` 等内层稳定字段;不要按顶层 `changed` 判断,因为顶层属于框架 envelope。
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"ok": true,
|
|
43
|
+
"command": "rabetbase dataset rename",
|
|
44
|
+
"risk": "write",
|
|
45
|
+
"dryRun": true,
|
|
46
|
+
"data": {
|
|
47
|
+
"dataset": {
|
|
48
|
+
"id": 1010859,
|
|
49
|
+
"code": "1a90dbff5f094a9a89936fa99b10984c"
|
|
50
|
+
},
|
|
51
|
+
"dryRun": true,
|
|
52
|
+
"changed": true,
|
|
53
|
+
"before": { "name": "发票明细" },
|
|
54
|
+
"after": { "name": "发票明细-销项" },
|
|
55
|
+
"request": {
|
|
56
|
+
"modelId": 1010859,
|
|
57
|
+
"modelCode": "1a90dbff5f094a9a89936fa99b10984c",
|
|
58
|
+
"name": "发票明细-销项",
|
|
59
|
+
"dataset": {
|
|
60
|
+
"datasetId": 1010859,
|
|
61
|
+
"datasetCode": "1a90dbff5f094a9a89936fa99b10984c",
|
|
62
|
+
"datasetName": "发票明细-销项"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"submitted": false
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
dry-run 输出会在同一个 `data` 对象内额外包含 `method`、`url`、`body`、`description`;这些字段只用于展示请求预览,不作为 Agent 的稳定校验入口。
|
|
71
|
+
|
|
72
|
+
当新旧名称相同时返回 `data.changed=false` 且 `data.submitted=false`,不会调用写接口。
|
|
73
|
+
|
|
74
|
+
## 连续重命名 SOP
|
|
75
|
+
|
|
76
|
+
当需要连续修改多个 Dataset 展示名时,逐条执行 `rabetbase dataset rename`,不要自行拼 HTTP 请求。
|
|
77
|
+
|
|
78
|
+
1. 先用 `rabetbase dataset list --format compress` 拉取线上最新 Dataset 事实;数据量大时用 `--jq` 缩小到 code/name/source 等必要字段。
|
|
79
|
+
2. 本地生成 rename plan,至少包含 `code`、`oldName`、`newName`、`reason`,并以线上事实填充 `oldName`。
|
|
80
|
+
3. 提交前做目标名唯一性和占用预检。该检查只是 best-effort:必须说明检查范围和过滤条件,不能把本地预检当作平台唯一性约束。
|
|
81
|
+
4. 每条先执行 `rabetbase dataset rename --code <code> --name <newName> --expect-name <oldName> --dry-run --format compress`。
|
|
82
|
+
5. dry-run 只读取 CLI envelope 内的 `data.after.name`、`data.request`、`data.submitted`、`data.changed` 等稳定字段;不要读取顶层 `changed`,不要依赖 stdout 文本片段。
|
|
83
|
+
6. dry-run 通过后,使用同一组 `code/name/expect-name` 去掉 `--dry-run` 正式执行,并逐条记录结果。
|
|
84
|
+
7. 全部执行后重新 `rabetbase dataset list`,按 code 回查线上名称,确认每条都与 plan 的 `newName` 一致。
|
|
85
|
+
8. 执行脚本包裹 CLI 时,不要假设 `stderr` 一定是 string;要按子进程库的真实类型处理 stdout/stderr/exit code。
|
|
86
|
+
|
|
87
|
+
## 操作边界
|
|
88
|
+
|
|
89
|
+
- 命令先读取平台 `get-driven-data`,用返回的 Dataset id/code 构造最小重命名 payload。
|
|
90
|
+
- 写入时通过 `/smartapi/dataset/update-driven-data` 提交,仅携带 `modelId`、`modelCode`、顶层 `name` 与 `dataset.datasetName`。
|
|
91
|
+
- 命令不提交 `fields` / `properties`,避免用 CLI 本地快照覆盖字段元数据。
|
|
92
|
+
- `--expect-name` 是强制防漂移保护,目标 Dataset 当前名称不匹配时不写入。
|
|
93
|
+
|
|
94
|
+
## 验证建议
|
|
95
|
+
|
|
96
|
+
执行后用以下命令确认:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
rabetbase dataset detail --code <datasetCode> --format compress --jq '.data | {id, code, name}'
|
|
100
|
+
rabetbase dataset list --code <datasetCode> --format compress --jq '.data.datasets[] | {id, code, name}'
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 参考
|
|
104
|
+
|
|
105
|
+
- [dataset detail](rabetbase-dataset-detail.md)
|
|
106
|
+
- [dataset list](rabetbase-dataset-list.md)
|
|
107
|
+
- [SKILL.md](../SKILL.md)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# dataset restore
|
|
2
|
+
|
|
3
|
+
恢复已删除数据集。命令调用服务端恢复接口,将数据集恢复为可用状态,并由服务端恢复该数据集关联的已删除页面和菜单。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
rabetbase dataset restore --id 44791 --dry-run --format json
|
|
9
|
+
rabetbase dataset restore --code 058b8cb7aac0466eb1b3332fd6cd381d --dry-run --format json
|
|
10
|
+
rabetbase dataset restore --dbid 10282 --expected-count 3 --dry-run --format json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
确认 dry-run 目标列表无误后再正式执行:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
rabetbase dataset restore --dbid 10282 --expected-count 3 --confirm --yes --format json
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 参数
|
|
20
|
+
|
|
21
|
+
| Flag | 必填 | 说明 |
|
|
22
|
+
|------|------|------|
|
|
23
|
+
| `--appcode <code>` | 否 | 目标应用编码;未配置默认 app 时必填 |
|
|
24
|
+
| `--id <id>` | 与 `--code` / `--dbid` 三选一 | 数据集 ID |
|
|
25
|
+
| `--code <code>` | 与 `--id` / `--dbid` 三选一 | Dataset code |
|
|
26
|
+
| `--dbid <id>` | 与 `--id` / `--code` 三选一 | 恢复该数据库连接下所有已删除数据集 |
|
|
27
|
+
| `--expected-count <n>` | 否 | 命中数量保护;实际命中数不一致时中止 |
|
|
28
|
+
| `--confirm` | 正式执行必填 | 确认执行恢复 |
|
|
29
|
+
| `--dry-run` | 否 | 只预览目标列表,不调用恢复接口 |
|
|
30
|
+
| `--yes` | 正式执行建议 | 跳过高风险写入确认;非交互环境必填 |
|
|
31
|
+
| `--format <fmt>` | 否 | 输出格式,AI Agent 优先用 `compress` |
|
|
32
|
+
|
|
33
|
+
## 行为
|
|
34
|
+
|
|
35
|
+
- 命令只在已删除数据集中定位目标。
|
|
36
|
+
- 目标列表只用于定位;`relatedPageCount` 分页查询 `getDeletedPageList(type=STANDARD)`,并按页面 `datasetIds` 聚合。
|
|
37
|
+
- 不读取 `get-dataset-list` 响应中的 `relationPages`。
|
|
38
|
+
- 正式执行调用 `/smartapi/dataset/restore-dataset`。
|
|
39
|
+
- 服务端会恢复数据集,并恢复该数据集关联的已删除页面和菜单。
|
|
40
|
+
- `--dbid` 批量恢复建议始终配合 `--expected-count`。
|
|
41
|
+
- 该命令不会创建新的物理表,也不会修改业务数据。
|
|
42
|
+
|
|
43
|
+
## 验证建议
|
|
44
|
+
|
|
45
|
+
恢复后可重新查看数据集详情:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
rabetbase dataset detail --code <datasetCode> --format compress
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 参考
|
|
52
|
+
|
|
53
|
+
- [dataset delete](rabetbase-dataset-delete.md)
|
|
54
|
+
- [dataset list](rabetbase-dataset-list.md)
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# db analyze-batch-plan / analyze-start / analyze-cancel / analyze-status
|
|
2
|
+
|
|
3
|
+
规划并管理 **schema 分析任务**。`analyze-batch-plan` 是生成本地批次方案的 **read** 命令;它不需要登录或 appcode,也不会创建、预留或返回服务端 `planId`。`analyze-start` 与 `analyze-cancel` 为 **write**;`analyze-status` 为 **read**(仅按服务端 plan 查询;命令能解析到 appcode 时会返回页面确认链接)。
|
|
4
|
+
|
|
5
|
+
## 何时用
|
|
6
|
+
|
|
7
|
+
- **analyze-batch-plan**:增量表清单较多时,先预览确定性安全批次;不创建服务端任务
|
|
8
|
+
- **analyze-start**:接入新库或表结构大变后,同步到 Lovrabet(一次调用只启动一个任务)
|
|
9
|
+
- **analyze-cancel**:任务卡住或误触,需要停掉当前分析
|
|
10
|
+
- **analyze-status**:轮询任务状态,并读取 CLI 派生的终态、重试和耗时字段
|
|
11
|
+
|
|
12
|
+
## trace / plan id 从哪来
|
|
13
|
+
|
|
14
|
+
见 [database-connection-workflow.md](../guides/database-connection-workflow.md) 第二节。摘要:
|
|
15
|
+
|
|
16
|
+
1. **`db list` / `db detail`** 中的 **`latestAnalysisTraceId`**
|
|
17
|
+
2. **`db analyze-start`** 返回的 **`data.planId`**
|
|
18
|
+
|
|
19
|
+
## 命令
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# 预览本地增量表批次(不调用 API、不返回服务端 planId)
|
|
23
|
+
rabetbase db analyze-batch-plan --id 10157 --tables orders,order_item --format compress
|
|
24
|
+
|
|
25
|
+
# 全量或默认分析
|
|
26
|
+
rabetbase db analyze-start --id 10157 --format compress
|
|
27
|
+
|
|
28
|
+
# 仅分析指定表(逗号分隔)
|
|
29
|
+
rabetbase db analyze-start --id 10157 --tables orders,order_item --format compress
|
|
30
|
+
|
|
31
|
+
# 取消既有任务(必须使用要取消任务的原 planId)
|
|
32
|
+
rabetbase db analyze-cancel --id 10157 --plan <existingPlanId> --format compress
|
|
33
|
+
|
|
34
|
+
# 查状态(必须 --plan)
|
|
35
|
+
rabetbase db analyze-status --id 10157 --plan <traceId> --format compress
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 参数
|
|
39
|
+
|
|
40
|
+
| 子命令 | 主要 flags |
|
|
41
|
+
|--------|------------|
|
|
42
|
+
| **analyze-batch-plan** | `--id`(必填)、`--tables`(必填,增量表名列表) |
|
|
43
|
+
| **analyze-start** | `--id`(必填)、`--tables`(可选,增量表名列表) |
|
|
44
|
+
| **analyze-cancel** | `--id`(必填)、`--plan`(必填,必须是要取消的既有任务) |
|
|
45
|
+
| **analyze-status** | `--id`(必填)、`--plan`(必填) |
|
|
46
|
+
|
|
47
|
+
取消是独立分支:不得先执行 `analyze-start` 获取新 planId,再取消新任务。取消请求提交后,继续使用同一原 planId 查询状态;不要用可能变化的 `latestAnalysisTraceId` 替换已经明确的取消目标。
|
|
48
|
+
|
|
49
|
+
## `analyze-batch-plan` 输出与执行规则
|
|
50
|
+
|
|
51
|
+
`analyze-batch-plan` 输出的是本地 batch plan,不是服务端任务计划。它对表名执行 trim、过滤空项和按首次出现顺序去重,再按输入顺序贪心分批。每批最多 10 张表,紧凑 JSON UTF-8 字节数最多 960;单张表自身超过安全预算时返回 validation error。输出不包含 `planId`,只有后续 `analyze-start` 才会创建任务并返回真实 `planId`。规划结果还按每表 60 秒给出启发式耗时估算。
|
|
52
|
+
|
|
53
|
+
| 字段 | 语义 |
|
|
54
|
+
|------|------|
|
|
55
|
+
| `data.dbLinkId` | 本次规划的 dblink id |
|
|
56
|
+
| `data.tableCount` / `data.batchCount` | 归一化后的表数量与批次数 |
|
|
57
|
+
| `data.maxTablesPerBatch` | 每批最多表数,当前为 10 |
|
|
58
|
+
| `data.maxSerializedBytesPerBatch` | 规划安全预算,当前为 960 UTF-8 bytes |
|
|
59
|
+
| `data.serverInputParamsLimitBytes` | 单次启动的本地硬保护上限,当前为 1024 bytes |
|
|
60
|
+
| `data.planningEstimate.basis` | 估算依据,固定为 `heuristic` |
|
|
61
|
+
| `data.planningEstimate.assumedSecondsPerTable` | 规划假设,当前为每表 60 秒 |
|
|
62
|
+
| `data.planningEstimate.estimatedTotalSeconds` / `estimatedTotalMinutes` | 按归一化表数量计算的总耗时估算 |
|
|
63
|
+
| `data.batches[].index` | 从 1 开始的稳定批次序号 |
|
|
64
|
+
| `data.batches[].tableCount` | 当前批次表数量 |
|
|
65
|
+
| `data.batches[].inputParamsBytes` | `{dbLinkId, tableNames}` 紧凑 JSON 的 UTF-8 字节数 |
|
|
66
|
+
| `data.batches[].estimatedDurationSeconds` | 当前批次按每表 60 秒计算的耗时估算 |
|
|
67
|
+
| `data.batches[].tableNames` | 当前批次需要传给 `analyze-start --tables` 的有序表名 |
|
|
68
|
+
|
|
69
|
+
上述估算仅用于排期,不是服务端 SLA。排队、表复杂度、关系分析和自动重试都可能延长实际耗时;不得据此触发超时、取消、重试、自动重启或推断任务状态,任务事实和实际耗时以同一 `planId` 的 `analyze-status` 返回为准。
|
|
70
|
+
|
|
71
|
+
必须按 `index` 严格串行:每批独立调用一次 `analyze-start`,并保存一个独立 `planId`。当前批次为 `PENDING / RUNNING / RETRYING / CANCELING` 时继续查询同一 planId;`SUCCESS` 才直接进入下一批;`PARTIAL_SUCCESS` 记录失败事实后继续;`FAILED / CANCELLED` 停止整个批次编排;未知状态停止自动推进。
|
|
72
|
+
|
|
73
|
+
如果 `analyze-start` 没有明确返回 `data.planId`,停止自动推进且不得盲目重试,因为请求结果可能不确定。全部批次结束后重新执行完整 `db diff --all --changed-only`;只对仍在 `data.toAnalyzeTables` 的非删除表逐表串行恢复一次,最后再执行一次完整 diff。
|
|
74
|
+
|
|
75
|
+
显式单批 `analyze-start --tables` 的持久化参数超过 1024 UTF-8 bytes 时,CLI 会在调用 API 前返回 validation error 并提示先运行 `db analyze-batch-plan`。960 是规划安全预算;960 至 1024 bytes 的显式单批仍允许启动。未传 `--tables` 的全量分析不受此保护影响。
|
|
76
|
+
|
|
77
|
+
## `analyze-start` 输出
|
|
78
|
+
|
|
79
|
+
| 字段 | 语义 |
|
|
80
|
+
|------|------|
|
|
81
|
+
| `data.planId` | 当前服务端任务的唯一查询标识 |
|
|
82
|
+
| `data.serverEstimate.estimatedMinutes` | 服务端返回的当前任务耗时估算(分钟) |
|
|
83
|
+
| `data.serverEstimate.estimatedDurationDesc` | 服务端返回的当前任务耗时描述 |
|
|
84
|
+
|
|
85
|
+
`serverEstimate` 属于已经创建的当前任务;`analyze-batch-plan` 的 `planningEstimate` 属于创建任务前的本地批次规划。两者都不用于判断任务状态。
|
|
86
|
+
|
|
87
|
+
## `analyze-status` 输出
|
|
88
|
+
|
|
89
|
+
| 字段 | 语义 |
|
|
90
|
+
|------|------|
|
|
91
|
+
| `data.status` | 后端原始任务对象,保留 `status / jobContext / errorMsg` 等排障事实 |
|
|
92
|
+
| `data.requestedAnalysis` | 从原始 `inputParams` 还原的提交范围:`mode` 为 `TARGETED / FULL / UNKNOWN`,并附 `tableCount / tableNames`;仅表示最初请求,不表示实际执行范围 |
|
|
93
|
+
| `data.requestedAnalysisParseWarning` | `inputParams` 缺失、非法或无法表达分析范围时的警告;成功还原时为 `null` |
|
|
94
|
+
| `data.parsedJobContext` | `jobContext` 为 JSON 对象时的完整解析结果;空值或非法值返回 `null` |
|
|
95
|
+
| `data.jobContextParseWarning` | 非法 JSON 或非对象 JSON 的解析警告;正常或空上下文为 `null` |
|
|
96
|
+
| `data.accumulatedErrorTypeCounts` | 原样读取 `parsedJobContext.accumulatedErrorTypeCounts` 的非空对象;缺失、空对象或非法类型返回 `null`,原因码大小写不做归一化 |
|
|
97
|
+
| `data.accumulatedErrorTypeCountsAdvisory` | 累计计数的数据质量提示;当前只作为参考信息展示,不作为自动决策输入 |
|
|
98
|
+
| `data.isTerminal` | 仅 `SUCCESS / PARTIAL_SUCCESS / FAILED / CANCELLED` 为 `true` |
|
|
99
|
+
| `data.isRetrying` | 仅原始状态为 `RETRYING` 时为 `true` |
|
|
100
|
+
| `data.attemptElapsedMs` | 当前或最近一次执行尝试耗时:优先使用服务端 `costTimeMs`,否则由 `startTime` 计算;无法计算时为 `null` |
|
|
101
|
+
| `data.totalElapsedMs` | 从 `firstStartTime` 到 `endTime` 或当前查询时刻的 plan 墙钟耗时;缺少可靠时间戳时为 `null` |
|
|
102
|
+
| `data.hasMultipleAttempts` | `firstStartTime` 与 `startTime` 都有效且不相同时为 `true`,表示服务端开启过后续执行尝试 |
|
|
103
|
+
|
|
104
|
+
`PENDING / RUNNING / RETRYING / CANCELING` 与未知状态都不是终态。不要根据 `failedTables`、`retryCount` 或错误文案推测状态。`PARTIAL_SUCCESS` 只表示任务已到终态;必须复跑 `db diff --all --changed-only` 验证目标差异收敛,才能得出本轮分析完成结论。
|
|
105
|
+
|
|
106
|
+
`analyze-status` 每次只查询一次。轮询时必须继续使用当前任务的同一 `planId`;查询超时、断网或临时 API 失败不等于分析失败,也不得触发新的 `analyze-start`。当前稳定任务状态中没有独立的 `TIMEOUT` 终态。
|
|
107
|
+
|
|
108
|
+
CLI 不通过固定格式或正则把 `errorMsg` 转换成机器协议;`data.status.errorMsg` 原文仍完整保留。Agent 可以语义理解该原文,并将其作为低置信度辅助证据,用于解释异常、提出排障建议和问题上报,但不得覆盖 `status` 的任务生命周期事实,不得替代最终完整 `db diff` 的收敛结论,也不得仅凭文案重新提交任务。服务端契约完成“顶层异常持久化、成功态保留、同表同轮去重”的回归验收前,`accumulatedErrorTypeCounts` 只作为参考信息展示,不驱动自动分支。
|
|
109
|
+
|
|
110
|
+
`RETRYING` 状态下的服务端 `costTimeMs` 可能只代表当前或最近一轮执行耗时,因此 `attemptElapsedMs` 不应解释为整个任务的累计总耗时。同一 `planId` 出现后续执行尝试,不证明尝试间执行连续性;`requestedAnalysis` 只反映原请求,当前状态契约不提供实际执行范围,CLI 不猜测二者是否一致。
|
|
111
|
+
|
|
112
|
+
## 输出链接
|
|
113
|
+
|
|
114
|
+
`analyze-start` 和 `analyze-status` 在配置或 `--appcode` 能提供 appcode 时,会返回:
|
|
115
|
+
|
|
116
|
+
| 字段 | 用途 |
|
|
117
|
+
|------|------|
|
|
118
|
+
| `data.links.erPage` | 分析后引导用户打开数据集关系页面确认数据集关系 |
|
|
119
|
+
| `data.links.databasePage` | 引导用户打开数据库连接页 |
|
|
120
|
+
|
|
121
|
+
当 `analyze-status` 返回的原始任务状态为 `SUCCESS` 或 `PARTIAL_SUCCESS` 时,应检查 `data.links.erPage`,并把该链接返回给用户,用于确认 ER 关系与数据集同步结果。若没有 `data.links`,通常是当前命令上下文没有解析到 appcode;重新传 `--appcode` 或在已配置 app 的项目中查询即可生成 ER 页面链接。
|
|
122
|
+
|
|
123
|
+
链接会按当前环境生成:
|
|
124
|
+
|
|
125
|
+
```text
|
|
126
|
+
daily https://daily.lovrabet.com/web-app/app/<appCode>/data/er?dbId=<id>
|
|
127
|
+
daily https://daily.lovrabet.com/web-app/app/<appCode>/data/database
|
|
128
|
+
production https://app.lovrabet.com/app/<appCode>/data/er?dbId=<id>
|
|
129
|
+
production https://app.lovrabet.com/app/<appCode>/data/database
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## 参考
|
|
133
|
+
|
|
134
|
+
- [database-connection-workflow.md](../guides/database-connection-workflow.md)
|
|
135
|
+
- [SKILL.md](../SKILL.md)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# db create
|
|
2
|
+
|
|
3
|
+
在平台**新建**一条数据库连接(dblink)。写操作(`write`),成功后可用返回的 **`id`** 做测连、分析。
|
|
4
|
+
|
|
5
|
+
## 何时用
|
|
6
|
+
|
|
7
|
+
- 新项目要把业务库接到 Lovrabet
|
|
8
|
+
- 与「工作台 → 连接数据库」等价,适合脚本/Agent 自动化
|
|
9
|
+
|
|
10
|
+
## 命令
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
rabetbase db create \
|
|
14
|
+
--dbname myapp \
|
|
15
|
+
--dbtype MYSQL \
|
|
16
|
+
--dburl db.example.com:3306 \
|
|
17
|
+
--username app \
|
|
18
|
+
--password '***' \
|
|
19
|
+
--dbversion 8.0 \
|
|
20
|
+
--format compress
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
可选:`--dbparam` 连接串附加参数、`--dbdesc` 描述、`--autostart` 创建成功后自动发起 schema 分析(等同再执行一次 `db analyze-start`)。若分析启动失败,连接仍已创建,响应中会含 `data.analysisStartWarning`。写操作支持 **`--dry-run`** 预览请求体(密码不落盘)。
|
|
24
|
+
|
|
25
|
+
成功响应会返回连接信息与 `data.links.databasePage`,用于引导用户按需打开数据库连接页查看新建连接。
|
|
26
|
+
|
|
27
|
+
## 参数(节选)
|
|
28
|
+
|
|
29
|
+
| Flag | 必填 | 说明 |
|
|
30
|
+
|------|------|------|
|
|
31
|
+
| `--dbname` | 是 | 库名/Schema 名 |
|
|
32
|
+
| `--dbtype` | 是 | 如 `MYSQL`、`POSTGRESQL` |
|
|
33
|
+
| `--dburl` | 是 | `host:port` |
|
|
34
|
+
| `--username` / `--password` | 是 | 凭据 |
|
|
35
|
+
| `--dbversion` | 否 | 默认 `8.0` |
|
|
36
|
+
| `--autostart` | 否 | 创建后是否自动启动分析 |
|
|
37
|
+
|
|
38
|
+
## 输出链接
|
|
39
|
+
|
|
40
|
+
`data.links.databasePage` 会按当前环境生成:
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
daily https://daily.lovrabet.com/web-app/app/<appCode>/data/database
|
|
44
|
+
production https://app.lovrabet.com/app/<appCode>/data/database
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 校验
|
|
48
|
+
|
|
49
|
+
`--dburl` 须为可解析的 `host:port` 形式(见 CLI 报错提示)。
|
|
50
|
+
|
|
51
|
+
## 参考
|
|
52
|
+
|
|
53
|
+
- [database-connection-workflow.md](../guides/database-connection-workflow.md)
|
|
54
|
+
- [SKILL.md](../SKILL.md)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# db delete
|
|
2
|
+
|
|
3
|
+
**永久删除**一条 dblink 配置。**high-risk-write**:非交互环境必须带 **`--yes`**。
|
|
4
|
+
|
|
5
|
+
## 何时用
|
|
6
|
+
|
|
7
|
+
- 下线环境、误建连接需清理(确认无数据集仍依赖该连接)
|
|
8
|
+
|
|
9
|
+
## 命令
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
rabetbase db delete --id 10157 --yes --format compress
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 参数
|
|
16
|
+
|
|
17
|
+
| Flag | 必填 | 说明 |
|
|
18
|
+
|------|------|------|
|
|
19
|
+
| `--id` | **是** | dblink id |
|
|
20
|
+
| `--yes` | CI/脚本必填 | 跳过高危确认 |
|
|
21
|
+
| `--appcode` | 否 | 覆盖 app |
|
|
22
|
+
|
|
23
|
+
## 参考
|
|
24
|
+
|
|
25
|
+
- [database-connection-workflow.md](../guides/database-connection-workflow.md)
|
|
26
|
+
- [SKILL.md](../SKILL.md)「风险控制」
|