Skip to content

Conversation

@buckhalt
Copy link
Member

Implementation details:

  • To activate the new features, you must set the participantEncryption flag by manually editing the protocol.json and adding the following:
  "experiments": {
    "participantEncryption": true
  },
  • Encrypted variables will be exported with the value "Encrypted".
  • Refreshing the browser will cause the passphrase to be lost. The participant will be prompted to re-enter it.
  • Entering an incorrect passphrase is detectable, and the participant will be prompted to re-enter the passphrase.
  • It is possible for the researcher to browse the interview without knowing the passphrase.

Known limitations:

  • Attributes other than "name" are not fully supported for encryption. You can mark them as encrypted, and this will be handled by the network reducer when a node is created. However, name interpreter interfaces will not correctly decode them.
  • If the participant creates nodes with multiple passphrases (for example, if they refresh the window on a different name generator and then re-enter a different passphrase before creating more nodes), the app has no way to detect this. Displaying nodes created with different passphrases on the same interface will result in some portion of the nodes not rendering their label.
  • External rosters using encrypted attributes are not supported. However, nodes created on roster interfaces will correctly encrypt name variables, if they match with an encrypted variable in the codebook.
  • The preview mode feature is not working in Architect 7.0.0 alpha, and likely won't for a long time. This is because the desktop Interviewer app does not support schema 8 at this time.
  • Migrations from schema 7 to schema 8 may not be working correctly for all protocols, but should be working generally. Remember that you will also need to add the flag manually to enable the anonymisation interface.

TODO:

  • All v7 protocols must be migrated to v8 so that db extension that parses JSON won't crash

- Update docker-build-pr.yml to trigger on all PRs and accept
  disable-image-optimization input for test builds
- Restructure e2e.yml to call docker-build-pr workflow for PR events
  instead of building inline, reducing duplication
- Push events to main/develop still build inline with buildx caching
- Local e2e tests continue to work unchanged (builds image if needed)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use consistent image name fresco-test:latest across all workflows
to match the TEST_IMAGE_NAME in package.json scripts.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add participants-page and participants-empty-state linux snapshots
  for CI compatibility
- Add scripts/update-e2e-snapshots.sh to generate linux snapshots
  locally using a Playwright Docker container
- Add test:e2e:update-snapshots npm script
- Add .pnpm-store to .gitignore

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When e2e tests fail on PRs, the Playwright HTML report is now
deployed to GitHub Pages and a comment is posted on the PR with
a direct link to view the report in the browser.

Requires GitHub Pages to be enabled with source set to "GitHub Actions"
in repository settings.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants