Migrates flow commands to Zod#7373
Open
waldekmastykarz wants to merge 2 commits into
Open
Conversation
Migrates all flow commands to use Zod schema validation, replacing the old interface-based Options pattern with exported Zod schemas. Commands migrated: - flow disable, enable, get, export, list, remove - flow owner list, ensure, remove - flow run cancel, get, list, resubmit Closes pnp#7304 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request migrates the remaining flow commands from the legacy option/validator/telemetry pattern to the repository’s Zod-based schema validation, aligning them with the newer command framework behavior (schema-driven option metadata, validation, and telemetry).
Changes:
- Introduces exported Zod
optionsschemas (plusschema/getRefinedSchema) forflowrun/owner/flow commands. - Replaces custom GUID/status/datetime validation logic with Zod primitives (
z.uuid(),z.enum(),.refine()), including cross-field rules viagetRefinedSchema. - Updates corresponding Mocha tests to validate inputs via
commandInfo.command.getSchemaToParse().safeParse(...)and stubsaccessToken.assertAccessTokenType.
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/m365/flow/commands/run/run-resubmit.ts | Migrates flow run resubmit options/validation to Zod schema. |
| src/m365/flow/commands/run/run-resubmit.spec.ts | Updates validation tests to use schema safeParse and adds access token stub. |
| src/m365/flow/commands/run/run-list.ts | Migrates flow run list to Zod, including refined cross-field validation for withTrigger. |
| src/m365/flow/commands/run/run-list.spec.ts | Updates validation tests to schema-based safeParse and stubs access token assertion. |
| src/m365/flow/commands/run/run-get.ts | Migrates flow run get options/validation to Zod schema. |
| src/m365/flow/commands/run/run-get.spec.ts | Updates validation tests to schema-based safeParse and stubs access token assertion. |
| src/m365/flow/commands/run/run-cancel.ts | Migrates flow run cancel options/validation to Zod schema. |
| src/m365/flow/commands/run/run-cancel.spec.ts | Updates validation tests to schema-based safeParse and stubs access token assertion. |
| src/m365/flow/commands/owner/owner-remove.ts | Migrates flow owner remove to Zod and replaces option set logic with refined schema rule. |
| src/m365/flow/commands/owner/owner-remove.spec.ts | Updates validation tests to schema safeParse, adds tests for option set behavior, and stubs access token assertion. |
| src/m365/flow/commands/owner/owner-list.ts | Migrates flow owner list options/validation to Zod schema. |
| src/m365/flow/commands/owner/owner-list.spec.ts | Updates validation tests to schema-based safeParse and stubs access token assertion. |
| src/m365/flow/commands/owner/owner-ensure.ts | Migrates flow owner ensure to Zod and replaces option set logic with refined schema rule. |
| src/m365/flow/commands/owner/owner-ensure.spec.ts | Updates validation tests to schema safeParse, adds tests for option set behavior, and stubs access token assertion. |
| src/m365/flow/commands/flow-remove.ts | Migrates flow remove GUID validation to Zod (z.uuid()) and schema-based parsing. |
| src/m365/flow/commands/flow-remove.spec.ts | Updates validation tests to schema-based safeParse and stubs access token assertion. |
| src/m365/flow/commands/flow-list.ts | Migrates flow list to Zod and adds refined validation for mutually exclusive options. |
| src/m365/flow/commands/flow-list.spec.ts | Updates validation tests to schema-based safeParse and stubs access token assertion. |
| src/m365/flow/commands/flow-get.ts | Migrates flow get to Zod schema. |
| src/m365/flow/commands/flow-get.spec.ts | Adds access token assertion stub (no schema-based validation tests added here). |
| src/m365/flow/commands/flow-export.ts | Migrates flow export to Zod schema with refined validations (format-related and filesystem path checks). |
| src/m365/flow/commands/flow-export.spec.ts | Updates validation tests to schema-based safeParse. |
| src/m365/flow/commands/flow-enable.ts | Migrates flow enable to Zod schema. |
| src/m365/flow/commands/flow-enable.spec.ts | Adds access token assertion stub. |
| src/m365/flow/commands/flow-disable.ts | Migrates flow disable to Zod schema. |
| src/m365/flow/commands/flow-disable.spec.ts | Adds access token assertion stub. |
- Replace z.uuid() with z.string().refine(validation.isValidGuid) for userId and groupId in owner-ensure and owner-remove to support @meid token - Fix misleading test description in run-get.spec.ts Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #7304
Summary
Migrates all 13 remaining
flowcommands from the legacy Options/constructor validation pattern to Zod schema validation.Commands migrated
flow disable,flow enable,flow get,flow export,flow list,flow removeflow owner list,flow owner ensure,flow owner removeflow run cancel,flow run get,flow run list,flow run resubmitChanges
interface Options extends GlobalOptions+#initOptions/#initValidators/#initTelemetrywith exported Zod schemas usingz.strictObject()andglobalOptionsZod.shapeget schema()getter andgetRefinedSchema()where cross-field validation is neededz.uuid()for GUID validation,z.enum()for enum options,.refine()for UPN and ISO datetime validationcommandOptionsSchema.safeParse()patternaccessToken.assertAccessTokenTypestub to all test filesTesting