记录企微职责生产验收(07-26-internal-ops-recovery-baseline)
这个提交包含在:
@@ -251,6 +251,10 @@ business role assignment -> separate administrator-audited operation
|
||||
- CLI: `npm run import:wecom-directory-export -- --input=- --dry-run`.
|
||||
- Apply: `WECOM_DIRECTORY_EXPORT_APPLY=1 ... --input=- --apply
|
||||
--actor-employee-no=<employee-no>`.
|
||||
- When apply runs through Compose v1, pass the confirmation variable into the
|
||||
container explicitly: `docker-compose exec -T -e
|
||||
WECOM_DIRECTORY_EXPORT_APPLY server ...`; exporting it only in the host shell
|
||||
does not satisfy the in-container gate.
|
||||
- Binary stdin reader: `fs.readFileSync(0)`; do not assume
|
||||
`fs.promises.readFile(0)` accepts a numeric file descriptor on the production
|
||||
Node runtime.
|
||||
@@ -289,6 +293,9 @@ business role assignment -> separate administrator-audited operation
|
||||
`duplicate_values`; error output contains counts only.
|
||||
- Existing OA unique-field or binding conflict -> conflict; no automatic merge.
|
||||
- `--apply` without confirmation env or active actor -> refuse before sync.
|
||||
- Confirmation env exported only on the Compose host ->
|
||||
`apply_confirmation_required`; no sync/write. Add the name-only `-e` inherit
|
||||
flag and rerun the same approved input.
|
||||
- Promise-based stdin fd read returns `ERR_INVALID_ARG_TYPE` on the deployed
|
||||
Node runtime -> no sync/write; use the fd-compatible reader and rerun dry-run
|
||||
before requesting apply approval.
|
||||
@@ -304,6 +311,8 @@ business role assignment -> separate administrator-audited operation
|
||||
phone is preserved.
|
||||
- Base: the local and production Node versions differ; the same binary stdin
|
||||
workbook parses through `fs.readFileSync(0)` without a temporary file.
|
||||
- Base: Compose v1 inherits the already-set non-secret apply confirmation only
|
||||
when `exec -e WECOM_DIRECTORY_EXPORT_APPLY` is present.
|
||||
- Bad: write an empty string or shared placeholder, use personal email in place
|
||||
of the required enterprise email for bulk identity, or auto-grant a business
|
||||
role during import.
|
||||
@@ -315,6 +324,9 @@ business role assignment -> separate administrator-audited operation
|
||||
malformed phone, missing enterprise email and duplicate account/phone/email.
|
||||
- Unit regression asserts the CLI stdin helper calls `fs.readFileSync(0)`;
|
||||
production dry-run must prove aggregate parsing/sync counts before apply.
|
||||
- Apply acceptance must include a negative preflight without the container env
|
||||
gate and a successful approved run with the name-only Compose `-e` flag;
|
||||
both outputs remain count/category only.
|
||||
- Route/service tests for create/update/import `null`, non-empty unique checks,
|
||||
OAuth missing phone and empty-source preservation of an existing phone.
|
||||
- Frontend typecheck/build and displays that render a clear empty-phone label.
|
||||
|
||||
在新工单中引用
屏蔽一个用户