A small Python framework meant to easily create programs with unified CLI and API.
Find a file
2014-04-01 14:43:43 +02:00
bin Move src/moulinette to the root 2014-03-26 01:50:14 +01:00
data Update and review yunohost.domain 2014-03-30 03:05:21 +02:00
doc Add json spec generator 2013-07-02 22:02:26 +02:00
lib yunohost.domain: Fix domain removing if app has no 'domain' setting 2014-04-01 14:43:43 +02:00
moulinette Update LDAP search operation 2014-03-27 02:59:40 +01:00
.gitignore Warn about non-reviewed yunohost package and clean up 2014-03-25 18:56:51 +01:00
generate_api_doc.py Refactor moulinette versioning 2013-12-19 02:48:08 +01:00
generate_function_doc.py Regenerate function doc 2013-07-06 10:17:16 +02:00
LICENSE Init 2012-10-06 16:22:15 +02:00
README.md Update README.md 2014-03-26 01:54:44 +01:00

Moulinette

The moulinette is a Python package that allows to quickly and easily deploy an application for different interfaces.

Overview

Initially, the moulinette was an application made for the YunoHost project in order to regroup all its related operations into a single program called moulinette. Those operations were available from a command-line interface and a Web server providing an API. Moreover, the usage of these operations (e.g. required/optional arguments) was defined into a simple yaml file - called actionsmap. This file was parsed in order to construct an ArgumentParser object and to parse the command arguments to process the proper operation.

During a long refactoring with the goal of unify both interfaces, the idea to separate the core of the YunoHost operations has emerged. The core kept the same name moulinette and try to follow the same initial principle. An Actions Map - which defines available operations and their usage - is parsed and it's used to process an operation from several unified Interfaces. It also supports a configuration mechanism - which allows to restrict an operation on an interface for example (see Authenticators).

Actions Map

...

Interfaces

...

Authenticators

...

Requirements

  • Python 2.7
  • python-bottle (>= 0.10)
  • python-gnupg (>= 0.3)
  • python-ldap (>= 2.4)