Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0] [MIG] server_environment #122

Merged
merged 93 commits into from
Oct 19, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
eef2fd0
[ADD] server evironment file + sample
jgrandguillaume Oct 12, 2011
abc54c0
[FIX] openerp\assert_exit_level does not exist ! in server_environment
nbessi Nov 4, 2011
ea4f814
[FIX] typo
nbessi Jan 18, 2012
b6b0cf7
[FIX] drop the hack for the GTK client, because for 6.1 the web clien…
florentx Mar 5, 2012
9ae7c04
[MRG] from upstream
Mar 5, 2012
3b78e4c
[MRG] Fix by florent.x on server_environment: drop the hack for the G…
Oct 23, 2012
404221d
[7.0] mark all unported modules as not installable
gurneyalex Jan 18, 2013
a6c881d
[7.0] 1st pass at porting server_environment
gurneyalex Jan 18, 2013
7bee5b4
Generate .pot files
Mar 14, 2014
5f193ed
[PEP8] server_environment
yvaucher Jul 11, 2014
11f44ef
move all modules to __unported__ on master branch and set installable…
sbidoul Jul 12, 2014
7b76f57
Moving server environment module and sample module
nbessi Sep 9, 2014
f40e5b8
Port server environment to version 8.0
nbessi Sep 9, 2014
f8d99d1
[FIX] travis
hbrunn Dec 8, 2014
6df6e3d
capture stderr as well as stdout when diagnosing
lepistone Feb 5, 2015
1cd1301
Add license key in __openerp__.py
yvaucher Feb 6, 2015
3dd696d
fix pep8 W503
gurneyalex Feb 16, 2015
1fb0af3
Add OCA as author of OCA addons
gurneyalex Mar 2, 2015
7af9d40
Add missing default oca icons
yvaucher Aug 18, 2015
02ce077
[FIX] unconfigured server_environment doesn't play
hbrunn Aug 18, 2015
dccc026
remove deprecated checks list
lepistone Aug 31, 2015
8f4e9c6
[UPD] prefix versions with 8.0
sbidoul Oct 9, 2015
c30ac9a
[MIG] Make modules uninstallable
pedrobaeza Oct 14, 2015
b2d2933
9.0 migration of server_environment
gurneyalex Jan 21, 2016
3e47b83
[IMP] load server environment options from odoo rcfile too (#556)
sbidoul Sep 26, 2016
c80d295
[MIG] Make modules uninstallable
pedrobaeza Oct 6, 2016
8136bdf
[MIG] Rename manifest files
pedrobaeza Oct 6, 2016
bd44c2c
Migration of server_environment to 10.0
adrienpeiffer Nov 7, 2016
968d9d3
[MIG] server_environment: Migration to 11.0
TDu Nov 13, 2017
c1f7a19
[FIX] bug on view by changing generated table field name
TDu Nov 17, 2017
15aeb3b
OCA Transbot updated translations from Transifex
oca-transbot Oct 5, 2015
f6d4ba0
server_environment: bump version
sbidoul Mar 30, 2018
b4ff859
[REF] Server Environment: remove dependency on server_environement_files
ThomasBinsfeld Jun 4, 2018
04f1d2f
remove obsolete .pot files [ci skip]
sbidoul Jun 15, 2018
fee58c7
Add SERVER_ENV_CONFIG to configure vars from env. variable
guewen Jul 19, 2018
c7a09c0
[REF] Server Environment: restrict access to server config to allowed…
ThomasBinsfeld Oct 8, 2018
8e5b7e9
[MIG] server_environment from 11 to 12
sbidoul Nov 5, 2018
7027082
[UPD] README.rst
OCA-git-bot Nov 15, 2018
1751cef
[UPD] Update server_environment.pot
oca-travis Nov 15, 2018
c45f3c9
[ADD] icon.png
OCA-git-bot Apr 3, 2019
17ce1f5
[UPD] README.rst
OCA-git-bot Jul 29, 2019
f5a1d4e
[MIG] server_environment: Migration to 13.0
grindtildeath Oct 9, 2019
288ef1c
Rename file to attend TODO comment
grindtildeath Oct 10, 2019
8596cff
[UPD] Update server_environment.pot
oca-travis Oct 11, 2019
d93bdf1
[UPD] README.rst
OCA-git-bot Oct 11, 2019
4013298
pre-commit, black, isort
sbidoul Oct 12, 2019
f2635e8
server_environment: lint fixes after migration
grindtildeath Oct 22, 2019
d1a9ffc
server-environment: Run pre-commit
grindtildeath Oct 23, 2019
6ee2098
pre-commit, black, isort
sbidoul Nov 12, 2019
3ca4f48
server_environment 13.0.2.0.1
OCA-git-bot Dec 16, 2019
00704d8
Update translation files
oca-transbot Dec 16, 2019
75620df
[13.0][FIX] server_environment: Change import for Serialized field
rousseldenis Dec 19, 2019
136dc74
server_environment 13.0.2.1.0
OCA-git-bot Dec 20, 2019
4e8545c
Store the 'server.config' fields in sparse fields
guewen Dec 3, 2019
873ec84
[UPD] Update server_environment.pot
oca-travis Jan 16, 2020
a9bda70
server_environment 13.0.2.2.0
OCA-git-bot Jan 16, 2020
b867310
Update translation files
oca-transbot Jan 16, 2020
f260cca
server_environment: Improve tests.common to allow redefinition of ser…
grindtildeath Feb 13, 2020
e293962
[UPD] Update server_environment.pot
oca-travis Feb 13, 2020
52ea45d
Update translation files
oca-transbot Feb 13, 2020
45ffa60
pre-commit update
OCA-git-bot Mar 14, 2020
aab6427
server_environment: running_env default to `test` (fix #44)
simahawk Apr 1, 2020
751f670
[UPD] README.rst
OCA-git-bot Apr 10, 2020
42770eb
Fix server_environment version
simahawk Jul 3, 2020
ed4058e
Add mixin for tech name
simahawk Jul 15, 2020
35a0f26
[UPD] Update server_environment.pot
oca-travis Jul 23, 2020
ebecd3e
[UPD] README.rst
OCA-git-bot Jul 23, 2020
394697e
server_environment 13.0.2.3.0
OCA-git-bot Jul 23, 2020
f869521
Update translation files
oca-transbot Jul 23, 2020
cdb9ec2
Update server_environment/serv_config.py
oscarolar Sep 22, 2020
2779fa0
server_environment 13.0.2.3.1
OCA-git-bot Oct 4, 2020
1409364
[IMP] : black, isort, prettier
mourad-ehm Oct 12, 2020
7a2db77
[MIG] server_environment: Migration to 14.0
mourad-ehm Oct 12, 2020
b2ebffc
[UPD] Update server_environment.pot
oca-travis Oct 16, 2020
23a3ec9
[UPD] README.rst
OCA-git-bot Oct 16, 2020
ff5f415
[IMP] update dotfiles [ci skip]
OCA-git-bot Nov 1, 2020
5b742dd
Translated using Weblate (French)
sbidoul Dec 13, 2020
03bdee3
Translated using Weblate (Spanish)
Mat-moran Feb 11, 2021
ef50f9f
[UPD] Change LICENSE to LGPL
ivantodorovich Jul 6, 2021
21dff06
[MIG] server_environment: migration to 15.0
JuMiSanAr Oct 18, 2021
71a8410
[UPD] Update server_environment.pot
Oct 22, 2021
d8978df
[UPD] README.rst
OCA-git-bot Oct 22, 2021
9f3d1fe
[FIX] Update server_env_mixin.py to avoid NoneType error
JuMiSanAr Oct 27, 2021
4e1d92a
server_environment 15.0.1.0.1
OCA-git-bot Oct 27, 2021
abca930
15.0 server_environment is Production/Stable
gurneyalex Dec 2, 2021
6938751
[UPD] README.rst
OCA-git-bot Dec 2, 2021
1b175a2
server_environment 15.0.1.1.0
OCA-git-bot Dec 2, 2021
e6e8d93
server_environment: Update default fields label
adrienpeiffer Mar 18, 2022
53c73bc
server_environment 15.0.1.1.1
OCA-git-bot Mar 28, 2022
961cf7e
[IMP] server_environment: black, isort, prettier
FrancoMaxime Sep 1, 2022
b63ea4b
[MIG] server_environment: Migration to 16.0
FrancoMaxime Sep 1, 2022
3b7ee2a
Remove required from tech_name mixin
guewen Jan 14, 2021
2482923
server_environment: do not copy tech_name
simahawk May 10, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
250 changes: 250 additions & 0 deletions server_environment/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
======================================
server configuration environment files
======================================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--env-lightgray.png?logo=github
:target: https://github.com/OCA/server-env/tree/15.0/server_environment
:alt: OCA/server-env
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-env-15-0/server-env-15-0-server_environment
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/254/15.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

This module provides a way to define an environment in the main Odoo
configuration file and to read some configurations from files
depending on the configured environment: you define the environment in
the main configuration file, and the values for the various possible
environments are stored in the ``server_environment_files`` companion
module.

The ``server_environment_files`` module is optional, the values can be set using
an environment variable with a fallback on default values in the database.

The configuration read from the files are visible under the Configuration
menu. If you are not in the 'dev' environment you will not be able to
see the values contained in the defined secret keys
(by default : '*passw*', '*key*', '*secret*' and '*token*').

**Table of contents**

.. contents::
:local:

Installation
============

By itself, this module does little. See for instance the
``mail_environment`` addon which depends on this one to allow configuring
the incoming and outgoing mail servers depending on the environment.

You can store your configuration values in a companion module called
``server_environment_files``. You can copy and customize the provided
``server_environment_files_sample`` module for this purpose. Alternatively, you
can provide them in environment variables ``SERVER_ENV_CONFIG`` and
``SERVER_ENV_CONFIG_SECRET``.

Configuration
=============

To configure this module, you need to edit the main configuration file
of your instance, and add a directive called ``running_env``. Commonly
used values are 'dev', 'test', 'production'::

[options]
running_env=dev

Values associated to keys containing 'passw' are only displayed in the 'dev'
environment.

If you don't provide any value, `test` is used as a safe default.

You have several possibilities to set configuration values:

server_environment_files
~~~~~~~~~~~~~~~~~~~~~~~~

You can edit the settings you need in the ``server_environment_files`` addon. The
``server_environment_files_sample`` can be used as an example:

* values common to all / most environments can be stored in the
``default/`` directory using the .ini file syntax;
* each environment you need to define is stored in its own directory
and can override or extend default values;
* you can override or extend values in the main configuration
file of your instance;

Environment variable
~~~~~~~~~~~~~~~~~~~~

You can define configuration in the environment variable ``SERVER_ENV_CONFIG``
and/or ``SERVER_ENV_CONFIG_SECRET``. The 2 variables are handled the exact same
way, this is only a convenience for the deployment where you can isolate the
secrets in a different, encrypted, file. They are multi-line environment variables
in the same configparser format than the files.
If you used options in ``server_environment_files``, the options set in the
environment variable override them.

The options in the environment variable are not dependent of ``running_env``,
the content of the variable must be set accordingly to the running environment.

Example of setup:

A public file, containing that will contain public variables::

# These variables are not odoo standard variables,
# they are there to represent what your file could look like
export WORKERS='8'
export MAX_CRON_THREADS='1'
export LOG_LEVEL=info
export LOG_HANDLER=":INFO"
export DB_MAXCONN=5

# server environment options
export SERVER_ENV_CONFIG="
[storage_backend.my_sftp]
sftp_server=10.10.10.10
sftp_login=foo
sftp_port=22200
directory_path=Odoo
"

A second file which is encrypted and contains secrets::

# This variable is not an odoo standard variable,
# it is there to represent what your file could look like
export DB_PASSWORD='xxxxxxxxx'
# server environment options
export SERVER_ENV_CONFIG_SECRET="
[storage_backend.my_sftp]
sftp_password=xxxxxxxxx
"

**WARNING**

`my_sftp` must match the name of the record.
If you want something more reliable use `server.env.techname.mixin`
and use `tech_name` field to reference records.
See "USAGE".


Default values
~~~~~~~~~~~~~~

When using the ``server.env.mixin`` mixin, for each env-computed field, a
companion field ``<field>_env_default`` is created. This field is not
environment-dependent. It's a fallback value used when no key is set in
configuration files / environment variable.

When the default field is used, the field is made editable on Odoo.

Note: empty environment keys always take precedence over default fields


Server environment integration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Read the documentation of the class `models/server_env_mixin.py
<models/server_env_mixin.py>`_.

Usage
=====

You can include a mixin in your model and configure the env-computed fields
by an override of ``_server_env_fields``.

::

class StorageBackend(models.Model):
_name = "storage.backend"
_inherit = ["storage.backend", "server.env.mixin"]

@property
def _server_env_fields(self):
return {"directory_path": {}}

Read the documentation of the class and methods in `models/server_env_mixin.py
<models/server_env_mixin.py>`__.


If you want to have a technical name to reference::

class StorageBackend(models.Model):
_name = "storage.backend"
_inherit = ["storage.backend", "server.env.techname.mixin", "server.env.mixin"]

[...]

Known issues / Roadmap
======================

* it is not possible to set the environment from the command line. A
configuration file must be used.
* the module does not allow to set low level attributes such as database server, etc.
* `server.env.techname.mixin`'s `tech_name` field could leverage the new option
for computable / writable fields and get rid of some onchange / read / write code.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-env/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-env/issues/new?body=module:%20server_environment%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* Camptocamp

Contributors
~~~~~~~~~~~~

* Florent Xicluna (Wingo) <florent.xicluna@gmail.com>
* Nicolas Bessi <nicolas.bessi@camptocamp.com>
* Alexandre Fayolle <alexandre.fayolle@camptocamp.com>
* Daniel Reis <dgreis@sapo.pt>
* Holger Brunn <hbrunn@therp.nl>
* Leonardo Pistone <leonardo.pistone@camptocamp.com>
* Adrien Peiffer <adrien.peiffer@acsone.com>
* Thierry Ducrest <thierry.ducrest@camptocamp.com>
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
* Thomas Binfeld <thomas.binsfeld@acsone.eu>
* Stéphane Bidoul <stefane.bidoul@acsone.com>
* Simone Orsi <simahawk@gmail.com>

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/server-env <https://github.com/OCA/server-env/tree/15.0/server_environment>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions server_environment/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import models
from . import server_env
from .server_env import serv_config, setboolean
21 changes: 21 additions & 0 deletions server_environment/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright Wingo SA
# Copyright 2018 Camptocamp (https://www.camptocamp.com).
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html)

{
"name": "server configuration environment files",
"version": "16.0.1.0.0",
"depends": ["base", "base_sparse_field"],
"author": "Camptocamp,Odoo Community Association (OCA)",
"summary": "move some configurations out of the database",
"website": "https://github.com/OCA/server-env",
"license": "LGPL-3",
"development_status": "Production/Stable",
"category": "Tools",
"data": [
"security/ir.model.access.csv",
"security/res_groups.xml",
"serv_config.xml",
],
"installable": True,
}
Loading