Open Science is a self-contained desktop application that requires minimal external configuration. Almost everything — database file paths, session directories, artifact stores — is resolved programmatically at runtime based on the operating system’s standard app data directories. The only area that requires manual configuration is the Prisma CLI toolchain used during development for database migrations and schema generation.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/aipoch/open-science/llms.txt
Use this file to discover all available pages before exploring further.
Environment Variables
A single.env file at the project root is used exclusively during development. It is not shipped in the packaged application.
| Variable | Required | Description |
|---|---|---|
DATABASE_URL | Dev only | SQLite file path for the Prisma CLI (file:./dev.db). Used by prisma generate, prisma migrate, and prisma studio — not by the running application. |
App Identity
These fields are sourced frompackage.json and electron-builder.yml and are embedded in every packaged build.
| Field | Value |
|---|---|
| App name | Open Science |
| Bundle ID | com.aipoch.open-science |
| Version | 0.1.0 |
| Author | aipoch |
| License | Apache-2.0 |
| Homepage | https://www.aipoch.com/open-science |
Build Configuration
Open Science uses electron-builder for packaging and distribution, configured inelectron-builder.yml. The build produces platform-native installers for all three major desktop operating systems.
macOS
- Artifact format: DMG (filename pattern:
${name}-${version}.dmg) - Signing: ad-hoc signed via the
afterPackhook atbuild/adhoc-sign.cjs— no Apple Developer ID is required - Notarization: disabled (
notarize: false) - Entitlements:
build/entitlements.mac.plist(applied viaentitlementsInherit) CFBundleName/CFBundleDisplayName:Open Science
Because macOS builds are ad-hoc signed and not notarized, Gatekeeper may show a “damaged” warning when you open a downloaded DMG. This is a quarantine flag, not actual corruption. To open the app anyway, right-click the application in Finder and choose Open, then confirm. You only need to do this once.
Windows
- Installer format: NSIS (filename pattern:
${name}-${version}-setup.exe) - Executable name:
open-science - Desktop shortcut: created automatically during install
- Uninstall display name:
Open Science
Linux
- Target formats: AppImage, snap, deb
- Artifact filename pattern:
${name}-${version}.${ext} - Maintainer:
aipoch - Category:
Utility
Distribution
Releases are published to GitHub Releases using electron-builder’s built-in GitHub publisher:electron-updater at runtime, which checks GitHub Releases for new versions.
Prisma Configuration
Open Science uses Prisma with a SQLite datasource to manage itsProject and ProjectPreviewState tables. The Prisma setup has a few packaging-specific details worth understanding.
Why Prisma is shipped as extraResources
The Prisma generated client (node_modules/.prisma) and @prisma/client are excluded from the asar archive and shipped as extraResources instead:
.dylib.node on macOS) by file path, which cannot be executed from inside an asar archive. Shipping both packages under Contents/Resources/node_modules/ lets Node’s standard directory walk find them at runtime without any path patching.
Development setup
The Prisma client is generated automatically when you install dependencies:DATABASE_URL in .env points the CLI at a local dev.db file for this purpose. The packaged app creates its own schema at runtime using CREATE TABLE IF NOT EXISTS DDL directly, without the Prisma migration engine.