@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,48 @@
|
|
|
1
|
+
# menu rename
|
|
2
|
+
|
|
3
|
+
按精确菜单 ID 修改菜单名称。该能力适用于所有菜单类型,不根据页面类型、打开方式或是否为分组选择不同命令。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
rabetbase menu rename --id "<menu-id>" --label "新名称" --expect-label "原名称" --dry-run --format compress
|
|
9
|
+
rabetbase menu rename --id "<menu-id>" --label "新名称" --expect-label "原名称" --format compress
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Flags
|
|
13
|
+
|
|
14
|
+
| Flag | 类型 | 说明 |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| `--id <id>` | number | 必填,`menu list` 返回的精确菜单 ID |
|
|
17
|
+
| `--label <label>` | string | 必填,新菜单名称;首尾空白会被移除,不能是空字符串 |
|
|
18
|
+
| `--expect-label <label>` | string | 必填,断言当前菜单名称,防止覆盖他人的并发修改 |
|
|
19
|
+
| `--dry-run` | boolean | 输出完整 before/after 和写入计划,不修改线上菜单 |
|
|
20
|
+
|
|
21
|
+
## 执行顺序
|
|
22
|
+
|
|
23
|
+
1. 先运行 `rabetbase menu list --format compress`,确认目标菜单的 `id` 和当前 `label`。
|
|
24
|
+
2. 使用当前名称作为 `--expect-label` 执行 dry-run。
|
|
25
|
+
3. 确认 `before/after` 仅有 `label` 发生预期变化。
|
|
26
|
+
4. 复用相同参数并移除 `--dry-run`,执行正式写入。
|
|
27
|
+
5. 检查结果中的 `verification.matchesRequestedState=true`。
|
|
28
|
+
|
|
29
|
+
新名称与当前名称相同时返回成功 no-op,不发送写请求。即使是 no-op,当前名称仍必须匹配 `--expect-label`。
|
|
30
|
+
|
|
31
|
+
## 安全规则
|
|
32
|
+
|
|
33
|
+
- 不按 `folder`、`iframe`、`link`、`procode` 或其他类型分支。
|
|
34
|
+
- 只修改 `label`,保留菜单 ID、父级、排序、path、URL、页面绑定、资源、可见性和权限关联。
|
|
35
|
+
- dry-run 后线上菜单事实发生变化时,正式执行会拒绝写入,需重新获取菜单事实并预览。
|
|
36
|
+
- 响应丢失时不自动重试写入。CLI 回读确认新名称与其他菜单事实后才返回 `recovered=true`;无法确认时按返回的 `verification.lookupCommand` 检查线上状态。
|
|
37
|
+
|
|
38
|
+
## 常见错误
|
|
39
|
+
|
|
40
|
+
- `menu_state_drift`:当前名称或菜单快照已变化。重新执行 `menu list` 和 dry-run,并更新 `--expect-label`。
|
|
41
|
+
- `menu_update_recovery_required`:写入结果无法安全确认。先执行错误结果中的只读 lookup 命令,不要直接重试。
|
|
42
|
+
|
|
43
|
+
## 相关命令
|
|
44
|
+
|
|
45
|
+
- [menu list](rabetbase-menu-list.md)
|
|
46
|
+
- [menu group-update](rabetbase-menu-group-update.md)
|
|
47
|
+
- [menu external-link-update](rabetbase-menu-external-link-update.md)
|
|
48
|
+
- [menu asset-update](rabetbase-menu-asset-update.md)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# menu sync
|
|
2
|
+
|
|
3
|
+
扫描本地 `src/pages/**/*.tsx`,把线上缺失的路由注册为平台 `procode` 菜单。
|
|
4
|
+
|
|
5
|
+
> **风险等级:write** — 修改平台菜单配置。
|
|
6
|
+
|
|
7
|
+
## 命令
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 交互模式(TTY)
|
|
11
|
+
rabetbase menu sync
|
|
12
|
+
|
|
13
|
+
# 发现待同步页面的真实 path,不写入
|
|
14
|
+
rabetbase menu sync --dry-run --format json
|
|
15
|
+
|
|
16
|
+
# 按 targetPages[].path 精确预览
|
|
17
|
+
rabetbase menu sync --paths "<local-page-path>" --params '{"jsUrl":"https://cdn.example.com/app.js"}' --dry-run --format compress
|
|
18
|
+
|
|
19
|
+
# 静默全量同步
|
|
20
|
+
rabetbase menu sync --yes
|
|
21
|
+
|
|
22
|
+
# 静默部分同步(预填 URL 和精确 path)
|
|
23
|
+
rabetbase menu sync --paths "<local-page-path-1>,<local-page-path-2>" --params '{"jsUrl":"https://...js","cssUrl":"https://...css"}' --yes
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## 参数
|
|
27
|
+
|
|
28
|
+
| Flag | 类型 | 必填 | 默认 | 说明 |
|
|
29
|
+
|------|------|------|------|------|
|
|
30
|
+
| `--params <json>` | string | 否 | — | 预填 JS/CSS URL。JSON 格式:`{"jsUrl":"...","cssUrl":"..."}` |
|
|
31
|
+
| `--paths <csv>` | string | 否 | — | 按本地页面 path 精确选择;值来自 dry-run 的 `targetPages[].path` |
|
|
32
|
+
| `--yes` | boolean | 否 | — | 确认非交互执行;未传 `--paths` 时创建全部本地未上线页面 |
|
|
33
|
+
| `--dry-run` | boolean | 否 | `false` | 复用真实扫描、线上 diff 和 URL 校验,返回计划但不创建菜单 |
|
|
34
|
+
| `--format <fmt>` | string | 否 | `compress` | 输出格式 |
|
|
35
|
+
|
|
36
|
+
## 三种执行模式
|
|
37
|
+
|
|
38
|
+
1. **`--yes`** — 非交互同步;未传 `--paths` 时创建全部本地未在平台上的页面
|
|
39
|
+
2. **`--paths` + `--yes`** — 按本地 path 精确同步指定页面
|
|
40
|
+
3. **TTY 交互式** — 展示名称、path 与线上状态 → checkbox 选择未注册页面 → 输入 JS/CSS URL → 确认 → 执行创建
|
|
41
|
+
|
|
42
|
+
## 输出
|
|
43
|
+
|
|
44
|
+
- 成功:`✓ Menu sync completed: N menu(s) created`
|
|
45
|
+
- 无需同步:`✓ All local pages are already on platform` 或 `! No local pages found in src/pages`
|
|
46
|
+
- `--dry-run`:返回 `targetPages` 和 `plannedMenus`;`created=0`,且不调用菜单创建接口
|
|
47
|
+
|
|
48
|
+
## 提示
|
|
49
|
+
|
|
50
|
+
- 本地页面扫描 `src/pages` 目录
|
|
51
|
+
- 同步前会获取线上菜单列表做 diff
|
|
52
|
+
- path 是稳定选择器,名称只用于展示;多个 path 必须全部匹配
|
|
53
|
+
- 已在平台存在的 path 不会重复创建
|
|
54
|
+
- 交互模式下会展示 compare table(名称、path、本地与线上状态)
|
|
55
|
+
- CLI 只注册菜单和资源引用,不构建、不上传源码或静态资源
|
|
56
|
+
- 当前 React/Vite 模板使用 `loadScriptMode=import`;资源 URL 指向已部署的 CDN 构建产物
|
|
57
|
+
|
|
58
|
+
## 参考
|
|
59
|
+
|
|
60
|
+
- [SKILL.md](../SKILL.md)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# rabetbase notification config-list
|
|
2
|
+
|
|
3
|
+
只读查询当前应用的应用级通知渠道配置,主要用于获取 BFF 消息通知扩展需要的 `configCode`。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
rabetbase notification config-list --format compress
|
|
9
|
+
rabetbase notification config-list --type EMAIL --format compress
|
|
10
|
+
rabetbase notification config-list --type EMAIL --appcode app-xxxxx --format json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
`--type` 默认 `EMAIL`,支持:
|
|
14
|
+
|
|
15
|
+
* `EMAIL`
|
|
16
|
+
* `FEISHU`
|
|
17
|
+
* `DINGTALK`
|
|
18
|
+
* `WECOM`
|
|
19
|
+
* `WEBHOOK`
|
|
20
|
+
|
|
21
|
+
类型值使用大写。
|
|
22
|
+
|
|
23
|
+
## 输出
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"ok": true,
|
|
28
|
+
"data": {
|
|
29
|
+
"appCode": "app-xxxxx",
|
|
30
|
+
"channelType": "EMAIL",
|
|
31
|
+
"count": 1,
|
|
32
|
+
"configs": [
|
|
33
|
+
{
|
|
34
|
+
"id": 7,
|
|
35
|
+
"configCode": "ncc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
36
|
+
"configName": "官方邮件",
|
|
37
|
+
"channelType": "EMAIL",
|
|
38
|
+
"description": "业务通知邮件",
|
|
39
|
+
"createTime": "2026-07-01T00:00:00Z",
|
|
40
|
+
"updateTime": "2026-07-02T00:00:00Z"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"message": "Found 1 EMAIL notification config(s)"
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
CLI 只输出用于选择配置的安全字段,不输出:
|
|
49
|
+
|
|
50
|
+
* `channelConfig`
|
|
51
|
+
* `endpointUrl`
|
|
52
|
+
* SMTP 用户名、密码、token、secret
|
|
53
|
+
* 连接超时和创建人/更新人等身份审计字段
|
|
54
|
+
|
|
55
|
+
若服务端返回的任一记录缺少非空的 `configCode`、`configName` 或 `channelType`,CLI 会返回 `api_error`,不会用空字符串伪造可用配置,也不会输出可能不完整的成功列表。
|
|
56
|
+
|
|
57
|
+
## BFF 使用
|
|
58
|
+
|
|
59
|
+
先根据 `configName` 和 `description` 选择目标配置,再把同一项的 `configCode` 传给:
|
|
60
|
+
|
|
61
|
+
```javascript
|
|
62
|
+
await context.client.extension.execute("notification", "send", {
|
|
63
|
+
configCode: "ncc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
64
|
+
audiences,
|
|
65
|
+
message,
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
边界:
|
|
70
|
+
|
|
71
|
+
* `configCode` 是应用级通知配置编码。
|
|
72
|
+
* dataset 级通知通道的 `channelCode` 不能替代 `configCode`。
|
|
73
|
+
* 没有查询结果时,不要编造配置编码。
|
|
74
|
+
* 多个候选无法判断时,向用户确认,不要默认取第一条。
|
|
75
|
+
* 该命令不会发送通知,也不会修改平台配置。
|
|
76
|
+
|
|
77
|
+
## 参考
|
|
78
|
+
|
|
79
|
+
* [BFF 创建工作流](../guides/bff-creation-workflow.md)
|
|
80
|
+
* [Backend Function 消息通知扩展](../guides/backend-function.md#消息通知扩展)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# ocr recognize
|
|
2
|
+
|
|
3
|
+
使用平台 OCR 服务识别远程 URL 或本地图片/PDF。适用于发票、证照、表格图片、合同附件和普通文字识别。
|
|
4
|
+
|
|
5
|
+
## 风险边界
|
|
6
|
+
|
|
7
|
+
`ocr recognize` 的风险等级为 `read`:命令不创建、更新或删除业务数据。服务端仍可能记录审计、调用第三方 OCR 服务并产生计费;如需将识别结果写入 Dataset,后续写入命令继续按其 `write` 或 `high-risk-write` 规则执行。
|
|
8
|
+
|
|
9
|
+
本地文件模式会把文件上传到目标应用并生成未绑定业务记录的文件对象。执行前需要核对 `appCode`、文件敏感性和账号权限;最终答复不回显 Cookie 或签名 URL。
|
|
10
|
+
|
|
11
|
+
## 命令
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# 远程 URL
|
|
15
|
+
rabetbase ocr recognize \
|
|
16
|
+
--scene invoice \
|
|
17
|
+
--image-url 'https://files.example.com/invoice.png' \
|
|
18
|
+
--appcode app-demo \
|
|
19
|
+
--format compress
|
|
20
|
+
|
|
21
|
+
# 本地文件
|
|
22
|
+
rabetbase ocr recognize \
|
|
23
|
+
--scene invoice \
|
|
24
|
+
--image-file ./invoice.png \
|
|
25
|
+
--appcode app-demo \
|
|
26
|
+
--format compress
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Flags
|
|
30
|
+
|
|
31
|
+
| Flag | 必填 | 说明 |
|
|
32
|
+
|------|------|------|
|
|
33
|
+
| `--scene <scene>` | 是 | `invoice`、`general`、`form` 或 `idCard` |
|
|
34
|
+
| `--image-url <url>` | 二选一 | 公开可访问的图片或文件 URL |
|
|
35
|
+
| `--image-file <path>` | 二选一 | 本地图片或 PDF,普通文件且不超过 50 MB |
|
|
36
|
+
| `--appcode <code>` | 取决于项目上下文 | 目标应用;项目未配置默认应用时显式传入 |
|
|
37
|
+
| `--dry-run` | 否 | 只预览调用链,不上传、不查询 URL、不调用 OCR |
|
|
38
|
+
|
|
39
|
+
`--image-url` 与 `--image-file` 必须且只能选择一个。
|
|
40
|
+
|
|
41
|
+
## Scene 映射
|
|
42
|
+
|
|
43
|
+
| scene | 服务端 type | 用途 |
|
|
44
|
+
|-------|-------------|------|
|
|
45
|
+
| `invoice` | `Invoice` | 发票 |
|
|
46
|
+
| `general` | `General` | 通用文字 |
|
|
47
|
+
| `form` | `Table` | 表格 |
|
|
48
|
+
| `idCard` | `IdCard` | 身份证 |
|
|
49
|
+
|
|
50
|
+
## 调用链
|
|
51
|
+
|
|
52
|
+
- URL 模式:直接调用平台 OCR 接口。
|
|
53
|
+
- 本地文件模式:`file upload` → `file query-url`(短效 URL)→ OCR。
|
|
54
|
+
- OCR 中间 URL 不使用 `--long-term`,输出的 `sourceFile.filePath` 可用于后续文件引用。
|
|
55
|
+
|
|
56
|
+
正式执行前可先预览:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
rabetbase ocr recognize \
|
|
60
|
+
--scene form \
|
|
61
|
+
--image-file ./table.png \
|
|
62
|
+
--appcode app-demo \
|
|
63
|
+
--dry-run \
|
|
64
|
+
--format compress
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 输出
|
|
68
|
+
|
|
69
|
+
稳定输出包含 `scene`,并透传服务端可用的 OCR 事实,例如 `text`、`lines`、`type`、`kvData`、`width`、`height` 和 `requestId`。本地文件模式额外返回 `sourceFile.fileName/filePath`。
|
|
70
|
+
|
|
71
|
+
不要假设所有识别类型都会返回结构化 `kvData`,也不要伪造积分或计费字段。
|
|
72
|
+
|
|
73
|
+
## 失败处理
|
|
74
|
+
|
|
75
|
+
| 情况 | 处理 |
|
|
76
|
+
|------|------|
|
|
77
|
+
| 缺少输入或同时提供两种输入 | 只保留 `--image-url` 或 `--image-file` 之一 |
|
|
78
|
+
| scene 不支持 | 改用 `invoice/general/form/idCard` |
|
|
79
|
+
| 本地文件不存在、不是普通文件或超过 50 MB | 修正文件路径或缩小文件后重试 |
|
|
80
|
+
| 上传结果缺少 `filePath` | 报告上传响应异常,不继续查询 URL 或 OCR |
|
|
81
|
+
| URL 查询缺少 `fileUrl` | 报告链接响应异常,不调用 OCR |
|
|
82
|
+
| OCR 权限不足 | 核对目标 `appCode` 和当前 rabetbase 登录账号的应用权限 |
|
|
83
|
+
|
|
84
|
+
## 相关参考
|
|
85
|
+
|
|
86
|
+
- [file upload / query-url](rabetbase-file.md)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# page generate-start
|
|
2
|
+
|
|
3
|
+
异步提交或复用智能列表页(Smart List Page)生成任务。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 默认行为:仅预览,不调用平台 API
|
|
9
|
+
rabetbase page generate-start --datasetcode 097b7361b76c42bcb12b923fa5a08861 --format json
|
|
10
|
+
rabetbase page generate-start --alias order --format json
|
|
11
|
+
rabetbase page generate-start --datasetcode 097b7361b76c42bcb12b923fa5a08861 --dry-run --format json
|
|
12
|
+
|
|
13
|
+
# 真正提交任务
|
|
14
|
+
rabetbase page generate-start --datasetcode 097b7361b76c42bcb12b923fa5a08861 --apply --format json
|
|
15
|
+
rabetbase page generate-start --alias order --apply --format json
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 行为说明
|
|
19
|
+
|
|
20
|
+
- 这是智能列表页生成的 **async-first 提交入口**。
|
|
21
|
+
- **默认仅返回 dry-run 预览,不会调用 `generate-standard-pages/start`**;需要真正提交任务必须显式加 `--apply`。`--dry-run` 与不传 `--apply` 行为等价。
|
|
22
|
+
- CLI 会先查 `standard-page-status` 做前置判定。
|
|
23
|
+
- 若允许生成且传入 `--apply`,CLI 会自动生成 `clientOperationId`,并调用 Java 侧 `generate-standard-pages/start`。
|
|
24
|
+
- 返回结果里的 `operationId` 是服务端 job 主标识;`clientOperationId` 是调用方恢复 / 幂等锚点。
|
|
25
|
+
- `query.command` 默认给出 `operationId` 查询;调用方若只保留了 `clientOperationId`,也可以用它恢复到同一条任务查询。
|
|
26
|
+
- Agent / 自动化编排优先直接复用返回值里的 `query.command`,不要自己重新拼接恢复查询命令。
|
|
27
|
+
- Agent 自动化场景下,编排器应先跑一次默认预览校验候选数据集,再带 `--apply` 提交;不应直接对所有数据集跑 `--apply`。
|
|
28
|
+
|
|
29
|
+
## 参考
|
|
30
|
+
|
|
31
|
+
- [rabetbase-page-generate-status.md](rabetbase-page-generate-status.md)
|
|
32
|
+
- [rabetbase-standard-page-status.md](rabetbase-standard-page-status.md)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# page generate-status
|
|
2
|
+
|
|
3
|
+
查询智能列表页(Smart List Page)生成任务状态。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
rabetbase page generate-status --datasetcode 097b7361b76c42bcb12b923fa5a08861 --task-id 2da9d1d7-8e34-4ce5-97af-72d2df9870aa --format json
|
|
9
|
+
rabetbase page generate-status --datasetcode 097b7361b76c42bcb12b923fa5a08861 --operation-id op-001 --format json
|
|
10
|
+
rabetbase page generate-status --datasetcode 097b7361b76c42bcb12b923fa5a08861 --client-operation-id client-001 --format json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 参数
|
|
14
|
+
|
|
15
|
+
- `--task-id`、`--operation-id` 与 `--client-operation-id` 必须且只能传一个
|
|
16
|
+
- taskId 是首选查询标识,优先直接执行 Start 返回的 `data.query.command`
|
|
17
|
+
- `--operation-id` 用于旧响应或兼容查询
|
|
18
|
+
- `--client-operation-id` 用于调用方恢复 / 幂等查询;通常只在拿不到或丢失 taskId/operationId 时使用
|
|
19
|
+
|
|
20
|
+
## 行为说明
|
|
21
|
+
|
|
22
|
+
- 命令查询的是**任务状态**,不是页面事实。
|
|
23
|
+
- 当任务进入成功终态时,CLI 会补查 `standard-page-status`,把页面事实一并附在结果里,方便你直接判断是否形成完整智能列表页组。
|
|
24
|
+
- 若任务仍在 `PENDING/PROCESSING/RUNNING`,结果会保持机器可读的 `status / nextAction / query`。
|
|
25
|
+
- 提交生成后保存 `taskId`、`operationId` 与 `clientOperationId`;超时、未知状态或网络失败时复用原标识查询,不重新执行 `generate-start --apply`,不得自动重提。
|
|
26
|
+
- 成功终态时,页面组锚点位于 `data.standardPageStatus.pageSets[].versionTag`。存在多个完整组、残留页或冲突时交给用户确认,不猜测 `versionTag`。
|
|
27
|
+
- 确认页面组后,使用 `page pull --datasetcode <code> --version-tag <tag>` 精确拉取。
|
|
28
|
+
|
|
29
|
+
## 参考
|
|
30
|
+
|
|
31
|
+
- [rabetbase-page-generate-start.md](rabetbase-page-generate-start.md)
|
|
32
|
+
- [rabetbase-standard-page-status.md](rabetbase-standard-page-status.md)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# page pull
|
|
2
|
+
|
|
3
|
+
拉取智能列表页(Smart List Page,DOV2 `smart_page`)的 formal schema 到本地 **`.rabetbase/page/<appCode>/`**,进入 `pull -> IDE 编辑 -> push` 工作流。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
rabetbase page pull --id 1020286 --format json
|
|
9
|
+
rabetbase page pull --datasetcode 097b7361b76c42bcb12b923fa5a08861 --format json
|
|
10
|
+
rabetbase page pull --datasetcode 097b7361b76c42bcb12b923fa5a08861 --version-tag a1b2c3d4 --format json
|
|
11
|
+
rabetbase page pull --id 1020286 --force --format json
|
|
12
|
+
rabetbase page pull --datasetcode 097b7361b76c42bcb12b923fa5a08861 --dry-run --format json
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 参数
|
|
16
|
+
|
|
17
|
+
| Flag | 类型 | 必填 | 默认 | 说明 |
|
|
18
|
+
|------|------|------|------|------|
|
|
19
|
+
| `--id <pageId>` | number | 与 `--datasetcode` / `--alias` 互斥二选一 | — | 单页拉取 |
|
|
20
|
+
| `--datasetcode <code>` | string | 与 `--id` 互斥;和 `--alias` 二选一 | — | 按数据集批量拉取 |
|
|
21
|
+
| `--alias <name>` | string | 与 `--id` 互斥;和 `--datasetcode` 二选一 | — | 数据集别名 |
|
|
22
|
+
| `--version-tag <tag>` | string | 否 | — | 批量模式下指定页面组 |
|
|
23
|
+
| `--force` | boolean | 否 | `false` | 覆盖本地未推送修改 |
|
|
24
|
+
| `--dry-run` | boolean | 否 | `false` | 仅预览将被拉取/跳过的页面 |
|
|
25
|
+
| `--format <fmt>` | string | 否 | `compress` | 输出格式 |
|
|
26
|
+
|
|
27
|
+
## 本地文件
|
|
28
|
+
|
|
29
|
+
- 页面文件:`.rabetbase/page/<appCode>/<pageId>-<TYPE>.json`
|
|
30
|
+
- 基线锁文件:`.rabetbase/page.lock.json`
|
|
31
|
+
|
|
32
|
+
## 行为说明
|
|
33
|
+
|
|
34
|
+
- 单页模式:按 `pageId` 拉取单个页面并更新 lock
|
|
35
|
+
- 批量模式:按数据集筛选关联页面;若存在多个 `versionTag` 组且未指定 `--version-tag`,命令会 fail-fast
|
|
36
|
+
- 本地文件存在未推送修改且未传 `--force` 时,会跳过或报冲突
|
|
37
|
+
- 页面生成链路中的 `versionTag` 来自 `page generate-status` 的 `data.standardPageStatus.pageSets[]`;存在多个候选组时先由用户确认,不按顺序或时间猜测
|
|
38
|
+
|
|
39
|
+
## 提示
|
|
40
|
+
|
|
41
|
+
- 本地编辑 formal schema 前,先执行一次 pull 建立基线
|
|
42
|
+
- 若要理解 schema 组件语义,再按需查看 `knowledge/page-schema/` 下的 PageSchema 知识;那是组件参考,不是 CLI 命令 reference
|
|
43
|
+
|
|
44
|
+
## 参考
|
|
45
|
+
|
|
46
|
+
- [SKILL.md](../SKILL.md)
|
|
47
|
+
- [rabetbase-page-push.md](rabetbase-page-push.md)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# page push
|
|
2
|
+
|
|
3
|
+
将本地页面 schema 推送回平台;推送成功后会自动回拉 canonical schema 覆盖本地文件与 lock。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
rabetbase page push --id 1020286 --format json
|
|
9
|
+
rabetbase page push --datasetcode 097b7361b76c42bcb12b923fa5a08861 --format json
|
|
10
|
+
rabetbase page push --datasetcode 097b7361b76c42bcb12b923fa5a08861 --version-tag a1b2c3d4 --format json
|
|
11
|
+
rabetbase page push --id 1020286 --dry-run --format json
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 参数
|
|
15
|
+
|
|
16
|
+
| Flag | 类型 | 必填 | 默认 | 说明 |
|
|
17
|
+
|------|------|------|------|------|
|
|
18
|
+
| `--id <pageId>` | number | 与 `--datasetcode` / `--alias` 互斥二选一 | — | 单页推送 |
|
|
19
|
+
| `--datasetcode <code>` | string | 与 `--id` 互斥;和 `--alias` 二选一 | — | 按数据集批量推送 |
|
|
20
|
+
| `--alias <name>` | string | 与 `--id` 互斥;和 `--datasetcode` 二选一 | — | 数据集别名 |
|
|
21
|
+
| `--version-tag <tag>` | string | 否 | — | 批量模式下指定页面组 |
|
|
22
|
+
| `--dry-run` | boolean | 否 | `false` | 做本地校验与远端版本检查,不实际推送 |
|
|
23
|
+
| `--format <fmt>` | string | 否 | `compress` | 输出格式 |
|
|
24
|
+
|
|
25
|
+
## 前置条件
|
|
26
|
+
|
|
27
|
+
- 本地已通过 [`rabetbase page pull`](rabetbase-page-pull.md) 建立基线
|
|
28
|
+
- 本地页面文件位于 `.rabetbase/page/<appCode>/`
|
|
29
|
+
- lock 文件 `.rabetbase/page.lock.json` 存在对应页面记录
|
|
30
|
+
|
|
31
|
+
## 行为说明
|
|
32
|
+
|
|
33
|
+
- 单页模式:校验本地文件、读取 lock、比对远端版本,再调用更新接口
|
|
34
|
+
- 批量模式:只推送本地 hash 有变更的页面;无基线时会 fail-fast,提示先执行 `page pull`
|
|
35
|
+
- 推送后会再次拉取远端 canonical schema,并覆盖本地文件和 lock,避免本地保留非 canonical 版本
|
|
36
|
+
|
|
37
|
+
## 提示
|
|
38
|
+
|
|
39
|
+
- 若远端页面已发生变化,命令会要求先重新 pull,而不是盲推覆盖
|
|
40
|
+
- 批量模式下若存在多个 `versionTag` 组,需显式传 `--version-tag`
|
|
41
|
+
|
|
42
|
+
## 参考
|
|
43
|
+
|
|
44
|
+
- [SKILL.md](../SKILL.md)
|
|
45
|
+
- [rabetbase-page-pull.md](rabetbase-page-pull.md)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# page react-create
|
|
2
|
+
|
|
3
|
+
创建 React 自定义页面,初始化 JSX、样式和多语言词包,并同时创建菜单入口。
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
rabetbase page react-create --name "客户看板" --appcode <appCode> --dry-run --format compress
|
|
7
|
+
rabetbase page react-create --name "客户看板" --parent-menu-id 100 --appcode <appCode>
|
|
8
|
+
rabetbase page react-create --name "客户看板" --page-content '<json>' --appcode <appCode>
|
|
9
|
+
rabetbase page react-create --appcode <appCode> --dry-run --format compress
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## 参数
|
|
13
|
+
|
|
14
|
+
| 参数 | 必填 | 说明 |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| `--name <name>` | 否 | 可选页面名称,1–100 个字符;省略时默认 `自定义页面_<timestamp>` |
|
|
17
|
+
| `--parent-menu-id <id>` | 否 | 父菜单 ID |
|
|
18
|
+
| `--page-content <json>` | 否 | 完整页面文件 JSON;对象的键为相对路径,值为文件内容,省略时生成默认 JSX、样式和词包 |
|
|
19
|
+
| `--appcode <code>` | 是 | 目标应用 code |
|
|
20
|
+
|
|
21
|
+
## 执行步骤
|
|
22
|
+
|
|
23
|
+
1. 可选传入 `--page-content` 作为完整页面文件 JSON;省略时 CLI 生成默认文件。
|
|
24
|
+
2. 使用 `--dry-run` 确认页面名称、父菜单与最终页面文件。
|
|
25
|
+
3. 确认后使用相同参数执行创建。
|
|
26
|
+
4. 从结构化输出的 `data.after.pageId` 确认新页面 ID,并核对页面名称和生成的文件。
|
|
27
|
+
5. 输出的 `pageUrl` 用于查看最新保存内容,包含尚未发布的修改;`editPageUrl` 用于打开页面编辑器,继续修改页面。
|
|
28
|
+
|
|
29
|
+
页面创建始终同时创建菜单。CLI 会按应用语言设置生成词包;读取设置失败时使用默认中英文词包。
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# page react-detail
|
|
2
|
+
|
|
3
|
+
查询 React 自定义页面详情。
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
rabetbase page react-detail --id <pageId> --format compress
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 参数
|
|
10
|
+
|
|
11
|
+
| 参数 | 必填 | 说明 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `--id <pageId>` | 是 | React 自定义页面 ID |
|
|
14
|
+
| `--appcode <code>` | 否 | 目标应用 code,省略时根据 `pageId` 查询 |
|
|
15
|
+
|
|
16
|
+
## 输出
|
|
17
|
+
|
|
18
|
+
返回页面详情和当前完整页面文件。`createTime` 和 `updateTime` 以 `YYYY-MM-DD HH:mm:ss` 展示。
|
|
19
|
+
|
|
20
|
+
地址说明(按当前环境):
|
|
21
|
+
|
|
22
|
+
- `pageUrl`:查看最新保存内容的页面地址,包含尚未发布的修改
|
|
23
|
+
- `runtimePageUrl`:查看已发布内容的页面地址,仅在有已发布内容时返回;格式为 `https://<appCode>.lovrabet.com/<pageCode>`(线上)或 `https://<appCode>.daily.lovrabet.com/<pageCode>`(日常)
|
|
24
|
+
- `editPageUrl`:打开页面编辑器的地址,可继续修改页面;格式为 `https://<env>.lovrabet.com/web-app/app/<appCode>/ide/<pageId>`(线上为 `app.lovrabet.com`,日常为 `daily.lovrabet.com`)
|
|
25
|
+
|
|
26
|
+
`data.codeContent` 是当前完整页面文件,可在本地完成新增、修改或删除后,作为 `page react-update --page-content <json>` 的完整页面内容提交。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# 查询 React 自定义页面 ID
|
|
2
|
+
|
|
3
|
+
## 命令
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
rabetbase page react-list --appcode <appCode> --format json
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 适用场景
|
|
10
|
+
|
|
11
|
+
需要查找 React 自定义页面的 `pageId`,再执行 `page react-detail`、`page react-update` 或 `page react-publish`。
|
|
12
|
+
|
|
13
|
+
## 参数
|
|
14
|
+
|
|
15
|
+
- `--appcode <appCode>`:必填,目标应用 code
|
|
16
|
+
|
|
17
|
+
## 输出
|
|
18
|
+
|
|
19
|
+
`data.pages` 是当前应用中可操作的 React 自定义页面列表
|
|
20
|
+
|
|
21
|
+
- `label`:页面名称
|
|
22
|
+
- `pageUrl`:查看最新保存内容的页面地址,包含尚未发布的修改;日常为 `https://daily.lovrabet.com/web-app/app/<appCode>/pages/<path>`,线上为 `https://app.lovrabet.com/app/<appCode>/pages/<path>`
|
|
23
|
+
- `editPageUrl`:打开页面编辑器的地址,可继续修改页面;线上域名为 `app.lovrabet.com`,日常域名为 `daily.lovrabet.com`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# page react-publish
|
|
2
|
+
|
|
3
|
+
发布 React 自定义页面的当前保存内容。
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
rabetbase page react-publish --id <pageId> --dry-run --format compress
|
|
7
|
+
rabetbase page react-publish --id <pageId> --remark "发布说明" --yes
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## 参数
|
|
11
|
+
|
|
12
|
+
| 参数 | 必填 | 说明 |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `--id <pageId>` | 是 | React 自定义页面 ID |
|
|
15
|
+
| `--remark <text>` | 否 | 发布备注 |
|
|
16
|
+
|
|
17
|
+
## 执行步骤
|
|
18
|
+
|
|
19
|
+
1. 先使用 `page react-detail` 检查 `status` 和页面版本
|
|
20
|
+
2. `status` 为 `FORMAL` 时表示当前内容已经发布,跳过发布,继续查看已发布页面或后续流程
|
|
21
|
+
3. `status` 不是 `FORMAL` 时,使用 `--dry-run` 确认目标页面和发布备注
|
|
22
|
+
4. 用户明确确认后,使用相同参数加 `--yes` 执行发布
|
|
23
|
+
5. 命令发布后回读确认 `data.after.status` 为 `FORMAL`;`data.runtimePageUrl` 查看最近一次已发布内容,`data.pageUrl` 查看最新保存内容(包含尚未发布的修改),`data.editPageUrl` 用于打开页面编辑器。
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# page react-update
|
|
2
|
+
|
|
3
|
+
以完整页面文件 JSON 更新 React 自定义页面,并创建新的保存版本。未包含的文件会被删除。
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
rabetbase page react-update --id <pageId> --page-content '<json>' --dry-run --format compress
|
|
7
|
+
rabetbase page react-update --id <pageId> --page-content '<json>' --appcode <appCode>
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
## 参数
|
|
11
|
+
|
|
12
|
+
| 参数 | 必填 | 说明 |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `--id <pageId>` | 是 | React 自定义页面 ID |
|
|
15
|
+
| `--page-content <json>` | 是 | 完整页面文件 JSON;对象的键为相对路径,值为文件内容 |
|
|
16
|
+
| `--appcode <code>` | 否 | 目标应用 code,省略时根据 `pageId` 查询 |
|
|
17
|
+
|
|
18
|
+
## 执行步骤
|
|
19
|
+
|
|
20
|
+
1. 先使用 `page react-detail` 读取 `data.codeContent` 中的完整页面文件。
|
|
21
|
+
2. 在本地完成所有文件新增、修改或删除后,使用 `--dry-run` 确认完整页面文件。
|
|
22
|
+
3. 确认后使用相同参数执行更新。
|
|
23
|
+
4. 从结构化输出的 `data.after.version` 确认已保存新版本。
|
|
24
|
+
5. 输出的 `pageUrl` 用于查看最新保存内容,包含尚未发布的修改;`editPageUrl` 用于打开页面编辑器,继续修改页面。
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# page relation binding
|
|
2
|
+
|
|
3
|
+
页面关系绑定用于校准 Smart List Page 中选择类字段的 options 来源。执行前先读取数据集关系事实,再审计页面 schema,最后通过本地 schema 工作流做可回滚修改。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
rabetbase dataset relations --appcode <appCode> --datasetcode <datasetCode> --format compress
|
|
9
|
+
rabetbase page relation-audit --appcode <appCode> --datasetcode <datasetCode> --format compress
|
|
10
|
+
rabetbase page pull --appcode <appCode> --id <pageId> --format json
|
|
11
|
+
rabetbase page push --appcode <appCode> --id <pageId> --dry-run --format compress
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
`dataset relations` 是关系事实来源;底层默认读取 D0/DO V2,不需要在主流程显式传版本参数。不要靠页面 schema 反推出关系。展示字段以 `dataset relations` 的 `to.labelField` 为准,关系基数以 `relation.cardinality` 为准。`page relation-audit` 只读输出差异,不修改平台。修改页面前先 `page pull` 建立本地基线,提交前必须先跑 `page push --dry-run`。
|
|
15
|
+
|
|
16
|
+
Agent 不得假设存在自动修复命令,也不得把 audit 结果直接转成平台写入。修复必须走本地 schema 工作流:先 `page pull`,只改审计命中的本地字段节点和对应数据源,再用 `page push --dry-run` 复核差异,最后由明确授权的 `page push` 提交。
|
|
17
|
+
|
|
18
|
+
## 审计到处理边界
|
|
19
|
+
|
|
20
|
+
- `relation_options` 通常表示页面绑定与数据集关系匹配,不应作为错误处理。
|
|
21
|
+
- `custom_options` 表示字段或页面当前使用自定义选项,不一定是错误;先确认业务是否期望数据集关联选项。
|
|
22
|
+
- `wrong_label` / `wrong_code` / `wrong_state` / `missing` 只说明审计发现差异,不能直接承诺 `page sync` 自动修复。
|
|
23
|
+
- 若 `dataset relations` 关系事实本身不符合预期,先修正数据集关系并重新审计;若关系事实正确但页面绑定仍不一致,再按本地 schema 工作流或页面同步流程处理。
|
|
24
|
+
- `page sync` 是已有页面同步动作,不是页面 schema 审计结果的通用自动修复器。
|
|
25
|
+
|
|
26
|
+
## relation options 绑定规则
|
|
27
|
+
|
|
28
|
+
`optionsType=relation` 来自平台数据集关系时,使用 Page 层 `dataSource.list`,字段层绑定同名 state:
|
|
29
|
+
|
|
30
|
+
- `dataSource.id` 应稳定指向当前字段的 options 数据源,例如 `<field>_options` 或已有页面中的等价 id。
|
|
31
|
+
- 请求目标使用 `/api/<appCode>/<toDatasetCode>/getSelectOptions`。
|
|
32
|
+
- 值字段写在 `options.params.code`,数组参数形态写在 `paramsArr[name=code].value`。
|
|
33
|
+
- 展示字段写在 `options.params.label`,数组参数形态写在 `paramsArr[name=label].value`。
|
|
34
|
+
- 字段组件通过 `this.state.<dataSource.id>` 读取 options。
|
|
35
|
+
|
|
36
|
+
`optionsRequest` 只用于外部 options 源。平台数据集的 `getSelectOptions` 不放在字段级 `optionsRequest`,避免页面配置绑定到具体域名或环境。
|
|
37
|
+
|
|
38
|
+
## custom options
|
|
39
|
+
|
|
40
|
+
字段自身已有 `options` / `selectItems` 枚举数组时,服务端字段扩展为 `optionsType=custom`,审计结果可以是 `custom_options`。这类字段通常来自数据集枚举,不需要强制改成关系数据源。
|
|
41
|
+
|
|
42
|
+
## From 字段元数据
|
|
43
|
+
|
|
44
|
+
`page relation-audit` 会输出 `fromField`,包含 From 数据集字段的 `name`、`doType` / `type`、`optionsType` 和 `hasOptions`。其中 `fromField.optionsType` 与服务端字段扩展 `optionsType` 对齐:
|
|
45
|
+
|
|
46
|
+
- `relation_options`:页面字段使用 `getSelectOptions` / `JSExpression`,绑定匹配关系事实;对应服务端 `optionsType=relation`。
|
|
47
|
+
- `custom_options`:页面字段使用枚举数组,且 From 字段自身存在 `options` / `selectItems`;对应服务端 `optionsType=custom`。
|
|
48
|
+
|
|
49
|
+
`fromField.doType` / `fromField.type` 只作为审计上下文输出,不通过本地硬编码类型白名单拦截有效关系绑定。不同业务可能使用字符串、数字或其他类型保存关联值,判断应以关系事实和页面绑定为准。
|
|
50
|
+
|
|
51
|
+
## 结构化修改边界
|
|
52
|
+
|
|
53
|
+
只修改审计命中的字段节点和对应 `dataSource.id`。不要做全局字符串替换,也不要因为某个 label 字段变化就同时改其他数据源。
|
|
54
|
+
|
|
55
|
+
检查顺序:
|
|
56
|
+
|
|
57
|
+
1. 以 `page relation-audit` 的 `field`、`pageId`、`currentBinding.dataSourceId` 定位 schema。
|
|
58
|
+
2. 校准 `options.params.code` / `paramsArr[name=code].value`。
|
|
59
|
+
3. 校准 `options.params.label` / `paramsArr[name=label].value`。
|
|
60
|
+
4. 确认字段层 state key 与 `dataSource.id` 一致。
|
|
61
|
+
5. 运行 `page push --dry-run`,确认请求体只包含预期页面。
|
|
62
|
+
|
|
63
|
+
## 输出判断
|
|
64
|
+
|
|
65
|
+
- `relation_options`:字段使用 `getSelectOptions` / `JSExpression`,且绑定与数据集关系一致。
|
|
66
|
+
- `wrong_label`:展示字段不一致,优先修正 label。
|
|
67
|
+
- `wrong_code`:值字段不一致,需要确认关系方向后再修正。
|
|
68
|
+
- `wrong_state`:字段绑定的 state key 与数据源 id 不一致。
|
|
69
|
+
- `missing`:关系字段没有找到可识别绑定。
|
|
70
|
+
- `ambiguous_binding`:字段候选、目标数据集 URI/ID 和 state key 无法收敛到唯一数据源;查看 `currentBinding.candidates` 中的数据源 ID、URI、code 和 label,人工确认后再修改页面,不能默认取第一项。
|
|
71
|
+
- `custom_options`:字段使用枚举数组,且 From 字段自身存在 `optionsType=custom`。
|
|
72
|
+
- `pageStatus=main_sub_missing`:`relation.bizRelationType=main_sub` 命中 CREATE / UPDATE / DETAIL 页面,且 `LrSmartCreate` / `LrSmartDetail` / `LrSmartUpdate` 中未识别到对象类型的 `props.sub_info`;`status` 仍保留原有字段绑定检查结果。
|