Place a small web tool on your site: install, operate, accept
Build the existing self-hosted CSV widget, place its standalone package on an allowed static site, and verify the workflow with synthetic CSV before deciding whether to handle real data.
Use only the existing index.html, widget.js, and README.txt. No server, account, database, external submission, analytics, customer data, or secret is required.
Check
Accept when
Stop when
Package
Three files are together
Unknown script or secret appears
Processing
CSV is validated, corrected, and saved in the browser
Confirm the five mappings: submission_id, record_id, status, field, and error_message.
Save the standalone ZIP and extract index.html, widget.js, and README.txt.
Place the three files on an allowed static site and open the page in your browser.
Use the synthetic CSV; correct one failed row, explicitly select it, and revalidate.
Compare with the expected output; verify reload clears the session and no external request is needed.
Run one synthetic CSV check
sample.csv contains success, failed, and unknown states. Correct the failed row, select only that row, and revalidate. Do not guess that an unknown row is successful; ask its owner.
sample.csv → correct failed row → select one row → Revalidate → save selected CSV
The fixture uses fictional values. Do not paste real data, email addresses, tokens, or cookies.
Acceptance checklist
Three files have their specified names
Only the selected row matches the expected output
Reload or close clears the input and result
Input and results are not sent outside the browser