time-link / timelink-py

Timelink Python Package
MIT License
3 stars 0 forks source link

Create representation of "projects" #32

Open joaquimrcarvalho opened 9 months ago

joaquimrcarvalho commented 9 months ago

A project is a set of sources and an associated database

From the point of view of timelink library a project corresponds to a kleioserver instance and a database connection to a timelink database, with specific parameter A KleioServer url (http://useer:token@localhost:8088/path_to_kleio_home) and database is a SqlAlchemy database.

Sources and database files are normally stored locally in timeline-home/projects/*

Each project has a standard directory layout, which will be made available in a GitHub repository.

From the contents of the project directory timelink can infer the name of the project (the name of the directory), the kleio-server home (the project directory), and the database name (same as the directory, sanitized).

The timelink enforces different user levels related to projects.

The privileges are:

  1. Users
    1. Create delete users
    2. Associate users with projects and set privileges
  2. Sources
    1. Translate
    2. Upload
    3. Delete
    4. Browse
  3. Database
    1. Import
    2. Identify
    3. Define groups
    4. Comment
    5. Browse

The levels are: Admin

  1. All Editor
  2. Sources and database Colaborador
  3. Database: identify and comment Guest
  4. Sources browse
  5. Database browse

We manage this with user properties

project.NAME Project.NAME.role.admin

Projects need to be managed separately. For each project

This is read from timelink-home/system/local/conf/projects-settings and managed by timelink app.

Additionally a project can contain ./conf/project-settings and these will update the local settings.