Propose existing TSQ saved-record validation

Proprietary

Invoke an existing validation paragraph immediately before an approved saved-record use and require its explicit success condition. Prove complete READQ receipt with immediate response and returned-length checks. Prove that the existing paragraph resets its result and permits exactly matching request and generation values with an approved restored target. Bind trusted current context, ownership and freshness semantics to explicit snapshot approvals. Preserve every existing byte outside the inserted PERFORM and rejection guard. Require ordinary disjoint storage, a complete fixed record, resolved local paragraphs and a terminal approved exit. Do not infer freshness from a user ID, terminal ID or queue item number. No validator, expiry time, queue selection, deletion, authorization rule or transaction behavior is invented. Application team review remains required.

io.moderne.mainframe.security.ProposeTsqSavedRecordValidation

Required

Exact approved caller path.

Exact approved program ID.

Lowercase SHA-256 of the complete approved UTF-8 source without a byte order mark.

JSON mapping every ordinary data COPY to its approved hash.

One-based selected EXEC CICS READQ TS line.

One-based selected direct PERFORM of the protected saved-record consumer.

Strict version 1 JSON approving the existing validation paragraph, complete record, request and generation mappings, restored target set, queue item, explicit success condition and terminal exit. contextSource must approve trusted current values at this exact site and explain why request and generation equality establish required ownership and freshness.

Provenance approving the existing check policy, current context, queue resource and item, protected use and failure path. The exact validation paragraph must already implement every required restored-record check. Preserve required cleanup, messages and transaction behavior.

mod run . --recipe=io.moderne.mainframe.security.ProposeTsqSavedRecordValidation \ -P sourcePath=security/cbl/VSRG001.cbl \ -P programName=VSRG001 \ -P sourceSha256=0000000000000000000000000000000000000000000000000000000000000000 \ -P copybookSnapshots='{}' \ -P readLine=25 \ -P useLine=33 \ -P validationContract='{"version":1}' \ -P contractSource='mainframe-fixtures fictional saved-record contract'

Install it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.