@synopackageland/cli 0.3.10 → 0.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/LICENSE +21 -0
- package/README.md +57 -9
- package/dist/bin.js +1 -2
- package/dist/build-spk/generator.d.ts +0 -3
- package/dist/build-spk/generator.js +138 -287
- package/dist/build-spk/native-lifecycle.js +0 -3
- package/dist/build-spk/native-payload.js +0 -1
- package/dist/build-spk/notices.d.ts +5 -0
- package/dist/build-spk/notices.js +60 -0
- package/dist/cli.js +178 -151
- package/dist/compose/analyze.d.ts +1 -2
- package/dist/compose/analyze.js +5 -48
- package/dist/contract/unsupported-types.d.ts +10 -0
- package/dist/contract/unsupported-types.js +49 -0
- package/dist/contract/validate.js +25 -2
- package/dist/contract/web-launch.js +0 -2
- package/dist/deploy/deploy.d.ts +1 -4
- package/dist/deploy/deploy.js +45 -156
- package/dist/deploy/homes-values.js +1 -1
- package/dist/deploy/plan.d.ts +18 -0
- package/dist/deploy/plan.js +54 -0
- package/dist/deploy/spk-version.d.ts +2 -14
- package/dist/deploy/spk-version.js +25 -111
- package/dist/dev.d.ts +1 -3
- package/dist/dev.js +14 -28
- package/dist/error-registry.js +830 -862
- package/dist/host/dsm-client.js +12 -272
- package/dist/host/dsm-port-profile.d.ts +0 -1
- package/dist/host/dsm-port-profile.js +0 -2
- package/dist/host/types.d.ts +1 -83
- package/dist/index.d.ts +0 -9
- package/dist/index.js +0 -6
- package/dist/info.d.ts +0 -1
- package/dist/info.js +3 -10
- package/dist/init.d.ts +15 -1
- package/dist/init.js +128 -12
- package/dist/log.js +2 -3
- package/dist/native/validate.js +0 -1
- package/dist/standalone/binary.d.ts +9 -0
- package/dist/standalone/binary.js +67 -0
- package/dist/standalone/build.d.ts +25 -0
- package/dist/standalone/build.js +110 -0
- package/dist/standalone/daemon.d.ts +23 -0
- package/dist/standalone/daemon.js +114 -0
- package/dist/standalone/dsm-window.d.ts +26 -0
- package/dist/standalone/dsm-window.js +291 -0
- package/dist/standalone/helper-inventory.d.ts +16 -0
- package/dist/standalone/helper-inventory.js +2 -0
- package/dist/standalone/helper.d.ts +21 -0
- package/dist/standalone/helper.js +105 -0
- package/dist/standalone/host-adapter.d.ts +5 -0
- package/dist/standalone/host-adapter.js +148 -0
- package/dist/standalone/host-platform.d.ts +13 -0
- package/dist/standalone/host-platform.js +42 -0
- package/dist/standalone/host-types.d.ts +49 -0
- package/dist/standalone/host-types.js +1 -0
- package/dist/standalone/i18n.d.ts +28 -0
- package/dist/standalone/i18n.js +161 -0
- package/dist/standalone/inspect-helper.d.ts +6 -0
- package/dist/standalone/inspect-helper.js +88 -0
- package/dist/standalone/inspect-spk.d.ts +23 -0
- package/dist/standalone/inspect-spk.js +209 -0
- package/dist/standalone/lifecycle-helper.d.ts +2 -0
- package/dist/standalone/lifecycle-helper.js +12 -0
- package/dist/standalone/lifecycle.d.ts +3 -0
- package/dist/standalone/lifecycle.js +53 -0
- package/dist/standalone/manifest.d.ts +73 -0
- package/dist/standalone/manifest.js +279 -0
- package/dist/standalone/reopen-events.d.ts +2 -0
- package/dist/standalone/reopen-events.js +28 -0
- package/dist/standalone/root-messages.d.ts +7 -0
- package/dist/standalone/root-messages.js +259 -0
- package/dist/standalone/root-ops.d.ts +42 -0
- package/dist/standalone/root-ops.js +101 -0
- package/dist/standalone/root-window.d.ts +36 -0
- package/dist/standalone/root-window.js +302 -0
- package/dist/standalone/spk.d.ts +23 -0
- package/dist/standalone/spk.js +192 -0
- package/dist/template-paths.d.ts +2 -0
- package/dist/template-paths.js +9 -0
- package/dist/templates/_daemon/fixture_linux_test.go +15 -0
- package/dist/templates/_daemon/fixture_other_test.go +7 -0
- package/dist/templates/_daemon/go.mod +3 -0
- package/dist/templates/_daemon/main.go +608 -0
- package/dist/templates/_daemon/main_test.go +242 -0
- package/dist/templates/_daemon/process_linux.go +55 -0
- package/dist/templates/_daemon/process_linux_test.go +161 -0
- package/dist/templates/_daemon/process_other.go +14 -0
- package/dist/templates/_daemon/testdata/child.go +41 -0
- package/dist/templates/_shared/GO-LICENSE +27 -0
- package/dist/templates/_shared/GO-PATENTS +22 -0
- package/dist/templates/_shared/LICENSES/TEMPLATE.txt +21 -0
- package/dist/templates/_shared/notice-overrides/index.json +14 -0
- package/dist/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +21 -0
- package/dist/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +21 -0
- package/dist/templates/_shared/third-party-notices.mjs +51 -0
- package/dist/templates/binary/synology-app.yaml +7 -0
- package/dist/templates/hello-files/compose.yaml +0 -1
- package/dist/templates/hello-web/compose.yaml +13 -10
- package/dist/templates/hello-web/html/app.js +1 -23
- package/dist/templates/hello-web/html/index.html +1 -3
- package/dist/templates/hello-web-page/compose.yaml +13 -10
- package/dist/templates/hello-web-page/html/app.js +1 -23
- package/dist/templates/hello-web-page/html/index.html +1 -3
- package/dist/templates/native-go/README.md +324 -0
- package/dist/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +59 -0
- package/dist/templates/native-go/backend/cmd/app/main.go +49 -0
- package/dist/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +46 -0
- package/dist/templates/native-go/backend/cmd/helper/main.go +38 -0
- package/dist/templates/native-go/backend/go.mod +7 -0
- package/dist/templates/native-go/backend/go.sum +4 -0
- package/dist/templates/native-go/backend/internal/api/binary.go +154 -0
- package/dist/templates/native-go/backend/internal/api/binary_test.go +165 -0
- package/dist/templates/native-go/backend/internal/api/errors.go +33 -0
- package/dist/templates/native-go/backend/internal/api/registry.go +104 -0
- package/dist/templates/native-go/backend/internal/api/registry_test.go +329 -0
- package/dist/templates/native-go/backend/internal/api/server.go +159 -0
- package/dist/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +121 -0
- package/dist/templates/native-go/backend/internal/app/nas_refusal_test.go +46 -0
- package/dist/templates/native-go/backend/internal/app/root_none.go +9 -0
- package/dist/templates/native-go/backend/internal/app/routes.go +138 -0
- package/dist/templates/native-go/backend/internal/app/routes_test.go +172 -0
- package/dist/templates/native-go/backend/internal/dsm/auth.go +118 -0
- package/dist/templates/native-go/backend/internal/dsm/auth_test.go +139 -0
- package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux.go +335 -0
- package/dist/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +41 -0
- package/dist/templates/native-go/backend/internal/dsmprobe/protocol.go +179 -0
- package/dist/templates/native-go/backend/internal/dsmprobe/protocol_test.go +29 -0
- package/dist/templates/native-go/backend/internal/helper/cohort.go +393 -0
- package/dist/templates/native-go/backend/internal/helper/cohort_publication.go +18 -0
- package/dist/templates/native-go/backend/internal/helper/cohort_publication_test.go +105 -0
- package/dist/templates/native-go/backend/internal/helper/cohort_test.go +372 -0
- package/dist/templates/native-go/backend/internal/helper/control.go +424 -0
- package/dist/templates/native-go/backend/internal/helper/control_test.go +250 -0
- package/dist/templates/native-go/backend/internal/helper/data_contract.go +242 -0
- package/dist/templates/native-go/backend/internal/helper/data_contract_test.go +51 -0
- package/dist/templates/native-go/backend/internal/helper/data_decode.go +184 -0
- package/dist/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +30 -0
- package/dist/templates/native-go/backend/internal/helper/data_protocol.go +416 -0
- package/dist/templates/native-go/backend/internal/helper/data_protocol_test.go +449 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux.go +139 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +121 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +95 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +56 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +144 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +89 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_home_linux.go +107 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +82 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +151 -0
- package/dist/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +66 -0
- package/dist/templates/native-go/backend/internal/helper/grant_authority.go +516 -0
- package/dist/templates/native-go/backend/internal/helper/grant_authority_contract.go +88 -0
- package/dist/templates/native-go/backend/internal/helper/grant_authority_test.go +510 -0
- package/dist/templates/native-go/backend/internal/helper/grant_cohort.go +389 -0
- package/dist/templates/native-go/backend/internal/helper/grant_cohort_test.go +239 -0
- package/dist/templates/native-go/backend/internal/helper/grant_delivery.go +49 -0
- package/dist/templates/native-go/backend/internal/helper/grant_delivery_methods.go +273 -0
- package/dist/templates/native-go/backend/internal/helper/grant_delivery_test.go +322 -0
- package/dist/templates/native-go/backend/internal/helper/grant_operation_contract.go +47 -0
- package/dist/templates/native-go/backend/internal/helper/grant_readonly_test.go +180 -0
- package/dist/templates/native-go/backend/internal/helper/grant_repository_linux.go +415 -0
- package/dist/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +468 -0
- package/dist/templates/native-go/backend/internal/helper/grant_rpc.go +147 -0
- package/dist/templates/native-go/backend/internal/helper/grant_rpc_test.go +51 -0
- package/dist/templates/native-go/backend/internal/helper/grant_snapshot.go +75 -0
- package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +134 -0
- package/dist/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +254 -0
- package/dist/templates/native-go/backend/internal/helper/lease.go +112 -0
- package/dist/templates/native-go/backend/internal/helper/lease_linux.go +44 -0
- package/dist/templates/native-go/backend/internal/helper/lease_other.go +8 -0
- package/dist/templates/native-go/backend/internal/helper/lifecycle.go +234 -0
- package/dist/templates/native-go/backend/internal/helper/lifecycle_test.go +473 -0
- package/dist/templates/native-go/backend/internal/helper/managed_pilot.go +284 -0
- package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +74 -0
- package/dist/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +40 -0
- package/dist/templates/native-go/backend/internal/helper/managed_pilot_test.go +210 -0
- package/dist/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +97 -0
- package/dist/templates/native-go/backend/internal/helper/native_discovery.go +79 -0
- package/dist/templates/native-go/backend/internal/helper/native_identity.go +89 -0
- package/dist/templates/native-go/backend/internal/helper/native_provider.go +159 -0
- package/dist/templates/native-go/backend/internal/helper/native_provider_test.go +421 -0
- package/dist/templates/native-go/backend/internal/helper/observation.go +204 -0
- package/dist/templates/native-go/backend/internal/helper/observation_health_test.go +115 -0
- package/dist/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +117 -0
- package/dist/templates/native-go/backend/internal/helper/observation_test.go +196 -0
- package/dist/templates/native-go/backend/internal/helper/observer_diagnostic.go +109 -0
- package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +76 -0
- package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +124 -0
- package/dist/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +98 -0
- package/dist/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +193 -0
- package/dist/templates/native-go/backend/internal/helper/operation_credentials_linux.go +56 -0
- package/dist/templates/native-go/backend/internal/helper/operation_linux.go +480 -0
- package/dist/templates/native-go/backend/internal/helper/operation_linux_test.go +528 -0
- package/dist/templates/native-go/backend/internal/helper/peer_linux.go +44 -0
- package/dist/templates/native-go/backend/internal/helper/peer_other.go +7 -0
- package/dist/templates/native-go/backend/internal/helper/process_linux.go +177 -0
- package/dist/templates/native-go/backend/internal/helper/process_other.go +5 -0
- package/dist/templates/native-go/backend/internal/helper/publication_test.go +178 -0
- package/dist/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +156 -0
- package/dist/templates/native-go/backend/internal/helper/read_transfer.go +40 -0
- package/dist/templates/native-go/backend/internal/helper/read_transfer_linux.go +109 -0
- package/dist/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +118 -0
- package/dist/templates/native-go/backend/internal/helper/read_transfer_test.go +177 -0
- package/dist/templates/native-go/backend/internal/helper/readonly.go +105 -0
- package/dist/templates/native-go/backend/internal/helper/readonly_admission.go +85 -0
- package/dist/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +253 -0
- package/dist/templates/native-go/backend/internal/helper/readonly_linux_test.go +378 -0
- package/dist/templates/native-go/backend/internal/helper/readonly_mount_linux.go +65 -0
- package/dist/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +113 -0
- package/dist/templates/native-go/backend/internal/helper/readonly_operations_linux.go +168 -0
- package/dist/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +241 -0
- package/dist/templates/native-go/backend/internal/helper/readonly_test.go +40 -0
- package/dist/templates/native-go/backend/internal/helper/relaxed_identity.go +252 -0
- package/dist/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +105 -0
- package/dist/templates/native-go/backend/internal/helper/relaxed_identity_test.go +406 -0
- package/dist/templates/native-go/backend/internal/helper/relaxed_invalidation.go +200 -0
- package/dist/templates/native-go/backend/internal/helper/repair.go +132 -0
- package/dist/templates/native-go/backend/internal/helper/repair_test.go +271 -0
- package/dist/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +303 -0
- package/dist/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +184 -0
- package/dist/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +231 -0
- package/dist/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +18 -0
- package/dist/templates/native-go/backend/internal/helper/server_linux.go +124 -0
- package/dist/templates/native-go/backend/internal/helper/status.go +334 -0
- package/dist/templates/native-go/backend/internal/helper/status_test.go +288 -0
- package/dist/templates/native-go/backend/internal/helper/supervision.go +107 -0
- package/dist/templates/native-go/backend/internal/helper/supervision_test.go +124 -0
- package/dist/templates/native-go/backend/internal/helper/supervisor_frame.go +76 -0
- package/dist/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +69 -0
- package/dist/templates/native-go/backend/internal/helper/supervisor_frame_test.go +107 -0
- package/dist/templates/native-go/backend/internal/helper/supervisor_linux.go +363 -0
- package/dist/templates/native-go/backend/internal/helper/supervisor_linux_test.go +913 -0
- package/dist/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +74 -0
- package/dist/templates/native-go/backend/internal/helper/supervisor_socket_test.go +45 -0
- package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +23 -0
- package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +67 -0
- package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +52 -0
- package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +20 -0
- package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +20 -0
- package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +20 -0
- package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +22 -0
- package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +22 -0
- package/dist/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +22 -0
- package/dist/templates/native-go/backend/internal/helper/unit_connection.go +75 -0
- package/dist/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +135 -0
- package/dist/templates/native-go/backend/internal/helper/unit_connection_test.go +133 -0
- package/dist/templates/native-go/backend/internal/helper/unit_frame_test.go +32 -0
- package/dist/templates/native-go/backend/internal/helper/unit_linux.go +364 -0
- package/dist/templates/native-go/backend/internal/helper/unit_linux_test.go +46 -0
- package/dist/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +217 -0
- package/dist/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +178 -0
- package/dist/templates/native-go/backend/internal/helper/unit_query_linux.go +111 -0
- package/dist/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +372 -0
- package/dist/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +232 -0
- package/dist/templates/native-go/backend/internal/helper/write.go +77 -0
- package/dist/templates/native-go/backend/internal/helper/write_admission.go +260 -0
- package/dist/templates/native-go/backend/internal/helper/write_admission_test.go +135 -0
- package/dist/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +218 -0
- package/dist/templates/native-go/backend/internal/helper/write_files_linux.go +202 -0
- package/dist/templates/native-go/backend/internal/helper/write_files_linux_test.go +199 -0
- package/dist/templates/native-go/backend/internal/helper/write_intent_linux.go +116 -0
- package/dist/templates/native-go/backend/internal/helper/write_intent_linux_test.go +74 -0
- package/dist/templates/native-go/backend/internal/helper/write_operation_linux.go +245 -0
- package/dist/templates/native-go/backend/internal/helper/write_test.go +53 -0
- package/dist/templates/native-go/dsm-package.yaml +58 -0
- package/dist/templates/native-go/gitignore +1 -0
- package/dist/templates/native-go/i18n/glossary.json +662 -0
- package/dist/templates/native-go/i18n/messages/de.json +28 -0
- package/dist/templates/native-go/i18n/messages/en.json +28 -0
- package/dist/templates/native-go/i18n/messages/es.json +28 -0
- package/dist/templates/native-go/i18n/messages/fr.json +28 -0
- package/dist/templates/native-go/i18n/messages/it.json +28 -0
- package/dist/templates/native-go/i18n/messages/ja.json +28 -0
- package/dist/templates/native-go/i18n/messages/ko.json +28 -0
- package/dist/templates/native-go/i18n/messages/zh-CN.json +28 -0
- package/dist/templates/native-go/i18n/messages/zh-TW.json +28 -0
- package/dist/templates/native-go/ui/app.css +35 -0
- package/dist/templates/native-go/ui/app.js +101 -0
- package/dist/templates/native-go-better-auth/backend/internal/app/identity.go +208 -0
- package/dist/templates/native-go-better-auth/backend/internal/app/identity_test.go +113 -0
- package/dist/templates/native-go-better-auth/node/app.mjs +72 -0
- package/dist/templates/native-go-better-auth/node/build.mjs +4 -0
- package/dist/templates/native-go-better-auth/node/package-lock.json +862 -0
- package/dist/templates/native-go-better-auth/node/package.json +1 -0
- package/dist/templates/native-go-better-auth/node/test/auth.test.mjs +31 -0
- package/dist/templates/native-go-integration/backend/internal/app/identity_none.go +6 -0
- package/dist/templates/native-go-integration/backend/internal/app/personal.go +203 -0
- package/dist/templates/native-go-integration/backend/internal/app/personal_test.go +119 -0
- package/dist/templates/native-go-root/backend/internal/app/root.go +107 -0
- package/dist/templates/native-go-root/backend/internal/app/root_test.go +124 -0
- package/dist/templates/native-go-root/root/whoami.sh +6 -0
- package/dist/templates/native-go-vue/README.md +224 -0
- package/dist/templates/native-go-vue/frontend/DESIGN.md +78 -0
- package/dist/templates/native-go-vue/frontend/package-lock.json +2410 -0
- package/dist/templates/native-go-vue/frontend/package.json +6 -0
- package/dist/templates/native-go-vue/frontend/src/App.vue +159 -0
- package/dist/templates/native-go-vue/frontend/src/context.ts +56 -0
- package/dist/templates/native-go-vue/frontend/src/main.ts +29 -0
- package/dist/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +106 -0
- package/dist/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +20 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/de.json +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/en.json +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/es.json +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/fr.json +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/it.json +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/ja.json +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/ko.json +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +74 -0
- package/dist/templates/native-go-vue/frontend/src/nas/i18n.ts +38 -0
- package/dist/templates/native-go-vue/frontend/src/nas/mock-provider.ts +119 -0
- package/dist/templates/native-go-vue/frontend/src/nas/provider.ts +59 -0
- package/dist/templates/native-go-vue/frontend/src/nas/use-request.ts +27 -0
- package/dist/templates/native-go-vue/frontend/src/style.css +31 -0
- package/dist/templates/native-go-vue/frontend/test/apps.test.ts +190 -0
- package/dist/templates/native-go-vue/frontend/test/nas-provider.test.ts +81 -0
- package/dist/templates/native-go-vue/frontend/test/nas-request.test.ts +21 -0
- package/dist/templates/native-go-vue/frontend/test/nas-ui.test.ts +261 -0
- package/dist/templates/native-go-vue/frontend/tsconfig.json +1 -0
- package/dist/templates/native-go-vue/frontend/vite.config.ts +10 -0
- package/dist/templates/native-go-vue/gitignore +2 -0
- package/dist/types.d.ts +1 -1
- package/dist/validate.js +11 -7
- package/package.json +5 -8
- package/schema/synology-app.schema.json +36 -37
- package/skills/SKILL.md +4 -48
- package/skills/reference/create.md +11 -83
- package/skills/reference/deploy.md +7 -78
- package/skills/reference/diagnose.md +4 -101
- package/skills/reference/files.md +5 -41
- package/skills/reference/identity.md +3 -29
- package/skills/reference/wrap.md +0 -2
- package/templates/_daemon/fixture_linux_test.go +15 -0
- package/templates/_daemon/fixture_other_test.go +7 -0
- package/templates/_daemon/go.mod +3 -0
- package/templates/_daemon/main.go +608 -0
- package/templates/_daemon/main_test.go +242 -0
- package/templates/_daemon/process_linux.go +55 -0
- package/templates/_daemon/process_linux_test.go +161 -0
- package/templates/_daemon/process_other.go +14 -0
- package/templates/_daemon/testdata/child.go +41 -0
- package/templates/_shared/GO-LICENSE +27 -0
- package/templates/_shared/GO-PATENTS +22 -0
- package/templates/_shared/LICENSES/TEMPLATE.txt +21 -0
- package/templates/_shared/notice-overrides/index.json +14 -0
- package/templates/_shared/notice-overrides/utils-0.4.2-LICENSE +21 -0
- package/templates/_shared/notice-overrides/utils-0.5.0-LICENSE +21 -0
- package/templates/_shared/third-party-notices.mjs +51 -0
- package/templates/binary/synology-app.yaml +7 -0
- package/templates/hello-files/compose.yaml +0 -1
- package/templates/hello-web/compose.yaml +13 -10
- package/templates/hello-web/html/app.js +1 -23
- package/templates/hello-web/html/index.html +1 -3
- package/templates/hello-web-page/compose.yaml +13 -10
- package/templates/hello-web-page/html/app.js +1 -23
- package/templates/hello-web-page/html/index.html +1 -3
- package/templates/native-go/README.md +324 -0
- package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +59 -0
- package/templates/native-go/backend/cmd/app/main.go +49 -0
- package/templates/native-go/backend/cmd/dsm-readonly-probe/main_linux.go +46 -0
- package/templates/native-go/backend/cmd/helper/main.go +38 -0
- package/templates/native-go/backend/go.mod +7 -0
- package/templates/native-go/backend/go.sum +4 -0
- package/templates/native-go/backend/internal/api/binary.go +154 -0
- package/templates/native-go/backend/internal/api/binary_test.go +165 -0
- package/templates/native-go/backend/internal/api/errors.go +33 -0
- package/templates/native-go/backend/internal/api/registry.go +104 -0
- package/templates/native-go/backend/internal/api/registry_test.go +329 -0
- package/templates/native-go/backend/internal/api/server.go +159 -0
- package/templates/native-go/backend/internal/app/nas_cgi_artifact_test.go +121 -0
- package/templates/native-go/backend/internal/app/nas_refusal_test.go +46 -0
- package/templates/native-go/backend/internal/app/root_none.go +9 -0
- package/templates/native-go/backend/internal/app/routes.go +138 -0
- package/templates/native-go/backend/internal/app/routes_test.go +172 -0
- package/templates/native-go/backend/internal/dsm/auth.go +118 -0
- package/templates/native-go/backend/internal/dsm/auth_test.go +139 -0
- package/templates/native-go/backend/internal/dsmprobe/collector_linux.go +335 -0
- package/templates/native-go/backend/internal/dsmprobe/collector_linux_test.go +41 -0
- package/templates/native-go/backend/internal/dsmprobe/protocol.go +179 -0
- package/templates/native-go/backend/internal/dsmprobe/protocol_test.go +29 -0
- package/templates/native-go/backend/internal/helper/cohort.go +393 -0
- package/templates/native-go/backend/internal/helper/cohort_publication.go +18 -0
- package/templates/native-go/backend/internal/helper/cohort_publication_test.go +105 -0
- package/templates/native-go/backend/internal/helper/cohort_test.go +372 -0
- package/templates/native-go/backend/internal/helper/control.go +424 -0
- package/templates/native-go/backend/internal/helper/control_test.go +250 -0
- package/templates/native-go/backend/internal/helper/data_contract.go +242 -0
- package/templates/native-go/backend/internal/helper/data_contract_test.go +51 -0
- package/templates/native-go/backend/internal/helper/data_decode.go +184 -0
- package/templates/native-go/backend/internal/helper/data_decode_pointer_test.go +30 -0
- package/templates/native-go/backend/internal/helper/data_protocol.go +416 -0
- package/templates/native-go/backend/internal/helper/data_protocol_test.go +449 -0
- package/templates/native-go/backend/internal/helper/dsm_acl_linux.go +139 -0
- package/templates/native-go/backend/internal/helper/dsm_acl_linux_test.go +121 -0
- package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux.go +95 -0
- package/templates/native-go/backend/internal/helper/dsm_acl_syscall_linux_test.go +56 -0
- package/templates/native-go/backend/internal/helper/dsm_bridge_linux.go +144 -0
- package/templates/native-go/backend/internal/helper/dsm_bridge_linux_test.go +89 -0
- package/templates/native-go/backend/internal/helper/dsm_home_linux.go +107 -0
- package/templates/native-go/backend/internal/helper/dsm_home_linux_test.go +82 -0
- package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux.go +151 -0
- package/templates/native-go/backend/internal/helper/dsm_probe_transport_linux_test.go +66 -0
- package/templates/native-go/backend/internal/helper/grant_authority.go +516 -0
- package/templates/native-go/backend/internal/helper/grant_authority_contract.go +88 -0
- package/templates/native-go/backend/internal/helper/grant_authority_test.go +510 -0
- package/templates/native-go/backend/internal/helper/grant_cohort.go +389 -0
- package/templates/native-go/backend/internal/helper/grant_cohort_test.go +239 -0
- package/templates/native-go/backend/internal/helper/grant_delivery.go +49 -0
- package/templates/native-go/backend/internal/helper/grant_delivery_methods.go +273 -0
- package/templates/native-go/backend/internal/helper/grant_delivery_test.go +322 -0
- package/templates/native-go/backend/internal/helper/grant_operation_contract.go +47 -0
- package/templates/native-go/backend/internal/helper/grant_readonly_test.go +180 -0
- package/templates/native-go/backend/internal/helper/grant_repository_linux.go +415 -0
- package/templates/native-go/backend/internal/helper/grant_repository_linux_test.go +468 -0
- package/templates/native-go/backend/internal/helper/grant_rpc.go +147 -0
- package/templates/native-go/backend/internal/helper/grant_rpc_test.go +51 -0
- package/templates/native-go/backend/internal/helper/grant_snapshot.go +75 -0
- package/templates/native-go/backend/internal/helper/grant_supervisor_linux.go +134 -0
- package/templates/native-go/backend/internal/helper/grant_supervisor_linux_test.go +254 -0
- package/templates/native-go/backend/internal/helper/lease.go +112 -0
- package/templates/native-go/backend/internal/helper/lease_linux.go +44 -0
- package/templates/native-go/backend/internal/helper/lease_other.go +8 -0
- package/templates/native-go/backend/internal/helper/lifecycle.go +234 -0
- package/templates/native-go/backend/internal/helper/lifecycle_test.go +473 -0
- package/templates/native-go/backend/internal/helper/managed_pilot.go +284 -0
- package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux.go +74 -0
- package/templates/native-go/backend/internal/helper/managed_pilot_repository_linux_test.go +40 -0
- package/templates/native-go/backend/internal/helper/managed_pilot_test.go +210 -0
- package/templates/native-go/backend/internal/helper/nas_shipped_refusal_linux_test.go +97 -0
- package/templates/native-go/backend/internal/helper/native_discovery.go +79 -0
- package/templates/native-go/backend/internal/helper/native_identity.go +89 -0
- package/templates/native-go/backend/internal/helper/native_provider.go +159 -0
- package/templates/native-go/backend/internal/helper/native_provider_test.go +421 -0
- package/templates/native-go/backend/internal/helper/observation.go +204 -0
- package/templates/native-go/backend/internal/helper/observation_health_test.go +115 -0
- package/templates/native-go/backend/internal/helper/observation_reload_budget_test.go +117 -0
- package/templates/native-go/backend/internal/helper/observation_test.go +196 -0
- package/templates/native-go/backend/internal/helper/observer_diagnostic.go +109 -0
- package/templates/native-go/backend/internal/helper/observer_diagnostic_linux.go +76 -0
- package/templates/native-go/backend/internal/helper/observer_diagnostic_linux_test.go +124 -0
- package/templates/native-go/backend/internal/helper/observer_diagnostic_test.go +98 -0
- package/templates/native-go/backend/internal/helper/operation_bootstrap_linux.go +193 -0
- package/templates/native-go/backend/internal/helper/operation_credentials_linux.go +56 -0
- package/templates/native-go/backend/internal/helper/operation_linux.go +480 -0
- package/templates/native-go/backend/internal/helper/operation_linux_test.go +528 -0
- package/templates/native-go/backend/internal/helper/peer_linux.go +44 -0
- package/templates/native-go/backend/internal/helper/peer_other.go +7 -0
- package/templates/native-go/backend/internal/helper/process_linux.go +177 -0
- package/templates/native-go/backend/internal/helper/process_other.go +5 -0
- package/templates/native-go/backend/internal/helper/publication_test.go +178 -0
- package/templates/native-go/backend/internal/helper/read_stream_cohort_linux_test.go +156 -0
- package/templates/native-go/backend/internal/helper/read_transfer.go +40 -0
- package/templates/native-go/backend/internal/helper/read_transfer_linux.go +109 -0
- package/templates/native-go/backend/internal/helper/read_transfer_linux_test.go +118 -0
- package/templates/native-go/backend/internal/helper/read_transfer_test.go +177 -0
- package/templates/native-go/backend/internal/helper/readonly.go +105 -0
- package/templates/native-go/backend/internal/helper/readonly_admission.go +85 -0
- package/templates/native-go/backend/internal/helper/readonly_cohort_linux_test.go +253 -0
- package/templates/native-go/backend/internal/helper/readonly_linux_test.go +378 -0
- package/templates/native-go/backend/internal/helper/readonly_mount_linux.go +65 -0
- package/templates/native-go/backend/internal/helper/readonly_mount_proxy_linux.go +113 -0
- package/templates/native-go/backend/internal/helper/readonly_operations_linux.go +168 -0
- package/templates/native-go/backend/internal/helper/readonly_resolver_linux.go +241 -0
- package/templates/native-go/backend/internal/helper/readonly_test.go +40 -0
- package/templates/native-go/backend/internal/helper/relaxed_identity.go +252 -0
- package/templates/native-go/backend/internal/helper/relaxed_identity_contract.go +105 -0
- package/templates/native-go/backend/internal/helper/relaxed_identity_test.go +406 -0
- package/templates/native-go/backend/internal/helper/relaxed_invalidation.go +200 -0
- package/templates/native-go/backend/internal/helper/repair.go +132 -0
- package/templates/native-go/backend/internal/helper/repair_test.go +271 -0
- package/templates/native-go/backend/internal/helper/s1r_actor_acl_linux_test.go +303 -0
- package/templates/native-go/backend/internal/helper/s1r_actor_fixture_linux_test.go +184 -0
- package/templates/native-go/backend/internal/helper/s1r_actor_races_linux_test.go +231 -0
- package/templates/native-go/backend/internal/helper/s1r_fixture_contract_linux_test.go +18 -0
- package/templates/native-go/backend/internal/helper/server_linux.go +124 -0
- package/templates/native-go/backend/internal/helper/status.go +334 -0
- package/templates/native-go/backend/internal/helper/status_test.go +288 -0
- package/templates/native-go/backend/internal/helper/supervision.go +107 -0
- package/templates/native-go/backend/internal/helper/supervision_test.go +124 -0
- package/templates/native-go/backend/internal/helper/supervisor_frame.go +76 -0
- package/templates/native-go/backend/internal/helper/supervisor_frame_linux_test.go +69 -0
- package/templates/native-go/backend/internal/helper/supervisor_frame_test.go +107 -0
- package/templates/native-go/backend/internal/helper/supervisor_linux.go +363 -0
- package/templates/native-go/backend/internal/helper/supervisor_linux_test.go +913 -0
- package/templates/native-go/backend/internal/helper/supervisor_socket_eof_test.go +74 -0
- package/templates/native-go/backend/internal/helper/supervisor_socket_test.go +45 -0
- package/templates/native-go/backend/internal/helper/testdata/protocol2/create.json +23 -0
- package/templates/native-go/backend/internal/helper/testdata/protocol2/frames.json +67 -0
- package/templates/native-go/backend/internal/helper/testdata/protocol2/grant-store.json +52 -0
- package/templates/native-go/backend/internal/helper/testdata/protocol2/intent.json +20 -0
- package/templates/native-go/backend/internal/helper/testdata/protocol2/list.json +20 -0
- package/templates/native-go/backend/internal/helper/testdata/protocol2/publish.json +20 -0
- package/templates/native-go/backend/internal/helper/testdata/protocol2/read.json +22 -0
- package/templates/native-go/backend/internal/helper/testdata/protocol2/stat.json +22 -0
- package/templates/native-go/backend/internal/helper/testdata/protocol2/write-stream.json +22 -0
- package/templates/native-go/backend/internal/helper/unit_connection.go +75 -0
- package/templates/native-go/backend/internal/helper/unit_connection_linux_test.go +135 -0
- package/templates/native-go/backend/internal/helper/unit_connection_test.go +133 -0
- package/templates/native-go/backend/internal/helper/unit_frame_test.go +32 -0
- package/templates/native-go/backend/internal/helper/unit_linux.go +364 -0
- package/templates/native-go/backend/internal/helper/unit_linux_test.go +46 -0
- package/templates/native-go/backend/internal/helper/unit_mechanisms_linux_test.go +217 -0
- package/templates/native-go/backend/internal/helper/unit_padding_linux_test.go +178 -0
- package/templates/native-go/backend/internal/helper/unit_query_linux.go +111 -0
- package/templates/native-go/backend/internal/helper/unit_reload_linux_test.go +372 -0
- package/templates/native-go/backend/internal/helper/unit_reload_sequence_linux_test.go +232 -0
- package/templates/native-go/backend/internal/helper/write.go +77 -0
- package/templates/native-go/backend/internal/helper/write_admission.go +260 -0
- package/templates/native-go/backend/internal/helper/write_admission_test.go +135 -0
- package/templates/native-go/backend/internal/helper/write_cohort_linux_test.go +218 -0
- package/templates/native-go/backend/internal/helper/write_files_linux.go +202 -0
- package/templates/native-go/backend/internal/helper/write_files_linux_test.go +199 -0
- package/templates/native-go/backend/internal/helper/write_intent_linux.go +116 -0
- package/templates/native-go/backend/internal/helper/write_intent_linux_test.go +74 -0
- package/templates/native-go/backend/internal/helper/write_operation_linux.go +245 -0
- package/templates/native-go/backend/internal/helper/write_test.go +53 -0
- package/templates/native-go/dsm-package.yaml +58 -0
- package/templates/native-go/gitignore +1 -0
- package/templates/native-go/i18n/glossary.json +662 -0
- package/templates/native-go/i18n/messages/de.json +28 -0
- package/templates/native-go/i18n/messages/en.json +28 -0
- package/templates/native-go/i18n/messages/es.json +28 -0
- package/templates/native-go/i18n/messages/fr.json +28 -0
- package/templates/native-go/i18n/messages/it.json +28 -0
- package/templates/native-go/i18n/messages/ja.json +28 -0
- package/templates/native-go/i18n/messages/ko.json +28 -0
- package/templates/native-go/i18n/messages/zh-CN.json +28 -0
- package/templates/native-go/i18n/messages/zh-TW.json +28 -0
- package/templates/native-go/ui/app.css +35 -0
- package/templates/native-go/ui/app.js +101 -0
- package/templates/native-go-better-auth/backend/internal/app/identity.go +208 -0
- package/templates/native-go-better-auth/backend/internal/app/identity_test.go +113 -0
- package/templates/native-go-better-auth/node/app.mjs +72 -0
- package/templates/native-go-better-auth/node/build.mjs +4 -0
- package/templates/native-go-better-auth/node/package-lock.json +862 -0
- package/templates/native-go-better-auth/node/package.json +1 -0
- package/templates/native-go-better-auth/node/test/auth.test.mjs +31 -0
- package/templates/native-go-integration/backend/internal/app/identity_none.go +6 -0
- package/templates/native-go-integration/backend/internal/app/personal.go +203 -0
- package/templates/native-go-integration/backend/internal/app/personal_test.go +119 -0
- package/templates/native-go-root/backend/internal/app/root.go +107 -0
- package/templates/native-go-root/backend/internal/app/root_test.go +124 -0
- package/templates/native-go-root/root/whoami.sh +6 -0
- package/templates/native-go-vue/README.md +224 -0
- package/templates/native-go-vue/frontend/DESIGN.md +78 -0
- package/templates/native-go-vue/frontend/package-lock.json +2410 -0
- package/templates/native-go-vue/frontend/package.json +6 -0
- package/templates/native-go-vue/frontend/src/App.vue +159 -0
- package/templates/native-go-vue/frontend/src/context.ts +56 -0
- package/templates/native-go-vue/frontend/src/main.ts +29 -0
- package/templates/native-go-vue/frontend/src/nas/NasGrantSettings.vue +74 -0
- package/templates/native-go-vue/frontend/src/nas/NasPathPicker.vue +106 -0
- package/templates/native-go-vue/frontend/src/nas/NasUnavailable.vue +20 -0
- package/templates/native-go-vue/frontend/src/nas/i18n/de.json +74 -0
- package/templates/native-go-vue/frontend/src/nas/i18n/en.json +74 -0
- package/templates/native-go-vue/frontend/src/nas/i18n/es.json +74 -0
- package/templates/native-go-vue/frontend/src/nas/i18n/fr.json +74 -0
- package/templates/native-go-vue/frontend/src/nas/i18n/it.json +74 -0
- package/templates/native-go-vue/frontend/src/nas/i18n/ja.json +74 -0
- package/templates/native-go-vue/frontend/src/nas/i18n/ko.json +74 -0
- package/templates/native-go-vue/frontend/src/nas/i18n/zh-CN.json +74 -0
- package/templates/native-go-vue/frontend/src/nas/i18n/zh-TW.json +74 -0
- package/templates/native-go-vue/frontend/src/nas/i18n.ts +38 -0
- package/templates/native-go-vue/frontend/src/nas/mock-provider.ts +119 -0
- package/templates/native-go-vue/frontend/src/nas/provider.ts +59 -0
- package/templates/native-go-vue/frontend/src/nas/use-request.ts +27 -0
- package/templates/native-go-vue/frontend/src/style.css +31 -0
- package/templates/native-go-vue/frontend/test/apps.test.ts +190 -0
- package/templates/native-go-vue/frontend/test/nas-provider.test.ts +81 -0
- package/templates/native-go-vue/frontend/test/nas-request.test.ts +21 -0
- package/templates/native-go-vue/frontend/test/nas-ui.test.ts +261 -0
- package/templates/native-go-vue/frontend/tsconfig.json +1 -0
- package/templates/native-go-vue/frontend/vite.config.ts +10 -0
- package/templates/native-go-vue/gitignore +2 -0
- package/dist/attestation/app-package.d.ts +0 -86
- package/dist/attestation/app-package.js +0 -206
- package/dist/attestation/install-on-host.d.ts +0 -14
- package/dist/attestation/install-on-host.js +0 -52
- package/dist/attestation/keyring.d.ts +0 -21
- package/dist/attestation/keyring.js +0 -168
- package/dist/attestation/platform-service.d.ts +0 -70
- package/dist/attestation/platform-service.js +0 -250
- package/dist/build-spk/broker-glue.d.ts +0 -16
- package/dist/build-spk/broker-glue.js +0 -40
- package/dist/deploy/catalog-publish.d.ts +0 -3
- package/dist/deploy/catalog-publish.js +0 -7
- package/dist/doctor.d.ts +0 -22
- package/dist/doctor.js +0 -822
- package/dist/error-collector.d.ts +0 -2
- package/dist/error-collector.js +0 -46
- package/dist/host/broker-paths.d.ts +0 -1
- package/dist/host/broker-paths.js +0 -1
- package/dist/host/broker-upgrade-preflight.d.ts +0 -61
- package/dist/host/broker-upgrade-preflight.js +0 -156
- package/dist/host/digests.d.ts +0 -5
- package/dist/host/digests.js +0 -63
- package/dist/host/fake-nas.d.ts +0 -49
- package/dist/host/fake-nas.js +0 -193
- package/dist/mock-broker/bootstrap.d.ts +0 -2
- package/dist/mock-broker/bootstrap.js +0 -8
- package/dist/mock-broker/files.d.ts +0 -60
- package/dist/mock-broker/files.js +0 -408
- package/dist/mock-broker/oidc.d.ts +0 -31
- package/dist/mock-broker/oidc.js +0 -161
- package/dist/mock-broker/path.d.ts +0 -9
- package/dist/mock-broker/path.js +0 -50
- package/dist/mock-broker/server.d.ts +0 -19
- package/dist/mock-broker/server.js +0 -350
- package/dist/publish/build-ledger.d.ts +0 -22
- package/dist/publish/build-ledger.js +0 -26
- package/dist/publish/community-path.d.ts +0 -6
- package/dist/publish/community-path.js +0 -41
- package/dist/publish/curated-release.d.ts +0 -78
- package/dist/publish/curated-release.js +0 -883
- package/dist/publish/file-build-ledger.d.ts +0 -18
- package/dist/publish/file-build-ledger.js +0 -268
- package/dist/publish/github-pr.d.ts +0 -25
- package/dist/publish/github-pr.js +0 -85
- package/dist/publish/github-repo.d.ts +0 -8
- package/dist/publish/github-repo.js +0 -21
- package/dist/publish/platform-service-release.d.ts +0 -60
- package/dist/publish/platform-service-release.js +0 -333
- package/dist/publish/preflight.d.ts +0 -24
- package/dist/publish/preflight.js +0 -138
- package/dist/publish/publish.d.ts +0 -27
- package/dist/publish/publish.js +0 -136
- package/dist/publish/sync-definition.d.ts +0 -4
- package/dist/publish/sync-definition.js +0 -48
- package/dist/release-bin.d.ts +0 -2
- package/dist/release-bin.js +0 -23
- package/dist/templates/hello-web/html/sdk.js +0 -68
- package/dist/templates/hello-web-page/html/sdk.js +0 -68
- package/dist/templates/native/synology-app.yaml +0 -7
- package/dist/test-host.d.ts +0 -15
- package/dist/test-host.js +0 -37
- package/templates/hello-web/html/sdk.js +0 -68
- package/templates/hello-web-page/html/sdk.js +0 -68
- package/templates/native/synology-app.yaml +0 -7
- /package/dist/templates/{native → binary}/native.yaml +0 -0
- /package/templates/{native → binary}/native.yaml +0 -0
package/dist/error-registry.js
CHANGED
|
@@ -1,866 +1,834 @@
|
|
|
1
1
|
export const ERROR_REGISTRY = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
code: "
|
|
459
|
-
description: "
|
|
460
|
-
suggestion: "
|
|
461
|
-
},
|
|
462
|
-
|
|
463
|
-
code: "
|
|
464
|
-
description: "
|
|
465
|
-
suggestion: "
|
|
466
|
-
},
|
|
467
|
-
|
|
468
|
-
code: "
|
|
469
|
-
description: "
|
|
470
|
-
suggestion: "
|
|
471
|
-
},
|
|
472
|
-
|
|
473
|
-
code: "
|
|
474
|
-
description: "
|
|
475
|
-
suggestion: "
|
|
476
|
-
},
|
|
477
|
-
|
|
478
|
-
code: "
|
|
479
|
-
description: "
|
|
480
|
-
suggestion: "
|
|
481
|
-
},
|
|
482
|
-
|
|
483
|
-
code: "
|
|
484
|
-
description: "
|
|
485
|
-
suggestion: "
|
|
486
|
-
},
|
|
487
|
-
|
|
488
|
-
code: "
|
|
489
|
-
description: "
|
|
490
|
-
suggestion: "
|
|
491
|
-
},
|
|
492
|
-
|
|
493
|
-
code: "
|
|
494
|
-
description: "
|
|
495
|
-
suggestion: "
|
|
496
|
-
},
|
|
497
|
-
|
|
498
|
-
code: "
|
|
499
|
-
description: "
|
|
500
|
-
suggestion: "請在
|
|
501
|
-
},
|
|
502
|
-
|
|
503
|
-
code: "
|
|
504
|
-
description: "deploy
|
|
505
|
-
suggestion: "
|
|
506
|
-
},
|
|
507
|
-
|
|
508
|
-
code: "
|
|
509
|
-
description: "
|
|
510
|
-
suggestion: "
|
|
511
|
-
},
|
|
512
|
-
|
|
513
|
-
code: "
|
|
514
|
-
description: "
|
|
515
|
-
suggestion: "
|
|
516
|
-
},
|
|
517
|
-
|
|
518
|
-
code: "
|
|
519
|
-
description: "
|
|
520
|
-
suggestion: "
|
|
521
|
-
},
|
|
522
|
-
|
|
523
|
-
code: "
|
|
524
|
-
description: "
|
|
525
|
-
suggestion: "
|
|
526
|
-
},
|
|
527
|
-
|
|
528
|
-
code: "
|
|
529
|
-
description: "
|
|
530
|
-
suggestion: "
|
|
531
|
-
},
|
|
532
|
-
|
|
533
|
-
code: "
|
|
534
|
-
description: "
|
|
535
|
-
suggestion: "
|
|
536
|
-
},
|
|
537
|
-
|
|
538
|
-
code: "
|
|
539
|
-
description: "
|
|
540
|
-
suggestion: "
|
|
541
|
-
},
|
|
542
|
-
|
|
543
|
-
code: "
|
|
544
|
-
description: "
|
|
545
|
-
suggestion: "
|
|
546
|
-
},
|
|
547
|
-
|
|
548
|
-
code: "
|
|
549
|
-
description: "
|
|
550
|
-
suggestion: "
|
|
551
|
-
},
|
|
552
|
-
|
|
553
|
-
code: "
|
|
554
|
-
description: "
|
|
555
|
-
suggestion: "
|
|
556
|
-
},
|
|
557
|
-
|
|
558
|
-
code: "
|
|
559
|
-
description: "
|
|
560
|
-
suggestion: "
|
|
561
|
-
},
|
|
562
|
-
|
|
563
|
-
code: "
|
|
564
|
-
description: "
|
|
565
|
-
suggestion: "
|
|
566
|
-
},
|
|
567
|
-
|
|
568
|
-
code: "
|
|
569
|
-
description: "
|
|
570
|
-
suggestion: "
|
|
571
|
-
},
|
|
572
|
-
|
|
573
|
-
code: "
|
|
574
|
-
description: "
|
|
575
|
-
suggestion: "
|
|
576
|
-
},
|
|
577
|
-
|
|
578
|
-
code: "
|
|
579
|
-
description: "
|
|
580
|
-
suggestion: "
|
|
581
|
-
},
|
|
582
|
-
|
|
583
|
-
code: "
|
|
584
|
-
description: "
|
|
585
|
-
suggestion: "
|
|
586
|
-
},
|
|
587
|
-
|
|
588
|
-
code: "
|
|
589
|
-
description: "
|
|
590
|
-
suggestion: "
|
|
591
|
-
},
|
|
592
|
-
|
|
593
|
-
code: "
|
|
594
|
-
description: "
|
|
595
|
-
suggestion: "
|
|
596
|
-
},
|
|
597
|
-
|
|
598
|
-
code: "
|
|
599
|
-
description: "
|
|
600
|
-
suggestion: "
|
|
601
|
-
},
|
|
602
|
-
|
|
603
|
-
code: "
|
|
604
|
-
description: "
|
|
605
|
-
suggestion: "
|
|
606
|
-
},
|
|
607
|
-
|
|
608
|
-
code: "
|
|
609
|
-
description: "
|
|
610
|
-
suggestion: "
|
|
611
|
-
},
|
|
612
|
-
|
|
613
|
-
code: "
|
|
614
|
-
description: "
|
|
615
|
-
suggestion: "
|
|
616
|
-
},
|
|
617
|
-
|
|
618
|
-
code: "
|
|
619
|
-
description: "
|
|
620
|
-
suggestion: "
|
|
621
|
-
},
|
|
622
|
-
|
|
623
|
-
code: "
|
|
624
|
-
description: "
|
|
625
|
-
suggestion: "
|
|
626
|
-
},
|
|
627
|
-
|
|
628
|
-
code: "
|
|
629
|
-
description: "
|
|
630
|
-
suggestion: "
|
|
631
|
-
},
|
|
632
|
-
|
|
633
|
-
code: "
|
|
634
|
-
description: "
|
|
635
|
-
suggestion: "
|
|
636
|
-
},
|
|
637
|
-
|
|
638
|
-
code: "
|
|
639
|
-
description: "
|
|
640
|
-
suggestion: "
|
|
641
|
-
},
|
|
642
|
-
|
|
643
|
-
code: "
|
|
644
|
-
description: "
|
|
645
|
-
suggestion: "
|
|
646
|
-
},
|
|
647
|
-
|
|
648
|
-
code: "
|
|
649
|
-
description: "
|
|
650
|
-
suggestion: "
|
|
651
|
-
},
|
|
652
|
-
|
|
653
|
-
code: "
|
|
654
|
-
description: "
|
|
655
|
-
suggestion: "
|
|
656
|
-
},
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
},
|
|
833
|
-
// --- Publish & Preflight ---
|
|
834
|
-
PREFLIGHT_FAILED: {
|
|
835
|
-
code: "PREFLIGHT_FAILED",
|
|
836
|
-
description: "送審公開發布前置檢查未通過。",
|
|
837
|
-
suggestion: "請先修正 preflight 列出的錯誤後再重新送審。",
|
|
838
|
-
},
|
|
839
|
-
COMMUNITY_APPS_ROOT_MISSING: {
|
|
840
|
-
code: "COMMUNITY_APPS_ROOT_MISSING",
|
|
841
|
-
description: "找不到 synopkgland-community-apps 本機副本。",
|
|
842
|
-
suggestion: "請 clone synopkgland-community-apps 並設定 SYNOPKGLAND_COMMUNITY_APPS_ROOT 環境變數。",
|
|
843
|
-
},
|
|
844
|
-
PACKAGE_IDENTITY_MISSING: {
|
|
845
|
-
code: "PACKAGE_IDENTITY_MISSING",
|
|
846
|
-
description: "專案 synology-app.yaml 中缺少 package 欄位。",
|
|
847
|
-
suggestion: "請在 synology-app.yaml 補上 package 宣告。",
|
|
848
|
-
},
|
|
849
|
-
PACKAGE_DIRECTORY_MISMATCH: {
|
|
850
|
-
code: "PACKAGE_DIRECTORY_MISMATCH",
|
|
851
|
-
description: "專案目錄或 Community Apps 子目錄與 package 名稱不一致。",
|
|
852
|
-
suggestion: "請確保專案目錄名稱與 package 宣告一致。",
|
|
853
|
-
},
|
|
854
|
-
PUBLISH_SOURCE_IS_COMMUNITY_APP: {
|
|
855
|
-
code: "PUBLISH_SOURCE_IS_COMMUNITY_APP",
|
|
856
|
-
description: "publish 指令不可在 synopkgland-community-apps/apps 目錄內直接執行。",
|
|
857
|
-
suggestion: "請在您的獨立 App 開發專案目錄中執行 public-release-submit。",
|
|
858
|
-
},
|
|
859
|
-
PUBLISH_PR_FAILED: {
|
|
860
|
-
code: "PUBLISH_PR_FAILED",
|
|
861
|
-
description: "透過 GitHub CLI 建立 Pull Request 失敗。",
|
|
862
|
-
suggestion: "請確認 gh 已登入 (gh auth login) 或已設定 GITHUB_TOKEN。",
|
|
863
|
-
},
|
|
2
|
+
"COMPOSE_ROUTE_UNSUPPORTED": {
|
|
3
|
+
"code": "COMPOSE_ROUTE_UNSUPPORTED",
|
|
4
|
+
"description": "Compose 沒有可用的 DSM resource worker 執行路徑。",
|
|
5
|
+
"suggestion": "使用 prebuilt image 與支援的安裝參數;移除不支援的特權、secret 或 build 設定。"
|
|
6
|
+
},
|
|
7
|
+
"LOCAL_SPK_INSTALL_FAILED": {
|
|
8
|
+
"code": "LOCAL_SPK_INSTALL_FAILED",
|
|
9
|
+
"description": "DSM 本機 SPK 安裝失敗。",
|
|
10
|
+
"suggestion": "查看 DSM Package Center 安裝錯誤,確認套件版本及需求。"
|
|
11
|
+
},
|
|
12
|
+
"CONTRACT_SCHEMA_UNSUPPORTED": {
|
|
13
|
+
"code": "CONTRACT_SCHEMA_UNSUPPORTED",
|
|
14
|
+
"description": "synology-app.yaml 的 schema 版本不受支援。",
|
|
15
|
+
"suggestion": "請將 synology-app.yaml 的 schema 欄位設為 1。"
|
|
16
|
+
},
|
|
17
|
+
"CONTRACT_MISSING_FIELD": {
|
|
18
|
+
"code": "CONTRACT_MISSING_FIELD",
|
|
19
|
+
"description": "synology-app.yaml 缺少必填欄位。",
|
|
20
|
+
"suggestion": "請在 synology-app.yaml 補上缺少的必填欄位(例如 package, version, displayname 等)。"
|
|
21
|
+
},
|
|
22
|
+
"CONTRACT_SCHEMA_INVALID": {
|
|
23
|
+
"code": "CONTRACT_SCHEMA_INVALID",
|
|
24
|
+
"description": "synology-app.yaml 格式與 JSON Schema 規格不符。",
|
|
25
|
+
"suggestion": "請修正 synology-app.yaml 的欄位格式以符合規範。"
|
|
26
|
+
},
|
|
27
|
+
"PACKAGE_IDENTITY_TOO_LONG": {
|
|
28
|
+
"code": "PACKAGE_IDENTITY_TOO_LONG",
|
|
29
|
+
"description": "Package Identity 超過長度上限(正式身分上限 28 字元,最終身分上限 32 字元)。",
|
|
30
|
+
"suggestion": "請縮短 synology-app.yaml 中的 package 名稱(正式身分至多 28 字元,以保留 4 字元供 .dev 開發後綴使用)。"
|
|
31
|
+
},
|
|
32
|
+
"CONTRACT_PACKAGE_TOO_LONG": {
|
|
33
|
+
"code": "CONTRACT_PACKAGE_TOO_LONG",
|
|
34
|
+
"description": "Package Identity 超過 DSM 上限 32 字元。",
|
|
35
|
+
"suggestion": "請縮短 synology-app.yaml 中的 package 名稱至 32 字元以內。"
|
|
36
|
+
},
|
|
37
|
+
"CONTRACT_ADMINPORT_INVALID": {
|
|
38
|
+
"code": "CONTRACT_ADMINPORT_INVALID",
|
|
39
|
+
"description": "adminport 必須是整數。",
|
|
40
|
+
"suggestion": "請在 synology-app.yaml 提供與 Compose published port 對應的整數 adminport。"
|
|
41
|
+
},
|
|
42
|
+
"CONTRACT_ADMINPORT_UNMAPPED": {
|
|
43
|
+
"code": "CONTRACT_ADMINPORT_UNMAPPED",
|
|
44
|
+
"description": "adminport 未在 Compose ports 宣告中對應到容器 port。",
|
|
45
|
+
"suggestion": "請在 compose.yaml 的 ports 區塊宣告與 adminport 對應的連接埠映射(例如 \"8080:80\")。"
|
|
46
|
+
},
|
|
47
|
+
"CONTRACT_LAUNCH_INVALID": {
|
|
48
|
+
"code": "CONTRACT_LAUNCH_INVALID",
|
|
49
|
+
"description": "integration.web.launch 模式無效。",
|
|
50
|
+
"suggestion": "請改為 dsm-window(DSM 視窗,預設)或 new-page(新分頁),Headless App 請省略此欄位。"
|
|
51
|
+
},
|
|
52
|
+
"CONTRACT_LAUNCH_REQUIRES_WEB": {
|
|
53
|
+
"code": "CONTRACT_LAUNCH_REQUIRES_WEB",
|
|
54
|
+
"description": "Headless App 不需要宣告 Web Launch Mode。",
|
|
55
|
+
"suggestion": "請省略 integration.web.launch,或補上對應 Compose published port 的 adminport。"
|
|
56
|
+
},
|
|
57
|
+
"CONTRACT_INVALID_STRING": {
|
|
58
|
+
"code": "CONTRACT_INVALID_STRING",
|
|
59
|
+
"description": "合約字串含有不允許的控制字元或未允許的插值語法。",
|
|
60
|
+
"suggestion": "請移除控制字元與 ${ 插值語法,安裝參數請在 install 區塊宣告。"
|
|
61
|
+
},
|
|
62
|
+
"CONTRACT_DSM_USER_DUPLICATE": {
|
|
63
|
+
"code": "CONTRACT_DSM_USER_DUPLICATE",
|
|
64
|
+
"description": "每顆 App 至多宣告一個 dsm_user 安裝參數。",
|
|
65
|
+
"suggestion": "請在 synology-app.yaml 只保留一個 Container Run-as 參數。"
|
|
66
|
+
},
|
|
67
|
+
"INSTALL_STRING_TOO_LONG": {
|
|
68
|
+
"code": "INSTALL_STRING_TOO_LONG",
|
|
69
|
+
"description": "Install Parameter 字串預設值超過 256 字元。",
|
|
70
|
+
"suggestion": "請縮短 synology-app.yaml 中 install 參數的預設字串長度。"
|
|
71
|
+
},
|
|
72
|
+
"INSTALL_STRING_INVALID": {
|
|
73
|
+
"code": "INSTALL_STRING_INVALID",
|
|
74
|
+
"description": "Install Parameter 字串值含有不合法字元或插值。",
|
|
75
|
+
"suggestion": "請移除 install 參數預設值中的控制字元與 ${ 插值語法。"
|
|
76
|
+
},
|
|
77
|
+
"CONTRACT_SECRET_UNSUPPORTED": {
|
|
78
|
+
"code": "CONTRACT_SECRET_UNSUPPORTED",
|
|
79
|
+
"description": "install.<NAME>.type: secret 目前沒有可用的安裝路徑。2026-08-27 於 vt-nas 實測:無論是否在 Compose 引用,Package Center 安裝都以 DSM broken/150 結束且不建立 Container Manager project(同一台 NAS 上無參數的對照套件正常安裝)。",
|
|
80
|
+
"suggestion": "請改用 type: string(非敏感值),或把敏感值改成 App 啟動後自行取得/由管理員放進 ${SYNO_APP_SECRETS_DIR} 的檔案。secret 型別要能用,需要先讓 DSM worker 的失敗原因可觀測(見 STATUS.md A22/A45)。"
|
|
81
|
+
},
|
|
82
|
+
"CONTRACT_HOMES_UNSUPPORTED": {
|
|
83
|
+
"code": "CONTRACT_HOMES_UNSUPPORTED",
|
|
84
|
+
"description": "install.<NAME>.type: homes 目前沒有可用的安裝路徑。2026-08-27 於 vt-nas 實測:wizard 不產生輸入控制項,Package Center 安裝以 DSM broken/150 結束;CLI deploy 能解析出 /volume1/homes,但 DSM 於 compound install 回 4540 拒絕。",
|
|
85
|
+
"suggestion": "若 App 需要一個由管理員選定的資料夾,請改用 type: shared_folder。homes 型別要能用,需要補齊 wizard 控制項與 preinst materialization(見 STATUS.md A46)。"
|
|
86
|
+
},
|
|
87
|
+
"INSTALL_PARAMETER_UNREFERENCED": {
|
|
88
|
+
"code": "INSTALL_PARAMETER_UNREFERENCED",
|
|
89
|
+
"description": "install 宣告的參數未在 Compose 中被引用。",
|
|
90
|
+
"suggestion": "請在 compose.yaml 以 ${參數名稱} 引用該參數,或從 synology-app.yaml 移除未使用的宣告。"
|
|
91
|
+
},
|
|
92
|
+
"CONTRACT_HOMES_PATH_FORBIDDEN": {
|
|
93
|
+
"code": "CONTRACT_HOMES_PATH_FORBIDDEN",
|
|
94
|
+
"description": "homes Install Parameter 不得在契約中寫入 NAS 實體路徑或預設值。",
|
|
95
|
+
"suggestion": "請只宣告 type: homes 並在 Compose 引用該參數,由套件 在安裝時解析這台 NAS 的 User Home 路徑。"
|
|
96
|
+
},
|
|
97
|
+
"CONTRACT_POSIX_ALL_SHARES_VALUE_FORBIDDEN": {
|
|
98
|
+
"code": "CONTRACT_POSIX_ALL_SHARES_VALUE_FORBIDDEN",
|
|
99
|
+
"description": "POSIX all-shares 參數不得在契約中指定 default 或 NAS 實體路徑。",
|
|
100
|
+
"suggestion": "請只宣告 type: posix_all_shares,讓 wizard/CLI 在安裝時取得當下的 Share snapshot。"
|
|
101
|
+
},
|
|
102
|
+
"CONTRACT_POSIX_ALL_SHARES_LISTING_UNSUPPORTED": {
|
|
103
|
+
"code": "CONTRACT_POSIX_ALL_SHARES_LISTING_UNSUPPORTED",
|
|
104
|
+
"description": "posix_all_shares 需要 CLI 在安裝時以管理員 session 取得這台 NAS 的 Share 清單快照;Package Center 與 Package Source listing 無法履行此合約。",
|
|
105
|
+
"suggestion": "請使用 synopkgland deploy --host <name>,由管理員 session 在安裝時取得 Share 清單快照;此型別不能透過 Package Center 或 Package Source listing 上架。"
|
|
106
|
+
},
|
|
107
|
+
"DSM_USER_REQUIRED": {
|
|
108
|
+
"code": "DSM_USER_REQUIRED",
|
|
109
|
+
"description": "有 Shared Folder 時必須宣告恰好一個 dsm_user 作為 Container Run-as。",
|
|
110
|
+
"suggestion": "請在 synology-app.yaml 新增 install.<NAME>.type: dsm_user,並在 Compose 引用 ${NAME_UID}:${NAME_GID}。"
|
|
111
|
+
},
|
|
112
|
+
"PROJECT_RUNTIME_EXCLUSIVE": {
|
|
113
|
+
"code": "PROJECT_RUNTIME_EXCLUSIVE",
|
|
114
|
+
"description": "專案同時存在 compose.yaml 與 native.yaml,兩者互斥。",
|
|
115
|
+
"suggestion": "請選擇使用 compose.yaml(容器 App)或 native.yaml(原生 App),並刪除另一個檔案。"
|
|
116
|
+
},
|
|
117
|
+
"COMPOSE_MISSING": {
|
|
118
|
+
"code": "COMPOSE_MISSING",
|
|
119
|
+
"description": "找不到 compose.yaml 或 native.yaml。",
|
|
120
|
+
"suggestion": "請在專案根目錄建立 compose.yaml 或 native.yaml。"
|
|
121
|
+
},
|
|
122
|
+
"COMPOSE_SERVICE_NOT_FOUND": {
|
|
123
|
+
"code": "COMPOSE_SERVICE_NOT_FOUND",
|
|
124
|
+
"description": "depends_on 引用的服務不存在於 compose.yaml 中。",
|
|
125
|
+
"suggestion": "請修正 compose.yaml 中的 depends_on,指向正確已定義的 service 名稱。"
|
|
126
|
+
},
|
|
127
|
+
"COMPOSE_NUMERIC_COMMAND_ARG_FORBIDDEN": {
|
|
128
|
+
"code": "COMPOSE_NUMERIC_COMMAND_ARG_FORBIDDEN",
|
|
129
|
+
"description": "會走 DSM Docker Project resource worker 的 Compose command/entrypoint 陣列含純數字字串,可能在 worker YAML round-trip 後變成整數而無法 acquire。",
|
|
130
|
+
"suggestion": "請把整個命令包成單一字串,例如 command: [\"sh\", \"-c\", \"httpd -f -p 8080 -h /srv\"],或與 flag 併寫成 \"-p8080\"。"
|
|
131
|
+
},
|
|
132
|
+
"COMPOSE_DYNAMIC_ROUTE_UNSUPPORTED": {
|
|
133
|
+
"code": "COMPOSE_DYNAMIC_ROUTE_UNSUPPORTED",
|
|
134
|
+
"description": "Compose dynamic route 超出 D1/D2 白名單,或使用 DSM worker 不會載入的 secret/config 來源。",
|
|
135
|
+
"suggestion": "請只使用 string/boolean wizard answer 的 ${NAME} interpolation;secret/config 因 DSM worker 不讀 docker-compose.override.yml 而拒收。"
|
|
136
|
+
},
|
|
137
|
+
"COMPOSE_BUILD_FORBIDDEN": {
|
|
138
|
+
"code": "COMPOSE_BUILD_FORBIDDEN",
|
|
139
|
+
"description": "D0 Compose route 禁止在 NAS install-time 使用 build:;build capability 永久拒收。",
|
|
140
|
+
"suggestion": "請移除 build:,改用已存在的 image(最好使用 image@sha256:... 固定 digest),再重新執行 validate。"
|
|
141
|
+
},
|
|
142
|
+
"COMPOSE_SOCKET_MOUNT_FORBIDDEN": {
|
|
143
|
+
"code": "COMPOSE_SOCKET_MOUNT_FORBIDDEN",
|
|
144
|
+
"description": "嚴禁掛載 Docker Socket 或系統敏感 Socket。",
|
|
145
|
+
"suggestion": "請從 compose.yaml 移除 docker.sock 掛載;如需存取檔案請改用 shared_folder 或 App 自己的檔案 API。"
|
|
146
|
+
},
|
|
147
|
+
"COMPOSE_BIND_SOURCE_FORBIDDEN": {
|
|
148
|
+
"code": "COMPOSE_BIND_SOURCE_FORBIDDEN",
|
|
149
|
+
"description": "掛載來源路徑不合法或屬於受保護的系統路徑。",
|
|
150
|
+
"suggestion": "請使用受控的 ${SYNOPKG_PKGVAR}、${SYNO_APP_SECRETS_DIR} 或已宣告的 ${SHARED_FOLDER} 槽位。"
|
|
151
|
+
},
|
|
152
|
+
"COMPOSE_BIND_SOURCE_UNDECLARED": {
|
|
153
|
+
"code": "COMPOSE_BIND_SOURCE_UNDECLARED",
|
|
154
|
+
"description": "Volume 掛載使用了未宣告的 Shared Folder 變數。",
|
|
155
|
+
"suggestion": "請先在 synology-app.yaml 的 install 區塊宣告該 shared_folder 參數。"
|
|
156
|
+
},
|
|
157
|
+
"COMPOSE_BIND_SUFFIX_INVALID": {
|
|
158
|
+
"code": "COMPOSE_BIND_SUFFIX_INVALID",
|
|
159
|
+
"description": "Shared Folder 子路徑格式不合法(含有 .. 或控制字元)。",
|
|
160
|
+
"suggestion": "請改用合法的相對子路徑,例如 ${MEDIA_SHARE}/data:/data。"
|
|
161
|
+
},
|
|
162
|
+
"COMPOSE_POSIX_ALL_SHARES_UNDECLARED": {
|
|
163
|
+
"code": "COMPOSE_POSIX_ALL_SHARES_UNDECLARED",
|
|
164
|
+
"description": "Compose 使用了未宣告的 POSIX all-shares marker。",
|
|
165
|
+
"suggestion": "請宣告 type: posix_all_shares,讓 package-only wizard/CLI 取得安裝當下的 Share snapshot。"
|
|
166
|
+
},
|
|
167
|
+
"COMPOSE_POSIX_ALL_SHARES_SUFFIX_FORBIDDEN": {
|
|
168
|
+
"code": "COMPOSE_POSIX_ALL_SHARES_SUFFIX_FORBIDDEN",
|
|
169
|
+
"description": "POSIX all-shares marker 不得附加 Share 子路徑。",
|
|
170
|
+
"suggestion": "請只使用完整的 ${ALL_SHARES} source;每個 Share 的 container target 由 package-only preinst 展開。"
|
|
171
|
+
},
|
|
172
|
+
"COMPOSE_HOST_BIND_FORBIDDEN": {
|
|
173
|
+
"code": "COMPOSE_HOST_BIND_FORBIDDEN",
|
|
174
|
+
"description": "禁止直接硬編碼本機路徑(例如 /volume1/... 或 ./)。",
|
|
175
|
+
"suggestion": "請在 synology-app.yaml 宣告 shared_folder 參數,並在 Compose 改用 ${SLOT} 引用。"
|
|
176
|
+
},
|
|
177
|
+
"COMPOSE_NAMED_VOLUME_UNDECLARED": {
|
|
178
|
+
"code": "COMPOSE_NAMED_VOLUME_UNDECLARED",
|
|
179
|
+
"description": "服務使用了未在頂層 volumes 宣告的 Named Volume。",
|
|
180
|
+
"suggestion": "請在 compose.yaml 頂層 volumes 區塊補上該 Volume 宣告,或改用受控目錄。"
|
|
181
|
+
},
|
|
182
|
+
"COMPOSE_USER_ROOT_FORBIDDEN": {
|
|
183
|
+
"code": "COMPOSE_USER_ROOT_FORBIDDEN",
|
|
184
|
+
"description": "容器以 root (0:0) 執行,違反最小權限原則。",
|
|
185
|
+
"suggestion": "請在 synology-app.yaml 宣告 dsm_user 並在 Compose 使用 ${USER_UID}:${USER_GID}。"
|
|
186
|
+
},
|
|
187
|
+
"COMPOSE_USER_CONFLICTS_DSM_USER": {
|
|
188
|
+
"code": "COMPOSE_USER_CONFLICTS_DSM_USER",
|
|
189
|
+
"description": "Compose 服務自定義了 user 欄位,與 contract 宣告的 dsm_user 衝突。",
|
|
190
|
+
"suggestion": "請移除 Compose 中的 user 欄位,交由 dsm_user 自動注入 ${NAME_UID}:${NAME_GID} 與 group_add。"
|
|
191
|
+
},
|
|
192
|
+
"COMPOSE_USER_NUMERIC_FORBIDDEN": {
|
|
193
|
+
"code": "COMPOSE_USER_NUMERIC_FORBIDDEN",
|
|
194
|
+
"description": "禁止在 compose.yaml 硬編碼數字 uid:gid。",
|
|
195
|
+
"suggestion": "請在 synology-app.yaml 宣告 dsm_user,並在 Compose 引用 ${NAME_UID}:${NAME_GID}。"
|
|
196
|
+
},
|
|
197
|
+
"COMPOSE_PRIVILEGED_FORBIDDEN": {
|
|
198
|
+
"code": "COMPOSE_PRIVILEGED_FORBIDDEN",
|
|
199
|
+
"description": "使用了 privileged: true 但未在合約宣告。",
|
|
200
|
+
"suggestion": "請在 synology-app.yaml 加上 privilege.privileged: true,或移除 privileged: true。"
|
|
201
|
+
},
|
|
202
|
+
"COMPOSE_HOST_NETWORK_FORBIDDEN": {
|
|
203
|
+
"code": "COMPOSE_HOST_NETWORK_FORBIDDEN",
|
|
204
|
+
"description": "使用了 host network 模式但未在合約宣告。",
|
|
205
|
+
"suggestion": "請在 synology-app.yaml 加上 privilege.host_network: true,或改用受控網路模式。"
|
|
206
|
+
},
|
|
207
|
+
"COMPOSE_HOST_PID_FORBIDDEN": {
|
|
208
|
+
"code": "COMPOSE_HOST_PID_FORBIDDEN",
|
|
209
|
+
"description": "使用了 pid: host 但未在合約宣告。",
|
|
210
|
+
"suggestion": "請在 synology-app.yaml 加上 privilege.host_pid: true,或移除 pid: host。"
|
|
211
|
+
},
|
|
212
|
+
"COMPOSE_HOST_IPC_FORBIDDEN": {
|
|
213
|
+
"code": "COMPOSE_HOST_IPC_FORBIDDEN",
|
|
214
|
+
"description": "使用了 ipc: host 但未在合約宣告。",
|
|
215
|
+
"suggestion": "請在 synology-app.yaml 加上 privilege.host_ipc: true,或移除 ipc: host。"
|
|
216
|
+
},
|
|
217
|
+
"COMPOSE_DEVICES_FORBIDDEN": {
|
|
218
|
+
"code": "COMPOSE_DEVICES_FORBIDDEN",
|
|
219
|
+
"description": "使用了 devices 裝置存取但未在合約宣告。",
|
|
220
|
+
"suggestion": "請在 synology-app.yaml 加上 privilege.devices: true,或移除 devices 區塊。"
|
|
221
|
+
},
|
|
222
|
+
"COMPOSE_CAP_ADD_FORBIDDEN": {
|
|
223
|
+
"code": "COMPOSE_CAP_ADD_FORBIDDEN",
|
|
224
|
+
"description": "使用了 cap_add 權限提升但未在合約宣告。",
|
|
225
|
+
"suggestion": "請在 synology-app.yaml 加上 privilege.cap_add: true,或移除 cap_add 區塊。"
|
|
226
|
+
},
|
|
227
|
+
"COMPOSE_ENV_MISSING": {
|
|
228
|
+
"code": "COMPOSE_ENV_MISSING",
|
|
229
|
+
"description": "專案缺少必要的環境變數目錄結構。",
|
|
230
|
+
"suggestion": "請確認 SYNOPKG_PKGVAR 與 secrets 目錄已正確建立。"
|
|
231
|
+
},
|
|
232
|
+
"COMPOSE_NOT_HEALTHY": {
|
|
233
|
+
"code": "COMPOSE_NOT_HEALTHY",
|
|
234
|
+
"description": "Compose 服務未能於時限內通過 healthcheck 達到 healthy 狀態。",
|
|
235
|
+
"suggestion": "請檢查容器健康檢查設定與應用程式日誌:synopkgland log --host <nas>。"
|
|
236
|
+
},
|
|
237
|
+
"COMPOSE_NOT_RUNNING": {
|
|
238
|
+
"code": "COMPOSE_NOT_RUNNING",
|
|
239
|
+
"description": "Compose 服務未能於時限內維持 running 狀態。",
|
|
240
|
+
"suggestion": "請檢查容器啟動腳本與日誌以排除崩潰原因:synopkgland log --host <nas>。"
|
|
241
|
+
},
|
|
242
|
+
"NATIVE_LOAD_FAILED": {
|
|
243
|
+
"code": "NATIVE_LOAD_FAILED",
|
|
244
|
+
"description": "無法讀取或解析 native.yaml。",
|
|
245
|
+
"suggestion": "請確認 native.yaml 存在且為合法 YAML 格式。"
|
|
246
|
+
},
|
|
247
|
+
"NATIVE_SCHEMA_INVALID": {
|
|
248
|
+
"code": "NATIVE_SCHEMA_INVALID",
|
|
249
|
+
"description": "native.yaml schema 版本無效(必須為整數 1)。",
|
|
250
|
+
"suggestion": "請在 native.yaml 設定 schema: 1。"
|
|
251
|
+
},
|
|
252
|
+
"NATIVE_TARGETS_REQUIRED": {
|
|
253
|
+
"code": "NATIVE_TARGETS_REQUIRED",
|
|
254
|
+
"description": "native.yaml 缺少 targets 區塊。",
|
|
255
|
+
"suggestion": "請在 native.yaml 宣告 targets 區塊並指定 x86_64 或 aarch64 目標。"
|
|
256
|
+
},
|
|
257
|
+
"NATIVE_TARGETS_EMPTY": {
|
|
258
|
+
"code": "NATIVE_TARGETS_EMPTY",
|
|
259
|
+
"description": "native.yaml 中的 targets 區塊不可為空。",
|
|
260
|
+
"suggestion": "請在 native.yaml 的 targets 內至少定義一個架構目標(x86_64 或 aarch64)。"
|
|
261
|
+
},
|
|
262
|
+
"NATIVE_ARCH_UNKNOWN": {
|
|
263
|
+
"code": "NATIVE_ARCH_UNKNOWN",
|
|
264
|
+
"description": "native.yaml 定義了不受支援的架構目標名稱。",
|
|
265
|
+
"suggestion": "目標架構名稱僅支援 x86_64 與 aarch64。"
|
|
266
|
+
},
|
|
267
|
+
"NATIVE_TARGET_INVALID": {
|
|
268
|
+
"code": "NATIVE_TARGET_INVALID",
|
|
269
|
+
"description": "native.yaml 目標架構定義無效。",
|
|
270
|
+
"suggestion": "每個目標架構必須包含 path 或 url 下載來源設定。"
|
|
271
|
+
},
|
|
272
|
+
"NATIVE_TARGET_NOT_DECLARED": {
|
|
273
|
+
"code": "NATIVE_TARGET_NOT_DECLARED",
|
|
274
|
+
"description": "欲建置或部署的架構目標未在 native.yaml 中宣告。",
|
|
275
|
+
"suggestion": "請在 native.yaml 的 targets 補上該架構目標,或透過 --arch 指定已宣告的目標。"
|
|
276
|
+
},
|
|
277
|
+
"NATIVE_TARGET_SOURCE_EXCLUSIVE": {
|
|
278
|
+
"code": "NATIVE_TARGET_SOURCE_EXCLUSIVE",
|
|
279
|
+
"description": "目標架構不可同時包含 path 與 url,兩者互斥。",
|
|
280
|
+
"suggestion": "請在該目標架構中只保留 path(本機)或 url(遠端二進位檔)。"
|
|
281
|
+
},
|
|
282
|
+
"NATIVE_PATH_FORBIDDEN_IN_LISTING": {
|
|
283
|
+
"code": "NATIVE_PATH_FORBIDDEN_IN_LISTING",
|
|
284
|
+
"description": "公開上架審查禁止使用本機 path 來源的 native 目標。",
|
|
285
|
+
"suggestion": "請將 target 改為公開可下載的 url 並附帶 sha256 校驗碼。"
|
|
286
|
+
},
|
|
287
|
+
"NATIVE_SHA256_REQUIRED_IN_LISTING": {
|
|
288
|
+
"code": "NATIVE_SHA256_REQUIRED_IN_LISTING",
|
|
289
|
+
"description": "公開上架審查要求 url 目標必須提供 sha256 校驗碼。",
|
|
290
|
+
"suggestion": "請在 native.yaml 的 url 目標補上 64 位十六進位 sha256 欄位。"
|
|
291
|
+
},
|
|
292
|
+
"NATIVE_SHA256_INVALID": {
|
|
293
|
+
"code": "NATIVE_SHA256_INVALID",
|
|
294
|
+
"description": "sha256 校驗碼格式無效。",
|
|
295
|
+
"suggestion": "請提供恰好 64 字元的十六進位 SHA-256 字串。"
|
|
296
|
+
},
|
|
297
|
+
"NATIVE_STRIP_COMPONENTS_INVALID": {
|
|
298
|
+
"code": "NATIVE_STRIP_COMPONENTS_INVALID",
|
|
299
|
+
"description": "strip_components 必須是非負整數。",
|
|
300
|
+
"suggestion": "請在 native.yaml 將 strip_components 設為大於等於 0 的整數。"
|
|
301
|
+
},
|
|
302
|
+
"NATIVE_SERVICE_REQUIRED": {
|
|
303
|
+
"code": "NATIVE_SERVICE_REQUIRED",
|
|
304
|
+
"description": "native.yaml 缺少 service 區塊。",
|
|
305
|
+
"suggestion": "請在 native.yaml 補上 service 區塊並宣告 exec 與 args/env。"
|
|
306
|
+
},
|
|
307
|
+
"NATIVE_SERVICE_USER_FORBIDDEN": {
|
|
308
|
+
"code": "NATIVE_SERVICE_USER_FORBIDDEN",
|
|
309
|
+
"description": "native service 不允許自訂 user 欄位(固定以 package 使用者執行)。",
|
|
310
|
+
"suggestion": "請從 native.yaml 的 service 區塊移除 user 欄位。"
|
|
311
|
+
},
|
|
312
|
+
"NATIVE_SERVICE_SHELL_FIELD_FORBIDDEN": {
|
|
313
|
+
"code": "NATIVE_SERVICE_SHELL_FIELD_FORBIDDEN",
|
|
314
|
+
"description": "禁止在 native service 使用 command/shell 等字串欄位以免 shell injection。",
|
|
315
|
+
"suggestion": "請改用 exec(路徑)與 args(字串陣列)方式宣告啟動指令。"
|
|
316
|
+
},
|
|
317
|
+
"NATIVE_EXEC_REQUIRED": {
|
|
318
|
+
"code": "NATIVE_EXEC_REQUIRED",
|
|
319
|
+
"description": "native service 缺少 exec 執行檔路徑。",
|
|
320
|
+
"suggestion": "請在 native.yaml 的 service 區塊指定 exec: <相對路徑>。"
|
|
321
|
+
},
|
|
322
|
+
"NATIVE_EXEC_INVALID_PATH": {
|
|
323
|
+
"code": "NATIVE_EXEC_INVALID_PATH",
|
|
324
|
+
"description": "exec 必須是相對路徑,且不可包含 .. 或絕對路徑。",
|
|
325
|
+
"suggestion": "請指定相對於安裝根目錄的合法相對路徑,例如 exec: bin/app。"
|
|
326
|
+
},
|
|
327
|
+
"NATIVE_ARGS_INVALID": {
|
|
328
|
+
"code": "NATIVE_ARGS_INVALID",
|
|
329
|
+
"description": "service.args 必須是字串陣列。",
|
|
330
|
+
"suggestion": "請在 native.yaml 將 args 宣告為字串列表格式(例如 args: [\"--port\", \"8080\"])。"
|
|
331
|
+
},
|
|
332
|
+
"NATIVE_ENV_INVALID": {
|
|
333
|
+
"code": "NATIVE_ENV_INVALID",
|
|
334
|
+
"description": "service.env 必須是 key-value 字串映射表。",
|
|
335
|
+
"suggestion": "請將 env 宣告為字典物件且每個值皆為字串。"
|
|
336
|
+
},
|
|
337
|
+
"NATIVE_PKGVAR_REQUIRED": {
|
|
338
|
+
"code": "NATIVE_PKGVAR_REQUIRED",
|
|
339
|
+
"description": "原生二進位 App 必須在 args 或 env 中引用 ${SYNOPKG_PKGVAR} 以指定資料路徑。",
|
|
340
|
+
"suggestion": "請在 native.yaml 的 service.args 或 service.env 加入 ${SYNOPKG_PKGVAR} 參數。"
|
|
341
|
+
},
|
|
342
|
+
"NATIVE_ARCH_FAMILY_REQUIRED": {
|
|
343
|
+
"code": "NATIVE_ARCH_FAMILY_REQUIRED",
|
|
344
|
+
"description": "建置原生 SPK 時缺少目標架構家族(x86_64 或 aarch64)。",
|
|
345
|
+
"suggestion": "請在指令加上 --arch x86_64 或 --arch aarch64。"
|
|
346
|
+
},
|
|
347
|
+
"NATIVE_ARCH_UNDETERMINED": {
|
|
348
|
+
"code": "NATIVE_ARCH_UNDETERMINED",
|
|
349
|
+
"description": "無法從目標 NAS 的 CPU 資訊自動判定架構家族。",
|
|
350
|
+
"suggestion": "請使用 --arch x86_64 或 --arch aarch64 明確指定目標架構。"
|
|
351
|
+
},
|
|
352
|
+
"NATIVE_PAYLOAD_BUNDLE_COLLISION": {
|
|
353
|
+
"code": "NATIVE_PAYLOAD_BUNDLE_COLLISION",
|
|
354
|
+
"description": "原生 payload 解壓縮內容與 App Bundle 核心保留檔衝突。",
|
|
355
|
+
"suggestion": "請檢查 payload 內容,避免在根目錄覆蓋 synology-app.yaml 或 native.yaml。"
|
|
356
|
+
},
|
|
357
|
+
"NATIVE_PAYLOAD_DOWNLOAD_FAILED": {
|
|
358
|
+
"code": "NATIVE_PAYLOAD_DOWNLOAD_FAILED",
|
|
359
|
+
"description": "下載原生二進位檔 payload 失敗。",
|
|
360
|
+
"suggestion": "請檢查 native.yaml 中的 url 是否有效且網路連線正常。"
|
|
361
|
+
},
|
|
362
|
+
"NATIVE_PAYLOAD_DOWNLOAD_INVALID": {
|
|
363
|
+
"code": "NATIVE_PAYLOAD_DOWNLOAD_INVALID",
|
|
364
|
+
"description": "下載的原生 payload 回傳內容無效。",
|
|
365
|
+
"suggestion": "請確認目標 URL 回傳了有效的二進位檔案內容。"
|
|
366
|
+
},
|
|
367
|
+
"NATIVE_PAYLOAD_DUPLICATE_ENTRY": {
|
|
368
|
+
"code": "NATIVE_PAYLOAD_DUPLICATE_ENTRY",
|
|
369
|
+
"description": "原生 payload 壓縮檔內包含重複的檔案路徑。",
|
|
370
|
+
"suggestion": "請重新打包原始檔案,確保壓縮檔內無重複 entry。"
|
|
371
|
+
},
|
|
372
|
+
"NATIVE_PAYLOAD_ERROR": {
|
|
373
|
+
"code": "NATIVE_PAYLOAD_ERROR",
|
|
374
|
+
"description": "處理原生二進位 payload 時發生未預期錯誤。",
|
|
375
|
+
"suggestion": "請檢查 payload 壓縮檔完整性或重新建置 SPK。"
|
|
376
|
+
},
|
|
377
|
+
"NATIVE_PAYLOAD_EXTRACTION_FAILED": {
|
|
378
|
+
"code": "NATIVE_PAYLOAD_EXTRACTION_FAILED",
|
|
379
|
+
"description": "解壓縮原生二進位 payload 失敗。",
|
|
380
|
+
"suggestion": "請確認壓縮檔格式正確無損壞,且支援 tar.gz / tar.xz / zip。"
|
|
381
|
+
},
|
|
382
|
+
"NATIVE_PAYLOAD_INVALID_HARDLINK": {
|
|
383
|
+
"code": "NATIVE_PAYLOAD_INVALID_HARDLINK",
|
|
384
|
+
"description": "原生 payload 含有無效或循環的 hardlink。",
|
|
385
|
+
"suggestion": "請移除壓縮檔中不合法的 hardlink 後重新打包。"
|
|
386
|
+
},
|
|
387
|
+
"NATIVE_PAYLOAD_INVALID_STRIP_COMPONENTS": {
|
|
388
|
+
"code": "NATIVE_PAYLOAD_INVALID_STRIP_COMPONENTS",
|
|
389
|
+
"description": "strip_components 設定超過了壓縮檔目錄層級深度。",
|
|
390
|
+
"suggestion": "請在 native.yaml 調整或減少 strip_components 數值。"
|
|
391
|
+
},
|
|
392
|
+
"NATIVE_PAYLOAD_INVALID_SYMLINK": {
|
|
393
|
+
"code": "NATIVE_PAYLOAD_INVALID_SYMLINK",
|
|
394
|
+
"description": "原生 payload 含有無效的符號連結。",
|
|
395
|
+
"suggestion": "請檢查壓縮檔內的 symlink 目標是否存在且合法。"
|
|
396
|
+
},
|
|
397
|
+
"NATIVE_PAYLOAD_INVALID_ZIP": {
|
|
398
|
+
"code": "NATIVE_PAYLOAD_INVALID_ZIP",
|
|
399
|
+
"description": "ZIP 壓縮檔格式無效或已損壞。",
|
|
400
|
+
"suggestion": "請檢查 zip 檔案完整性或重新打包。"
|
|
401
|
+
},
|
|
402
|
+
"NATIVE_PAYLOAD_SHA256_MISMATCH": {
|
|
403
|
+
"code": "NATIVE_PAYLOAD_SHA256_MISMATCH",
|
|
404
|
+
"description": "下載的 payload SHA-256 校驗碼與 native.yaml 宣告不符。",
|
|
405
|
+
"suggestion": "請更新 native.yaml 中的 sha256 欄位以符合實際檔案雜湊。"
|
|
406
|
+
},
|
|
407
|
+
"NATIVE_PAYLOAD_SOURCE_AMBIGUOUS": {
|
|
408
|
+
"code": "NATIVE_PAYLOAD_SOURCE_AMBIGUOUS",
|
|
409
|
+
"description": "目標架構同時宣告了 path 與 url,來源衝突。",
|
|
410
|
+
"suggestion": "請在該目標架構中只保留 path 或 url 其中一種來源。"
|
|
411
|
+
},
|
|
412
|
+
"NATIVE_PAYLOAD_SOURCE_REQUIRED": {
|
|
413
|
+
"code": "NATIVE_PAYLOAD_SOURCE_REQUIRED",
|
|
414
|
+
"description": "目標架構缺少 path 或 url 來源設定。",
|
|
415
|
+
"suggestion": "請在 native.yaml 的 targets 內為各架構補上 path 或 url。"
|
|
416
|
+
},
|
|
417
|
+
"NATIVE_PAYLOAD_SYMLINK_CYCLE": {
|
|
418
|
+
"code": "NATIVE_PAYLOAD_SYMLINK_CYCLE",
|
|
419
|
+
"description": "原生 payload 包含循環符號連結 (Symlink cycle)。",
|
|
420
|
+
"suggestion": "請移除壓縮檔中的循環 symlink。"
|
|
421
|
+
},
|
|
422
|
+
"NATIVE_PAYLOAD_UNSAFE_HARDLINK": {
|
|
423
|
+
"code": "NATIVE_PAYLOAD_UNSAFE_HARDLINK",
|
|
424
|
+
"description": "原生 payload hardlink 試圖連結至目標目錄外。",
|
|
425
|
+
"suggestion": "請確保 hardlink 僅指向 payload 目錄內部的有效檔案。"
|
|
426
|
+
},
|
|
427
|
+
"NATIVE_PAYLOAD_UNSAFE_PATH": {
|
|
428
|
+
"code": "NATIVE_PAYLOAD_UNSAFE_PATH",
|
|
429
|
+
"description": "原生 payload 含有路徑穿越 (Path traversal) 等不安全路徑。",
|
|
430
|
+
"suggestion": "請確保壓縮檔內無包含 .. 或絕對路徑的檔案名稱。"
|
|
431
|
+
},
|
|
432
|
+
"NATIVE_PAYLOAD_UNSAFE_SYMLINK": {
|
|
433
|
+
"code": "NATIVE_PAYLOAD_UNSAFE_SYMLINK",
|
|
434
|
+
"description": "原生 payload symlink 指向了安裝目錄之外。",
|
|
435
|
+
"suggestion": "請確保 symlink 僅指向 payload 目錄內部的相對目標。"
|
|
436
|
+
},
|
|
437
|
+
"NATIVE_PAYLOAD_UNSUPPORTED_ENTRY": {
|
|
438
|
+
"code": "NATIVE_PAYLOAD_UNSUPPORTED_ENTRY",
|
|
439
|
+
"description": "原生 payload 包含不支援的特殊檔案類型(如 device node 或 fifo)。",
|
|
440
|
+
"suggestion": "請從壓縮檔中移除特殊檔案,僅保留一般檔案、目錄與合法 symlink。"
|
|
441
|
+
},
|
|
442
|
+
"NATIVE_PAYLOAD_UNSUPPORTED_ZIP": {
|
|
443
|
+
"code": "NATIVE_PAYLOAD_UNSUPPORTED_ZIP",
|
|
444
|
+
"description": "不支援的 ZIP 特性(例如 ZIP64、多卷分割或密碼加密)。",
|
|
445
|
+
"suggestion": "請使用標準未加密的 ZIP 或改用 tar.gz 打包。"
|
|
446
|
+
},
|
|
447
|
+
"NATIVE_PAYLOAD_XZ_FAILED": {
|
|
448
|
+
"code": "NATIVE_PAYLOAD_XZ_FAILED",
|
|
449
|
+
"description": "解壓縮 tar.xz 失敗。",
|
|
450
|
+
"suggestion": "請確認本機已安裝 xz 工具且檔案未損壞。"
|
|
451
|
+
},
|
|
452
|
+
"NATIVE_PAYLOAD_XZ_UNAVAILABLE": {
|
|
453
|
+
"code": "NATIVE_PAYLOAD_XZ_UNAVAILABLE",
|
|
454
|
+
"description": "系統中找不到 xz 指令可用於解壓縮 .tar.xz 檔案。",
|
|
455
|
+
"suggestion": "請在作業系統中安裝 xz-utils 或改用 tar.gz 格式打包。"
|
|
456
|
+
},
|
|
457
|
+
"BUILD_SPK_FAILED": {
|
|
458
|
+
"code": "BUILD_SPK_FAILED",
|
|
459
|
+
"description": "SPK 打包流程失敗。",
|
|
460
|
+
"suggestion": "請檢查 validate 錯誤與目錄檔案權限後重試。"
|
|
461
|
+
},
|
|
462
|
+
"VALIDATION_FAILED": {
|
|
463
|
+
"code": "VALIDATION_FAILED",
|
|
464
|
+
"description": "專案未通過契約或安全驗證,終止部署。",
|
|
465
|
+
"suggestion": "請先執行 synopkgland validate 排除合約與 Compose 錯誤。"
|
|
466
|
+
},
|
|
467
|
+
"DEPLOY_FAILED": {
|
|
468
|
+
"code": "DEPLOY_FAILED",
|
|
469
|
+
"description": "部署至 NAS 時發生未分類錯誤。",
|
|
470
|
+
"suggestion": "請檢查 NAS 網路連線與日誌:synopkgland log --host <nas>。"
|
|
471
|
+
},
|
|
472
|
+
"SHARE_VALUE_REQUIRED": {
|
|
473
|
+
"code": "SHARE_VALUE_REQUIRED",
|
|
474
|
+
"description": "部署時缺少合約中宣告的 shared_folder 實際路徑映射。",
|
|
475
|
+
"suggestion": "請使用 --share <SLOT>=<邏輯名> 提供對應的 Shared Folder 名稱。"
|
|
476
|
+
},
|
|
477
|
+
"SHARE_LOGICAL_NAME_REQUIRED": {
|
|
478
|
+
"code": "SHARE_LOGICAL_NAME_REQUIRED",
|
|
479
|
+
"description": "Share 參數必須提供邏輯名稱,禁止使用 /volume1/... 等實體路徑。",
|
|
480
|
+
"suggestion": "請指定 DSM 控制台中的 Shared Folder 邏輯名稱,例如 --share MEDIA_SHARE=photos。"
|
|
481
|
+
},
|
|
482
|
+
"SHARE_NOT_FOUND": {
|
|
483
|
+
"code": "SHARE_NOT_FOUND",
|
|
484
|
+
"description": "在目標 NAS 上找不到指定的 Shared Folder。",
|
|
485
|
+
"suggestion": "請在 DSM 控制台建立該 Shared Folder,或檢查名稱拼字。"
|
|
486
|
+
},
|
|
487
|
+
"HOMES_NOT_ENABLED": {
|
|
488
|
+
"code": "HOMES_NOT_ENABLED",
|
|
489
|
+
"description": "目標 NAS 未啟用 User Home,或無法解析 homes 的實體 bind source。",
|
|
490
|
+
"suggestion": "請在這台 NAS 啟用 DSM User Home,並確認 DSM API 能回傳解析後的路徑,再重新部署。"
|
|
491
|
+
},
|
|
492
|
+
"DSM_USER_LOGICAL_NAME_REQUIRED": {
|
|
493
|
+
"code": "DSM_USER_LOGICAL_NAME_REQUIRED",
|
|
494
|
+
"description": "dsm_user 參數必須提供 DSM 使用者邏輯名稱,禁止使用數字 UID。",
|
|
495
|
+
"suggestion": "請在 --run-as 指定 DSM 使用者帳號名稱(例如 --run-as RUN_AS=alice)。"
|
|
496
|
+
},
|
|
497
|
+
"SHARE_RUN_AS_NO_ACCESS": {
|
|
498
|
+
"code": "SHARE_RUN_AS_NO_ACCESS",
|
|
499
|
+
"description": "deploy 的安裝前檢查發現選定的 Container Run-as 使用者對選定的 Shared Folder 沒有權限(或被明確拒絕)。容器會以該使用者掛載該 Share,安裝會成功但 runtime 讀寫會拿到 Permission denied。",
|
|
500
|
+
"suggestion": "請在 DSM 控制台把該 Shared Folder 的權限授予該使用者(或其群組),或改選別的使用者/Share,再重新部署。此檢查只在 deploy 進行;Package Center 安裝精靈不經過這裡,ACL 仍是管理員的前提責任。"
|
|
501
|
+
},
|
|
502
|
+
"PORT_ALREADY_IN_USE": {
|
|
503
|
+
"code": "PORT_ALREADY_IN_USE",
|
|
504
|
+
"description": "deploy 的安裝前檢查發現 Compose published TCP port 已被其他服務或容器佔用。",
|
|
505
|
+
"suggestion": "請更換 synology-app.yaml/compose.yaml 的 published host port;同一 Package Identity 的既有容器會在升級或重裝時放行。"
|
|
506
|
+
},
|
|
507
|
+
"CATALOG_INSTALL_FAILED": {
|
|
508
|
+
"code": "CATALOG_INSTALL_FAILED",
|
|
509
|
+
"description": "NAS Package Center 安裝套件失敗。",
|
|
510
|
+
"suggestion": "請至 DSM Package Center 檢查安裝日誌或手動嘗試安裝。"
|
|
511
|
+
},
|
|
512
|
+
"DEPLOY_PARAM_UNDECLARED": {
|
|
513
|
+
"code": "DEPLOY_PARAM_UNDECLARED",
|
|
514
|
+
"description": "deploy --param 提供了契約未宣告的 Install Parameter。",
|
|
515
|
+
"suggestion": "請只傳 synology-app.yaml install 中宣告的 string 或 boolean 名稱。"
|
|
516
|
+
},
|
|
517
|
+
"DEPLOY_PARAM_TYPE_INVALID": {
|
|
518
|
+
"code": "DEPLOY_PARAM_TYPE_INVALID",
|
|
519
|
+
"description": "deploy --param 的值不符合契約宣告的 string 或 boolean 型別。",
|
|
520
|
+
"suggestion": "string 請傳非空字串;boolean 請只傳 true 或 false。"
|
|
521
|
+
},
|
|
522
|
+
"DEPLOY_POSIX_ALL_SHARES_LOOKUP_FAILED": {
|
|
523
|
+
"code": "DEPLOY_POSIX_ALL_SHARES_LOOKUP_FAILED",
|
|
524
|
+
"description": "無法以管理員 session 列出部署當下的 Shared Folder 清單。",
|
|
525
|
+
"suggestion": "請確認 DSM 管理員 session 可呼叫 SYNO.Core.Share list,或用 --param NAME=... 明確提供清單。"
|
|
526
|
+
},
|
|
527
|
+
"DSM_DEPENDENCY_CONFLICT": {
|
|
528
|
+
"code": "DSM_DEPENDENCY_CONFLICT",
|
|
529
|
+
"description": "DSM 複合安裝請求因執行中的依賴套件而拒絕。",
|
|
530
|
+
"suggestion": "請先停止列出的依賴套件再重試升級。"
|
|
531
|
+
},
|
|
532
|
+
"DSM_COMPOUND_FAILED": {
|
|
533
|
+
"code": "DSM_COMPOUND_FAILED",
|
|
534
|
+
"description": "DSM 複合安裝請求的子步驟失敗。",
|
|
535
|
+
"suggestion": "請檢查回應中的 api、method、errorCode 與 DSM Package Center 日誌後重試。"
|
|
536
|
+
},
|
|
537
|
+
"DSM_REQUEST_FAILED": {
|
|
538
|
+
"code": "DSM_REQUEST_FAILED",
|
|
539
|
+
"description": "DSM SYNO.Entry.Request 複合請求失敗。",
|
|
540
|
+
"suggestion": "請檢查 DSM session、請求參數與 Package Center 日誌後重試。"
|
|
541
|
+
},
|
|
542
|
+
"NOT_INSTALLED": {
|
|
543
|
+
"code": "NOT_INSTALLED",
|
|
544
|
+
"description": "套件尚未在目標 NAS 上安裝部署。",
|
|
545
|
+
"suggestion": "請先執行 synopkgland deploy --host <nas> 安裝套件。"
|
|
546
|
+
},
|
|
547
|
+
"STANDALONE_MANIFEST_MISSING": {
|
|
548
|
+
"code": "STANDALONE_MANIFEST_MISSING",
|
|
549
|
+
"description": "找不到 dsm-package.yaml。",
|
|
550
|
+
"suggestion": "請在專案根目錄執行,或以 synopkgland init -t native-go 建立專案。"
|
|
551
|
+
},
|
|
552
|
+
"STANDALONE_MANIFEST_YAML": {
|
|
553
|
+
"code": "STANDALONE_MANIFEST_YAML",
|
|
554
|
+
"description": "dsm-package.yaml 不是合法的 YAML 物件。",
|
|
555
|
+
"suggestion": "請修正 dsm-package.yaml 的 YAML 語法。"
|
|
556
|
+
},
|
|
557
|
+
"STANDALONE_FIELD_UNKNOWN": {
|
|
558
|
+
"code": "STANDALONE_FIELD_UNKNOWN",
|
|
559
|
+
"description": "dsm-package.yaml 含有不支援的欄位。",
|
|
560
|
+
"suggestion": "請移除該欄位;Standalone Package 不接受自訂 lifecycle scripts 或 DSM conf。"
|
|
561
|
+
},
|
|
562
|
+
"STANDALONE_SCHEMA_INVALID": {
|
|
563
|
+
"code": "STANDALONE_SCHEMA_INVALID",
|
|
564
|
+
"description": "dsm-package.yaml 的 schema 版本不受支援。",
|
|
565
|
+
"suggestion": "請將 schema 設為 1。"
|
|
566
|
+
},
|
|
567
|
+
"STANDALONE_PRIVILEGE_UNSUPPORTED": {
|
|
568
|
+
"code": "STANDALONE_PRIVILEGE_UNSUPPORTED",
|
|
569
|
+
"description": "privilege 只能是 none(只以 package 帳號執行)或 root(另加管理員核准的 root 操作)。",
|
|
570
|
+
"suggestion": "請改為 privilege: none,或用 privilege: root 搭配 root/<名稱>.sh。"
|
|
571
|
+
},
|
|
572
|
+
"STANDALONE_ROOT_OPS_MISSING": {
|
|
573
|
+
"code": "STANDALONE_ROOT_OPS_MISSING",
|
|
574
|
+
"description": "privilege: root 但沒有任何 root 操作。",
|
|
575
|
+
"suggestion": "請在 root/ 放至少一個 <名稱>.sh,或改為 privilege: none。"
|
|
576
|
+
},
|
|
577
|
+
"STANDALONE_INTEGRATION_INVALID": {
|
|
578
|
+
"code": "STANDALONE_INTEGRATION_INVALID",
|
|
579
|
+
"description": "每包 helper 的 integration 宣告不合法。",
|
|
580
|
+
"suggestion": "使用 native-go、privilege: root、protocol: 1 和 workers map;不要自訂 helper_ 操作。"
|
|
581
|
+
},
|
|
582
|
+
"STANDALONE_DAEMON_INVALID": {
|
|
583
|
+
"code": "STANDALONE_DAEMON_INVALID",
|
|
584
|
+
"description": "套件 daemon 的宣告不符合固定 argv、環境與生命週期契約。",
|
|
585
|
+
"suggestion": "核對 daemon.exec、各架構 targets、args、env、uninstall_args 與整數秒 timeouts;移除 shell、user 與自訂 conf。"
|
|
586
|
+
},
|
|
587
|
+
"STANDALONE_DAEMON_BUILD_FAILED": {
|
|
588
|
+
"code": "STANDALONE_DAEMON_BUILD_FAILED",
|
|
589
|
+
"description": "無法建置套件 daemon 的 Go supervisor。",
|
|
590
|
+
"suggestion": "安裝 Go 1.24 以上並檢查 compiler stderr;NAS 不需要 Go toolchain。"
|
|
591
|
+
},
|
|
592
|
+
"STANDALONE_DAEMON_PAYLOAD_INVALID": {
|
|
593
|
+
"code": "STANDALONE_DAEMON_PAYLOAD_INVALID",
|
|
594
|
+
"description": "daemon payload 不是專案內的有界、無連結目錄。",
|
|
595
|
+
"suggestion": "重建各架構 bundle;移除 symlink、特殊檔與 setid,並將大小限制在 512 MiB。"
|
|
596
|
+
},
|
|
597
|
+
"STANDALONE_DAEMON_ARTIFACT_REQUIRED": {
|
|
598
|
+
"code": "STANDALONE_DAEMON_ARTIFACT_REQUIRED",
|
|
599
|
+
"description": "組裝 daemon SPK 時缺少已建置的 supervisor。",
|
|
600
|
+
"suggestion": "透過 synopkgland build-spk 建置完整產物,不直接呼叫缺少 controller 的 assembler。"
|
|
601
|
+
},
|
|
602
|
+
"HELPER_WORKER_UNSAFE": {
|
|
603
|
+
"code": "HELPER_WORKER_UNSAFE",
|
|
604
|
+
"description": "worker inventory 檔案不在專案內或不是一般檔案。",
|
|
605
|
+
"suggestion": "使用專案內的一般檔案,不接受 symlink。"
|
|
606
|
+
},
|
|
607
|
+
"HELPER_WORKERS_TOO_LARGE": {
|
|
608
|
+
"code": "HELPER_WORKERS_TOO_LARGE",
|
|
609
|
+
"description": "worker inventory payload 超過 1 MiB。",
|
|
610
|
+
"suggestion": "減少 worker inventory 檔案大小。"
|
|
611
|
+
},
|
|
612
|
+
"HELPER_TASK_TOO_LARGE": {
|
|
613
|
+
"code": "HELPER_TASK_TOO_LARGE",
|
|
614
|
+
"description": "helper task 超過 4095 bytes 保守限制。",
|
|
615
|
+
"suggestion": "縮短固定 literal;不要內嵌 binary 或將授權改為可寫 script 路徑。"
|
|
616
|
+
},
|
|
617
|
+
"HELPER_METADATA_TOO_LARGE": {
|
|
618
|
+
"code": "HELPER_METADATA_TOO_LARGE",
|
|
619
|
+
"description": "helper scheduler metadata 超過 8191 bytes 限制。",
|
|
620
|
+
"suggestion": "減少 metadata 並核對 DSM readback 的 exact script。"
|
|
621
|
+
},
|
|
622
|
+
"HELPER_GO_REQUIRED": {
|
|
623
|
+
"code": "HELPER_GO_REQUIRED",
|
|
624
|
+
"description": "目前 integration 需要 Go backend。",
|
|
625
|
+
"suggestion": "使用現有 native-go 模板。"
|
|
626
|
+
},
|
|
627
|
+
"HELPER_BUILD_FAILED": {
|
|
628
|
+
"code": "HELPER_BUILD_FAILED",
|
|
629
|
+
"description": "Go helper 編譯失敗。",
|
|
630
|
+
"suggestion": "檢查 Go toolchain 與 backend/cmd/helper 編譯錯誤。"
|
|
631
|
+
},
|
|
632
|
+
"HELPER_ARTIFACT_REQUIRED": {
|
|
633
|
+
"code": "HELPER_ARTIFACT_REQUIRED",
|
|
634
|
+
"description": "integration SPK 缺少已建置的 helper artifact。",
|
|
635
|
+
"suggestion": "使用現有 buildStandalone pipeline 建置完整 helper 與 immutable inventory。"
|
|
636
|
+
},
|
|
637
|
+
"STANDALONE_ROOT_OP_INVALID": {
|
|
638
|
+
"code": "STANDALONE_ROOT_OP_INVALID",
|
|
639
|
+
"description": "root/ 內有不合法的 root 操作檔案。",
|
|
640
|
+
"suggestion": "每個檔案必須是 root/<小寫名稱>.sh 一般檔案、以 #!/bin/sh 開頭、16 KiB 以內。"
|
|
641
|
+
},
|
|
642
|
+
"STANDALONE_ROOT_OPS_UNUSED": {
|
|
643
|
+
"code": "STANDALONE_ROOT_OPS_UNUSED",
|
|
644
|
+
"description": "專案有 root/ 資料夾,但 privilege 不是 root。",
|
|
645
|
+
"suggestion": "要使用 root 操作請設 privilege: root;不需要就刪除 root/。"
|
|
646
|
+
},
|
|
647
|
+
"STANDALONE_PACKAGE_INVALID": {
|
|
648
|
+
"code": "STANDALONE_PACKAGE_INVALID",
|
|
649
|
+
"description": "package 名稱不合法。",
|
|
650
|
+
"suggestion": "請使用英文字母開頭、只含英數字的 2–64 字名稱,例如 PhotoTagger。"
|
|
651
|
+
},
|
|
652
|
+
"STANDALONE_VERSION_INVALID": {
|
|
653
|
+
"code": "STANDALONE_VERSION_INVALID",
|
|
654
|
+
"description": "version 不是數字版本。",
|
|
655
|
+
"suggestion": "請使用 1.2.0 這類版本,build 號碼另外填在 build。"
|
|
656
|
+
},
|
|
657
|
+
"STANDALONE_BUILD_INVALID": {
|
|
658
|
+
"code": "STANDALONE_BUILD_INVALID",
|
|
659
|
+
"description": "build 不是 1–9999 的整數。",
|
|
660
|
+
"suggestion": "請將 build 設為 1–9999 的整數,每次發出 SPK 時遞增。"
|
|
661
|
+
},
|
|
662
|
+
"STANDALONE_OS_MIN_VER_INVALID": {
|
|
663
|
+
"code": "STANDALONE_OS_MIN_VER_INVALID",
|
|
664
|
+
"description": "os_min_ver 格式不正確。",
|
|
665
|
+
"suggestion": "請使用 <major>.<minor>-<build>,例如 7.2-64570。"
|
|
666
|
+
},
|
|
667
|
+
"STANDALONE_TEXT_INVALID": {
|
|
668
|
+
"code": "STANDALONE_TEXT_INVALID",
|
|
669
|
+
"description": "顯示文字欄位不合法。",
|
|
670
|
+
"suggestion": "請使用單行、非空且不含 \" 或 \\ 的文字。"
|
|
671
|
+
},
|
|
672
|
+
"STANDALONE_ARCHES_INVALID": {
|
|
673
|
+
"code": "STANDALONE_ARCHES_INVALID",
|
|
674
|
+
"description": "arches 不合法。",
|
|
675
|
+
"suggestion": "請列出不重複的 x86_64 或 aarch64,至少一個。"
|
|
676
|
+
},
|
|
677
|
+
"STANDALONE_ARCH_NOT_DECLARED": {
|
|
678
|
+
"code": "STANDALONE_ARCH_NOT_DECLARED",
|
|
679
|
+
"description": "要求建置的架構不在 arches 內。",
|
|
680
|
+
"suggestion": "請把該架構加入 dsm-package.yaml 的 arches,或改用已宣告的 --arch。"
|
|
681
|
+
},
|
|
682
|
+
"STANDALONE_BACKEND_INVALID": {
|
|
683
|
+
"code": "STANDALONE_BACKEND_INVALID",
|
|
684
|
+
"description": "backend 設定不合法。",
|
|
685
|
+
"suggestion": "backend 需恰好包含 go(dir 與 ./ 開頭的 main)或 binary(以架構為 key)其中之一。"
|
|
686
|
+
},
|
|
687
|
+
"STANDALONE_BINARY_ARCH_MISSING": {
|
|
688
|
+
"code": "STANDALONE_BINARY_ARCH_MISSING",
|
|
689
|
+
"description": "arches 宣告的架構沒有對應的 backend.binary 執行檔。",
|
|
690
|
+
"suggestion": "請在 backend.binary 補上該架構的執行檔,或從 arches 移除它。"
|
|
691
|
+
},
|
|
692
|
+
"STANDALONE_BINARY_MISSING": {
|
|
693
|
+
"code": "STANDALONE_BINARY_MISSING",
|
|
694
|
+
"description": "找不到 backend 執行檔。",
|
|
695
|
+
"suggestion": "請確認 backend.binary 指向的檔案存在。"
|
|
696
|
+
},
|
|
697
|
+
"STANDALONE_BINARY_NOT_REGULAR": {
|
|
698
|
+
"code": "STANDALONE_BINARY_NOT_REGULAR",
|
|
699
|
+
"description": "backend 執行檔不是一般檔案。",
|
|
700
|
+
"suggestion": "請改用實際檔案,不可是 symlink、目錄或特殊檔案。"
|
|
701
|
+
},
|
|
702
|
+
"STANDALONE_BINARY_TOO_LARGE": {
|
|
703
|
+
"code": "STANDALONE_BINARY_TOO_LARGE",
|
|
704
|
+
"description": "backend 執行檔超過 256 MiB。",
|
|
705
|
+
"suggestion": "請縮小執行檔(例如 -ldflags \"-s -w\")。"
|
|
706
|
+
},
|
|
707
|
+
"STANDALONE_BINARY_NOT_ELF": {
|
|
708
|
+
"code": "STANDALONE_BINARY_NOT_ELF",
|
|
709
|
+
"description": "backend 執行檔不是 64-bit little-endian Linux ELF。",
|
|
710
|
+
"suggestion": "請提供為 Linux 編譯的 x86_64 或 aarch64 執行檔。"
|
|
711
|
+
},
|
|
712
|
+
"STANDALONE_BINARY_ARCH_MISMATCH": {
|
|
713
|
+
"code": "STANDALONE_BINARY_ARCH_MISMATCH",
|
|
714
|
+
"description": "backend 執行檔的 CPU 架構與目標不符。",
|
|
715
|
+
"suggestion": "請為該架構重新編譯,或修正 backend.binary 的對應。"
|
|
716
|
+
},
|
|
717
|
+
"STANDALONE_BINARY_DYNAMIC": {
|
|
718
|
+
"code": "STANDALONE_BINARY_DYNAMIC",
|
|
719
|
+
"description": "backend 執行檔是動態連結。",
|
|
720
|
+
"suggestion": "請靜態連結(Go 用 CGO_ENABLED=0),DSM 各機型的 libc 版本不同。"
|
|
721
|
+
},
|
|
722
|
+
"STANDALONE_PATH_INVALID": {
|
|
723
|
+
"code": "STANDALONE_PATH_INVALID",
|
|
724
|
+
"description": "路徑欄位不是專案內的相對路徑。",
|
|
725
|
+
"suggestion": "請使用相對於專案根目錄的路徑。"
|
|
726
|
+
},
|
|
727
|
+
"STANDALONE_PATH_OUTSIDE_PROJECT": {
|
|
728
|
+
"code": "STANDALONE_PATH_OUTSIDE_PROJECT",
|
|
729
|
+
"description": "路徑指向專案目錄之外。",
|
|
730
|
+
"suggestion": "請把檔案放在專案目錄內(symlink 解析後也必須在專案內)。"
|
|
731
|
+
},
|
|
732
|
+
"STANDALONE_UI_INVALID": {
|
|
733
|
+
"code": "STANDALONE_UI_INVALID",
|
|
734
|
+
"description": "ui 設定不合法。",
|
|
735
|
+
"suggestion": "請提供 ui.dir。"
|
|
736
|
+
},
|
|
737
|
+
"STANDALONE_UI_BUILD_INVALID": {
|
|
738
|
+
"code": "STANDALONE_UI_BUILD_INVALID",
|
|
739
|
+
"description": "ui.build 設定不合法。",
|
|
740
|
+
"suggestion": "ui.build.command 必須是 argv 字串陣列(不經 shell),例如 [npm, run, build]。"
|
|
741
|
+
},
|
|
742
|
+
"STANDALONE_IDENTITY_BUILD_FAILED": {
|
|
743
|
+
"code": "STANDALONE_IDENTITY_BUILD_FAILED",
|
|
744
|
+
"description": "選用的 Better Auth bundle 建置失敗。",
|
|
745
|
+
"suggestion": "在 node/ 執行 npm ci 與 npm run build,確認 Node 22 以上。"
|
|
746
|
+
},
|
|
747
|
+
"STANDALONE_IDENTITY_PAYLOAD_INVALID": {
|
|
748
|
+
"code": "STANDALONE_IDENTITY_PAYLOAD_INVALID",
|
|
749
|
+
"description": "Better Auth bundle 不是專案內的有界一般檔案。",
|
|
750
|
+
"suggestion": "重新建置 node/dist/app.mjs,移除 symlink 並確認大小。"
|
|
751
|
+
},
|
|
752
|
+
"STANDALONE_UI_BUILD_FAILED": {
|
|
753
|
+
"code": "STANDALONE_UI_BUILD_FAILED",
|
|
754
|
+
"description": "UI build 指令失敗。",
|
|
755
|
+
"suggestion": "請在 ui.build.cwd 手動執行該指令並修正錯誤。"
|
|
756
|
+
},
|
|
757
|
+
"STANDALONE_UI_ENTRY_MISSING": {
|
|
758
|
+
"code": "STANDALONE_UI_ENTRY_MISSING",
|
|
759
|
+
"description": "UI 目錄缺少 app.js 或 app.css。",
|
|
760
|
+
"suggestion": "請讓 ui.dir(或 UI build 輸出)包含 app.js 與 app.css。"
|
|
761
|
+
},
|
|
762
|
+
"STANDALONE_UI_SYMLINK": {
|
|
763
|
+
"code": "STANDALONE_UI_SYMLINK",
|
|
764
|
+
"description": "UI 目錄含有 symlink。",
|
|
765
|
+
"suggestion": "請以實際檔案取代 symlink。"
|
|
766
|
+
},
|
|
767
|
+
"STANDALONE_UI_SPECIAL_FILE": {
|
|
768
|
+
"code": "STANDALONE_UI_SPECIAL_FILE",
|
|
769
|
+
"description": "UI 目錄含有特殊檔案。",
|
|
770
|
+
"suggestion": "UI 目錄只能有一般檔案與目錄。"
|
|
771
|
+
},
|
|
772
|
+
"STANDALONE_UI_TOO_LARGE": {
|
|
773
|
+
"code": "STANDALONE_UI_TOO_LARGE",
|
|
774
|
+
"description": "UI 檔案總大小超過 64 MiB。",
|
|
775
|
+
"suggestion": "請縮小 UI 資產。"
|
|
776
|
+
},
|
|
777
|
+
"STANDALONE_GO_MISSING": {
|
|
778
|
+
"code": "STANDALONE_GO_MISSING",
|
|
779
|
+
"description": "找不到 go 指令。",
|
|
780
|
+
"suggestion": "請安裝 Go 1.24 以上版本(https://go.dev/dl/),或改用 backend.binary 打包既有執行檔。"
|
|
781
|
+
},
|
|
782
|
+
"STANDALONE_GO_BUILD_FAILED": {
|
|
783
|
+
"code": "STANDALONE_GO_BUILD_FAILED",
|
|
784
|
+
"description": "go build 失敗。",
|
|
785
|
+
"suggestion": "請在 backend 目錄執行 go build ./... 並修正錯誤。"
|
|
786
|
+
},
|
|
787
|
+
"STANDALONE_I18N_INVALID": {
|
|
788
|
+
"code": "STANDALONE_I18N_INVALID",
|
|
789
|
+
"description": "dsm-package.yaml 的 i18n 設定不合法。",
|
|
790
|
+
"suggestion": "i18n 只接受 messages、glossary 與 info;info 以 zh-TW、ja 等支援語言為 key(英文寫在頂層)。"
|
|
791
|
+
},
|
|
792
|
+
"STANDALONE_I18N_MESSAGES_MISSING": {
|
|
793
|
+
"code": "STANDALONE_I18N_MESSAGES_MISSING",
|
|
794
|
+
"description": "i18n.messages 目錄缺少 en.json。",
|
|
795
|
+
"suggestion": "請加入 en.json;它是所有語言的後備文字與 key 清單。"
|
|
796
|
+
},
|
|
797
|
+
"STANDALONE_I18N_LOCALE_UNSUPPORTED": {
|
|
798
|
+
"code": "STANDALONE_I18N_LOCALE_UNSUPPORTED",
|
|
799
|
+
"description": "訊息檔的語言不在支援的九種語言內。",
|
|
800
|
+
"suggestion": "請使用 en、zh-TW、zh-CN、ja、ko、de、fr、es、it;其他 DSM 語言會顯示英文。"
|
|
801
|
+
},
|
|
802
|
+
"STANDALONE_I18N_CATALOG_INVALID": {
|
|
803
|
+
"code": "STANDALONE_I18N_CATALOG_INVALID",
|
|
804
|
+
"description": "訊息檔不是扁平的 key → 文字 JSON 物件。",
|
|
805
|
+
"suggestion": "請改成 { \"greeting.save\": \"Save\" } 這種格式。"
|
|
806
|
+
},
|
|
807
|
+
"STANDALONE_I18N_KEYS_MISMATCH": {
|
|
808
|
+
"code": "STANDALONE_I18N_KEYS_MISMATCH",
|
|
809
|
+
"description": "某語言的訊息 key 與 en.json 不同。",
|
|
810
|
+
"suggestion": "請讓每個語言檔都恰好有 en.json 的所有 key。"
|
|
811
|
+
},
|
|
812
|
+
"STANDALONE_I18N_PLACEHOLDER_MISMATCH": {
|
|
813
|
+
"code": "STANDALONE_I18N_PLACEHOLDER_MISMATCH",
|
|
814
|
+
"description": "翻譯少了或多了 {placeholder}。",
|
|
815
|
+
"suggestion": "請保留 en.json 文字中的每個 {name} 佔位符。"
|
|
816
|
+
},
|
|
817
|
+
"STANDALONE_I18N_GLOSSARY_INVALID": {
|
|
818
|
+
"code": "STANDALONE_I18N_GLOSSARY_INVALID",
|
|
819
|
+
"description": "用語表格式錯誤,或指向不存在的訊息 key。",
|
|
820
|
+
"suggestion": "請修正 glossary.json 的 terms(id、text、keys)。"
|
|
821
|
+
},
|
|
822
|
+
"STANDALONE_I18N_GLOSSARY_MISMATCH": {
|
|
823
|
+
"code": "STANDALONE_I18N_GLOSSARY_MISMATCH",
|
|
824
|
+
"description": "訊息沒有使用用語表中的 Synology 官方用語。",
|
|
825
|
+
"suggestion": "請改用 glossary.json 中該語言的用語,與 DSM 介面保持一致。"
|
|
826
|
+
},
|
|
827
|
+
"DEPLOY_VERSION_INVALID": {
|
|
828
|
+
"code": "DEPLOY_VERSION_INVALID",
|
|
829
|
+
"description": "套件版本無效或低於已安裝版本。",
|
|
830
|
+
"suggestion": "設定更高的有效 version/build 再部署。"
|
|
831
|
+
}
|
|
864
832
|
};
|
|
865
833
|
export function getErrorCode(code) {
|
|
866
834
|
return ERROR_REGISTRY[code];
|