validation-checklist.md 2.7 KB

Validation Checklist

Use this before finalizing a Forge business workflow change.

Static Checks

  • Search for tenant_id = 0 in new SQL. It must not appear for business/config seed data.
  • Search for ${ in Flyway SQL. Escape or construct with CONCAT('$', '{...}').
  • Run whitespace check on new SQL: git diff --check -- <migration.sql>.
  • Verify all SQL inserts use explicit columns and duplicate guards.
  • Verify complex business queries are in Mapper XML, not Service LambdaQueryWrapper.
  • Verify frontend URL placeholders in AiCrudPage use :id, not {id}.

Backend Compile

Run the narrowest relevant Maven compile first, then broader compile if shared code changed. In this repo, typical commands are:

cd forge-server && mvn -pl forge-business/forge-business-core -am -DskipTests compile
cd forge-server && mvn -pl forge-admin-server -am -DskipTests compile

If the task explicitly includes /test, phase verification, review-fix verification, or archive acceptance, first read code-copilot/rules/automated-testing-standard.md and append the results to the current change execution-log.md.

Flow Runtime

Validate these behaviors manually or by automated e2e when services are available:

  • Create business record -> status DRAFT.
  • Submit -> Flowable instance created, business_key and process_instance_id saved, status IN_PROCESS.
  • Todo list displays business object name and business summary.
  • Todo form loads correct asset and only shows readable fields.
  • Saving task fields persists only writable fields.
  • Required node fields are enforced server-side.
  • Approval through all nodes -> status APPROVED.
  • Reject from approval node -> task enters applicant modify node and status becomes NEED_MODIFY.
  • Applicant modify resubmit -> status returns IN_PROCESS.
  • Applicant terminate/reject -> status REJECTED.
  • Cancel/withdraw/terminate -> status CANCELED.
  • Done/history form is readonly and can still display business record data.
  • Page/detail query repairs status if event timing drift occurred.

Security And Data Rules

  • Do not log mobile numbers, identity numbers, bank cards, API keys, or unmasked secrets.
  • API key/secret-like fields must be masked before returning to frontend.
  • Money fields use long cents.
  • LocalDateTime for datetime fields and LocalDate only for pure date semantics.
  • Business side effects after approval must be idempotent.

Common Regression Tests

  • Flow model init must preserve non-empty BPMN XML.
  • BPMN default sequence flow must not contain condition expression.
  • Duplicate sequence flows must not generate duplicate tasks.
  • Code Provider assets must still resolve after App Center metadata overrides.
  • Frontend must preserve Long IDs as strings in task variables and API params.