fresco 🠖 deployment

FAQ for IT Departments 

This article answers common questions raised by IT departments, sysadmins, and information security teams who are supporting a researcher with deploying Fresco. It covers what Fresco is, what infrastructure it needs, how it handles participant data, and the security posture of the application.

For background on what Fresco is and how researchers use it, see About Fresco. For broader compliance guidance covering both Fresco and Interviewer, see the GDPR Compliance Guide.

What is Fresco, and what does it do?

Fresco is an open-source web application that allows researchers to administer Network Canvas social network interviews through a browser. Researchers upload a protocol (an interview definition file), generate participant URLs, and collect interview responses through a web-based dashboard.

Fresco is not a SaaS product. There is no central server operated by the development team, and no participant data is ever transmitted to the developers. Each research group runs their own independent instance.

The source code is publicly available on GitHub under an open-source license.

What infrastructure does Fresco require?

Fresco is a Next.js application (Node.js 24) backed by a PostgreSQL database and an S3-compatible object store. A typical deployment needs:

For full details on self-hosted deployments, see the Advanced Deployment guide. For the recommended cloud-based path, see the Deployment Guide.

Where is participant data stored?

All participant data is stored exclusively in infrastructure that the researcher (or your institution) controls:

The research institution is the Data Controller. The Network Canvas developers are not a Data Processor under GDPR, because no participant data ever reaches them.

Does Fresco store participant uploads or media?

No. Fresco does not collect binary data (photos, audio, video) from participants during interviews. The asset bucket is used only for researcher-supplied materials such as introduction videos, protocol logos, and participant rosters.

Roster files may contain participant PII depending on study design, so the bucket region should match your data residency requirements.

Is data encrypted at rest and in transit?

Fresco does not implement an additional application-layer encryption envelope on top of these.

What authentication does Fresco use?

Authentication for the researcher dashboard is session-cookie based (cookies are HTTP-only and Secure when served over HTTPS). Passwords are hashed before storage. The current generation of Fresco supports:

There is still no email-based "forgot password" flow. Password changes are performed from inside an authenticated session. If all credentials and recovery codes for every account are lost and the database is inaccessible, the only recovery option is to reset the database, which destroys all data. We recommend storing credentials in an institutional password manager and enrolling more than one administrator.

Participant-facing URLs do not require authentication; access is controlled by the unguessability of the per-participant URL. If your IRB requires stronger participant authentication, that should be layered externally (e.g. via SSO/IdP-protected URLs).

Does Fresco send data to third parties?

Fresco itself does not transmit participant data to third parties. The following outbound calls do occur:

There are no third-party tracking pixels, advertising scripts, or analytics SDKs running in the participant interview experience.

Is there an API? How is it secured?

Fresco exposes a versioned, read-only Interview Data API that lets external tools pull interview data and protocol metadata. It is:

If you do not want this API exposed, leave it disabled. There is no other authenticated external API surface.

What network access does the deployment need?

At a minimum:

Fresco can run behind an institutional firewall or reverse proxy.

Can Fresco be deployed entirely on institutional infrastructure?

Yes. With the S3-compatible storage backend, every component — Next.js application, PostgreSQL database, and object store (e.g. MinIO) — can run inside your network with no required external dependency. The official docker-compose.prod.yml in the Fresco repository demonstrates this layout, bringing up Fresco, PostgreSQL, and MinIO together.

External connectivity may still be useful for GitHub release checks and optional analytics, but neither is required for the app to function and both can be disabled or firewalled off.

The Advanced Deployment guide documents the self-hosted Docker path.

Is Fresco GDPR-compliant? HIPAA?

Fresco can be deployed in a GDPR-compliant manner, but compliance is achieved by the institution, not by the software. The research institution is the Data Controller and is responsible for lawful basis, data residency, retention, participant rights, and DPIA where applicable.

Practical steps for GDPR alignment:

The Network Canvas developers do not act as a Data Processor and therefore do not provide a DPA themselves — there is no data flow to them to cover.

Fresco has not been certified for HIPAA. Deploying for HIPAA-regulated data would require a BAA with every involved provider, tightly controlled access, audit logging, and institutional sign-off. A fully self-hosted deployment (app + Postgres + MinIO, all on institutional infrastructure) avoids needing external BAAs but still requires the rest of the controls. Review with your compliance team before using Fresco for HIPAA-regulated data.

For a fuller treatment, see the GDPR Compliance Guide.

What logging and audit information is available?

Fresco includes an in-app activity feed that records significant researcher and participant events (protocol uploads, participants starting and completing interviews, deletions). This is visible from the dashboard.

Failed and successful login attempts are stored with the source IP for the purpose of rate-limiting auth attempts. Participant IP addresses are not stored, and Fresco does not maintain a separate immutable audit log. If your institutional policy requires detailed audit logs, capture them at the hosting/reverse-proxy layer.

How are updates and security patches handled?

Updates are the deployer's responsibility. The Network Canvas team does not push updates to deployed instances.

We recommend subscribing to release announcements and applying security-relevant updates promptly. Dependency vulnerabilities are tracked through GitHub's standard Dependabot tooling on the upstream repository.

How do backups work?

Backup responsibility lies with the deployer.

Periodic restoration tests are strongly recommended.

What happens to data if the deployment is decommissioned?

Because the deployment is entirely under researcher control, decommissioning is a matter of:

  1. Exporting any required interview data from the dashboard.
  2. Deleting the database (and any backups according to retention policy).
  3. Removing assets from the object store.
  4. Tearing down the application hosting.

No data persists outside the researcher's infrastructure, so no developer-side deletion request is needed or possible.

What devices and browsers are supported?

Participants and researchers use the latest versions of Chrome, Safari, or Firefox on a desktop, laptop, or tablet (landscape orientation). Internet Explorer and Edge Legacy are not supported. Smartphones are not supported for interviews.

Where can we get help with an institutional deployment?

There is no commercial support contract for Fresco. Community support is available via the User Community forum. For research collaborations or institutional engagements, contact the project team at [email protected].

The Troubleshooting article covers common deployment issues.