Docs menu

IQ and OQ Outline (draft)

Goal: Have a starting point for your own installation and operational qualification of signing.

NOTE

Draft

This is an outline, not a script to sign off as it stands. Your QA writes the scripts, runs them on your workspace, your app and your login system, and decides what counts. Steps marked coming cannot be run until that part is built. Performance qualification, your process in daily use, is yours alone.

Installation qualification (IQ)

Confirm the workspace is set up as your validation says. Keep a screenshot or an API answer for each step.

#ConfirmWherePass
IQ-1The OpenX release under testThe change noticesThe release and its notice are recorded in your validation file
IQ-2Provenance is provisioned in your subscription, in the region you choseEnvironment -> ProvenanceThe badge reads Protected or Locked, as your validation says
IQ-3Retention periods and their basisEnvironment -> ProvenanceEach period and basis matches your records policy
IQ-4The storage levelEnvironment -> Provenance, Storage levelLocked, or Protected with a recorded reason
IQ-5Your login system is set up for the appEnvironment -> App IdentityThe directory your validation names is Configured
IQ-6The sign route is open only to that login systemAPI Manager access rulesA rule admits your login system on the sign route and no other
IQ-7Signers hold the sign rightAccess configurationsEach signer holds Workspace.Provenance.Sign; no one else does
IQ-8The workspace's signature meaningsGET /ox-api/provenance/signature-meaningsThe list matches your procedures
IQ-9The two-person rule, where you use itThe workspace's Provenance policy (set by an accepted proposal)Set as your validation says
IQ-10The proof setting (coming)Environment -> ProvenanceThe default and any stricter meanings match your validation
IQ-11Signature events, if you use them (coming)Environment -> Provenance -> Signature eventsYour HTTPS address is subscribed to the events you chose

Operational qualification (OQ)

Run each case on a workspace whose records you are content to keep: a signature is permanent. Record the request, the answer and the record written (or that none was).

Your login system

#RunPass
OQ-1Start a signing login while already signed inThe login system asks for the password again. This is the step OpenX cannot check for you
OQ-2Read the ID token's claims after the forced login (claims only; never keep the whole token)It carries the person's name, a login time that moved, and the nonce your app sent

Signing (coming, wave 1)

#RunPass
OQ-3Sign a record with a login made for it (Nonce form)One signature is written with the printed name, meaning, time, proof form and login time
OQ-4Post the same login againRefused LOGIN_ALREADY_USED; nothing written
OQ-5Post a login made for record A to record B, or for Review as ApprovalRefused LOGIN_NOT_FOR_THIS_RECORD; nothing written
OQ-6Post a login older than the freshness windowRefused LOGIN_TOO_OLD; nothing written
OQ-7Post another person's loginRefused LOGIN_NOT_THE_SIGNER; nothing written
OQ-8At a write-first site, sign with a challenge (Challenge form); then reuse the challengeThe first lands; the second is refused CHALLENGE_SPENT
OQ-9Sign three listed records in one batch; then change one record and try againThe first lands all three; the second writes nothing
OQ-10Look for each refusal above in the recordEach refusal is recorded once, with who, code, meaning and target

Built today

#RunPass
OQ-11Sign with a digest that is not the record's current digestRefused with 409; nothing written
OQ-12Sign with a meaning not on the listRefused with 400; nothing written
OQ-13With the two-person rule on, sign the same ceremony twice as one personRefused TWO_PERSON_SAME_SIGNER; nothing written
OQ-14Sign as a person without Workspace.Provenance.SignRefused ACCESS_RIGHT_REQUIRED; nothing written
OQ-15Read the signatures of a recordEach reads LinkCheck Intact with a Valid seal
OQ-16Export signatures as CSV and as JSONBoth carry the signature columns and the digest footer

Evidence and checking (coming)

#RunPass
OQ-17Open a ceremony's certificateEach signer's name, title, meaning, time with its zone, record, digest, link status and seal verdict are shown as text
OQ-18Run the verify tool on an export, with no networkEvery signature reads Valid
OQ-19Change one byte in a copy of the export and run it againThat signature reads Changed
OQ-20Sign with events subscribedOne Signed event arrives, and its HMAC-SHA256 checks with your secret
OQ-21Sign as a job, an app or an AI call (wave 3)Refused SIGNER_NOT_A_PERSON with its reason; nothing written

Next steps

On this page