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

jthrilly and others added 30 commits July 22, 2025 20:20
was an uncaught race condition exposed when migrated from hoc
update bounds on mouse move to fix ResizeObserver not firing bc panel does not actually resize when it appears
visually hide panels while preserving layout so ResizeObserver can properly track changes when panel appears during drag
immediate hook based updates in new dnd migration caused the timing to create visual flash when using popLayout mode. sync handles instant changes correctly.
allow vertical scrolling when not dragging
make initial network a function so that a new uuid is created each time an interview is created
account for empty array nodes/edges. previously not processed due to being null
add conditional check for stage element before creating portal
jthrilly and others added 3 commits December 4, 2025 20:47
…m environment values

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…in permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…in permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Ian Sieg added 2 commits December 5, 2025 12:37
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