MCPcopy Index your code
hub / github.com/dossierhq/dossierhq

github.com/dossierhq/dossierhq @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
4,310 symbols 15,013 edges 1,232 files 7 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Dossier

Node CI Benchmark

Dossier enables you to build solutions where you’re in full control of the content. By bringing your own auth (authentication and authorization), database and backend, you can build a headless Content Management System (CMS) and integrate it with your app.

For more information about Dossier, head over to dossierhq.dev. The rest of this readme is focused on developing and contributing to Dossier itself.

If you just want to get started using Dossier, these destinations might get you there faster:

Published packages

Package Version Folder
@dossierhq/better-sqlite3 npm version libraries/better-sqlite3
@dossierhq/cloudinary npm version libraries/cloudinary
@dossierhq/core npm version libraries/core
@dossierhq/core-vitest npm version libraries/core-vitest
@dossierhq/database-adapter npm version libraries/database-adapter
@dossierhq/design npm version libraries/design
@dossierhq/graphql npm version libraries/graphql
@dossierhq/integration-test npm version libraries/integration-test
@dossierhq/leaflet npm version libraries/leaflet
@dossierhq/pg npm version libraries/pg
@dossierhq/postgres-core npm version libraries/postgres-core
@dossierhq/postgres-tools npm version libraries/postgres-tools
@dossierhq/react-components npm version libraries/react-components
@dossierhq/react-components2 npm version libraries/react-components2
@dossierhq/server npm version libraries/server
@dossierhq/sql.js npm version libraries/sql.js
@dossierhq/sqlite-core npm version libraries/sqlite-core
@dossierhq/typescript-generator npm version libraries/typescript-generator

Development dependencies

  • Use mise to install the tools in .tools-versions
  • brew install pgcli (optional, for Postgres access)
  • brew install gnuplot (for benchmarking)
  • npx playwright install (for installing browsers for Playwright testing)

Getting started

  • pnpm i to install dependencies.
  • In tools/generic-tools/:
  • By default the databases (test and example databases on PostgreSQL) are configured in Docker. To use another db set the env variable HOST_ROOT_DATABASE_URL
  • npm run db:start (only if running db in Docker)
  • npm run db:ensure-dbs
  • npm run db:make-users:superuser
  • npm run db:migrate:all
  • npm run db:make-users:no-superuser
  • pnpm run build

Dev container / Github Code Spaces

  • Start dev container
  • The script post-create.sh runs automatically on first run
  • When done, restart your shell since it sets up environment variables
  • For root access to the Postgres database, run psql "$HOST_ROOT_DATABASE_URL" or pgcli "$HOST_ROOT_DATABASE_URL"

Upgrade dependencies

  • Run pnpm tools:update
  • Update packageManager in package.json to match the version of pnpm you have installed
  • Run pnpm deps:update-interactive
  • Upgrade Deno dependencies in the 3 import-map.json files
  • Run (cd tools/generic-tools && npm run deno:reload-dependencies:all)
  • Upgrade the postgres version in ./docker-compose.yml

Publish packages

  • When making changes to published packages, create a changeset using pnpm changeset:add
  • The release workflow will automatically open a PR to bump the versions
  • Merge the PR to publish the packages

Ports

  • 3000: examples/tutorial
  • 3001: examples/next-web
  • 3002: apps/playground
  • 3003: apps/blog
  • 3004: apps/playground2
  • 4321: examples/astro
  • 4322: examples/astro (HMR)
  • 5173: examples/tutorial
  • 6006: libraries/react-components
  • 6007: libraries/design
  • 6008: libraries/react-components2
  • 9000: libraries/libsql - admin entity
  • 9001: libraries/libsql - advisory lock
  • 9002: libraries/libsql - advisory lock
  • 9003: libraries/libsql - published entity
  • 9004: libraries/libsql - schema
  • 9005: libraries/libsql - changelog
  • 9006: libraries/libsql - sync source
  • 9007: libraries/libsql - sync target

Extension points exported contracts — how you extend this code

MultipleSelectorStateAction (Interface)
(no doc) [60 implementers]
libraries/design/src/components/DropdownSelector/MultipleSelectorReducer.ts
ContentEditorStateAction (Interface)
(no doc) [65 implementers]
libraries/react-components2/src/reducers/ContentEditorReducer.ts
EntityEditorStateAction (Interface)
(no doc) [64 implementers]
libraries/react-components/src/reducers/EntityEditorReducer/EntityEditorReducer.ts
PublishedDossierExceptionClient (Interface)
(no doc) [5 implementers]
libraries/core/src/client/PublishedDossierClient.ts
AdapterTransaction (Interface)
(no doc) [2 implementers]
libraries/sqlite-core/src/SqliteDatabaseAdapter.ts
ServerPlugin (Interface)
(no doc) [2 implementers]
libraries/server/src/Server.ts
SqldProcess (Interface)
(no doc) [1 implementers]
libraries/libsql/src/test/integration/sqld/SqldRunner.ts
DatabasePerformanceCallbacks (Interface)
(no doc) [1 implementers]
libraries/database-adapter/src/TransactionContext.ts

Core symbols most depended-on inside this repo

valueOrThrow
called by 1053
libraries/core/src/ErrorResult.ts
isError
called by 657
libraries/core/src/ErrorResult.ts
ok
called by 606
libraries/core/src/ErrorResult.ts
createEntity
called by 524
libraries/core/src/client/DossierClient.ts
sql
called by 461
libraries/database-adapter/src/SqlQueryBuilder.ts
map
called by 411
libraries/core/src/ErrorResult.ts
assertOkResult
called by 404
libraries/integration-test/src/Asserts.ts
copyEntity
called by 333
libraries/core/src/content/ContentUtils.ts

Shape

Function 2,647
Interface 739
Method 656
Class 268

Languages

TypeScript100%

Modules by API surface

libraries/react-components/src/reducers/SchemaEditorReducer/SchemaEditorReducer.ts175 symbols
libraries/core/src/client/DossierClient.ts102 symbols
libraries/database-adapter/src/DatabaseAdapter.ts98 symbols
libraries/integration-test/src/SchemaTypes.ts88 symbols
libraries/react-components2/src/reducers/ContentEditorReducer.ts65 symbols
libraries/react-components/src/reducers/EntityEditorReducer/EntityEditorReducer.ts57 symbols
apps/blog/utils/SchemaTypes.ts54 symbols
libraries/integration-test/src/admin-entity/AdminEntityGetEntitiesSubSuite.ts53 symbols
libraries/integration-test/src/admin-entity/AdminEntityCreateEntitySubSuite.ts48 symbols
libraries/graphql/src/GraphQLSchemaGenerator.ts47 symbols
libraries/integration-test/src/schema/SchemaUpdateSchemaSpecificationSubSuite.ts43 symbols
libraries/core/src/client/PublishedDossierClient.ts43 symbols

For agents

$ claude mcp add dossierhq \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact