NOTICE: This is an early stage project and should only be operated in secure, trusted environments
Cartographer is the open-source reference implementation of Sodal's Persona Graph model for agency management. Cartographer demonstrates how persona graphs enable discovery and management of identities and resources (and associated collaboration opportunities and risks) without the need for comprehensive controls or top-down policy enforcement.
Cartographer is a self-contained application that can run locally or on docker-compatible cloud infrastructure. Cartographer uses a Node/Express server. The server stores graph data in a Neo4j database and object data in a MongoDB database.
- Modules - developing and working with modules
- Install Docker for your platform.
- Copy the .env.example file to .env
The default configuration uses ports 3000, 7474, 7687, 28000
This terminal command will start the app and database. The first time it runs it will need to download files which may take several minutes.
docker-compose up
The processes will run in a single terminal window (they are color coded). You can view the front end by visiting http://localhost:3000 in your browser window.
The open-source "Core" system offers fundamental tools for working with a graph database and includes MongoDB for handling additional data. It supports creating modules that ingest, format, store, and display graph data.
- Using JWT
To generate a value for the ACCESS_TOKEN_SECRET and the REFRESH_TOKEN_SECRET in .env
- Open a terminal window and type node followed by the enter key to enter the Node REPL
- Run this
require('crypto').randomBytes(64).toString('hex')
- Use the resulting value for ACCESS_TOKEN_SECRET and run again for the REFRESH_TOKEN_SECRET
Name | Description | License |
---|---|---|
tailwind | A utility-first CSS framework | MIT |
alpine js | A framework for composing behavior directly in your markup. | MIT |
htmx | Access to AJAX and web sockets directly in HTML using attributes | Zero-Clause BSD |
Name | Description | License |
---|---|---|
dotenv | Loads environment variables from .env file | BSD-2-Clause |
express | Fast, unopinionated, minimalist web framework | MIT |
express-handlebars | A Handlebars view engine for Express which doesn't suck. | BSD-3-Clause |
mongodb | The official MongoDB driver for Node.js | Apache-2.0 |
multer | Middleware for handling multipart/form-data, used for uploading files | MIT |
neo4j-driver | Official Neo4j driver for JavaScript | Apache-2.0 |
nodemon | Simple monitor script for use during development of a Node.js app. | MIT |
sanitize-filename | Sanitize a string to be safe for use as a filename | WTFPL, ISC |