Our goal is to implement an external document management service to hold and provide uploaded documents. Documents can be uploaded and, depending on user access, managed by internal as well as external users.
The goal is NOT to re implement a complex DMS but rather to have a simple and user-friendly way of managing documents with different permissions.
All User Interface interactions should be as simple as possible and easily understandable.
Original RFC that led to alexandria
Requirements
- docker
- docker-compose
After installing and configuring those, download docker-compose.yml and run the following command:
docker-compose up -d
You can now access the api at http://localhost:8000/api/v1/.
To load a set of categories run the following command:
make load_example_data
Document Merge Service is a 12factor app which means that configuration is stored in environment variables. Different environment variable types are explained at django-environ.
A list of configuration options which you need
- Django configuration
SECRET_KEY
: A secret key used for cryptography. This needs to be a random string of a certain length. See more.ALLOWED_HOSTS
: A list of hosts/domains your service will be served from. See more.DATABASE_ENGINE
: Database backend to use. See more. (default: django.db.backends.postgresql)DATABASE_HOST
: Host to use when connecting to database (default: localhost)DATABASE_PORT
: Port to use when connecting to database (default: 5432)DATABASE_NAME
: Name of database to use (default: alexandria)DATABASE_USER
: Username to use when connecting to the database (default: alexandria)DATABASE_PASSWORD
: Password to use when connecting to database
- Authentication configuration
OIDC_OP_USER_ENDPOINT
: Userinfo endpoint for OIDCOIDC_VERIFY_SSL
: Set tofalse
if you want to disable verifying SSL certs. Useful for development
- Authorization configurations
VISIBILITY_CLASSES
: Comma-separated list of classes that define visibility for all modelsPERMISSION_CLASSES
Comma-separated list of classes that define permissions for all models
For development, you can also set the following environemnt variables to help you:
DEV_AUTH_BACKEND
: Set this to "true" to enable a fake auth backend that simulates an authenticated user. RequiresDEBUG
to be set toTrue
as well.DEBUG
: Set this to true for debugging during development. Never enable this in production, as it will leak information to the public if you do.
Look at our contributing guidelines to start with your first contribution.