Contributors mailing list archives
contributors@odoo-community.org
Browse archives
Re: use "%d" in nginx with "dbfilter_from_header" module
Re: use "%d" in nginx with "dbfilter_from_header" module
Re: use "%d" in nginx with "dbfilter_from_header" module
by
Coop IT Easy SC agréée, Rémy Taymans
Dear Yves,
The value of the header X-Odoo-dbfilter should be a regular expression matching your database name. (https://github.com/OCA/server-tools/blob/13.0/dbfilter_from_header/override.py#L20)
The match performed by Odoo using the regular expression given in the dbfilter header ignore the url you are using for accessing the odoo instance.
Considering that the database is named according to the subdomain, the following nginx config should work :
server_name foo.example.org;
...
proxy_set_header X-Odoo-dbfilter foo;
This will match any database that *begins* with `foo`.
If the server_name of your nginx configuration file consist of something like :
server_name *.example.org;
Then you should consider using a regular expression as a server_name value. With this regular expression, extract the subdomain in a variable that can be used as a value for the proxy header.
server_name ~^(?<database>.+)\.example\.org$;
...
proxy_set_header X-Odoo-dbfilter $database;
To get more info about regular expression in nginx configuration file, see : http://nginx.org/en/docs/http/server_names.html#regex_names
I have not tested the code given in this email, so use it with caution. :)
Regards,
--
Rémy Taymans @ Coop IT Easy
+32 493 02 69 85 - <https://github.com/coopiteasy>
<https://coopiteasy.be>
Quoting Yves Goldberg (2020-12-31 11:02:05)
> hi all,
> How may I pass the equivalent of "dbfilter = *^%d.**" (odoo conf file option) to a nginx proxy_set_header for dbfilter (using module dbfilter_from_header [1] (odoo 13)?
> I tried to use "<subdomain>" or $subdomain in my expression but It doesn't get substituted before being sent to odoo.
> i.e. unsuccessfully tried:
> proxy_set_header X-Odoo-dbfilter \b(?<subdomain>.*)\b\S+;
> proxy_set_header X-Odoo-dbfilter \b(?\<subdomain\>.*)\b\S+; proxy_set_header X-Odoo-dbfilter \b(?\$subdomain.*)\b\S+; proxy_set_header X-Odoo-dbfilter ^%d.*;
>
> anyone can help?
> the use case is that I would like to set this dbfilter for only some defined range of subdomains.
> TIA
>
> -- Yves Goldberg* o doo * | Official Partner - OCA delegate Open Source ERP, CRM & CMS Chat with me [2] T +972 (3) 720 8818* M +972 (55) 966 1405 T +32 (2) 588 2500 None [3] www.ygol.com None [4] None [5] None [6] None [7] --
Reference
-
use "%d" in nginx with "dbfilter_from_header" module
byYgol InternetWork, Yves Goldberg-
Re: use "%d" in nginx with "dbfilter_from_header" module
byYgol InternetWork, Yves Goldberg -
Re: use "%d" in nginx with "dbfilter_from_header" module
byCoop IT Easy SC agréée, Rémy Taymans -
Re: use "%d" in nginx with "dbfilter_from_header" module
byYgol InternetWork, Yves Goldberg -
Re: use "%d" in nginx with "dbfilter_from_header" module
byNUMIGI Solutions Inc., Bruno Joliveau. -
Re: use "%d" in nginx with "dbfilter_from_header" module
byNUMIGI Solutions Inc., Bruno Joliveau.
-