diff --git a/README.md b/README.md index 46458e2d..4be507df 100644 --- a/README.md +++ b/README.md @@ -1,567 +1,95 @@ -- [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md) -- [[tutorial v1.1_105] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_105/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_105~1..v1.1_105)) +# Description -# [tutorial v1.1_110)] xxx +This tutorial shows to you an example of Rougail use on how to set a proxy in the Mozilla Firefox browser. -[View the diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_110~1..v1.1_110) +More precisely, this tutorial aims at reproducing this [Mozilla Firefox](https://www.mozilla.org/firefox/new/) settings page: +![Firefox Proxy setting](firefox.png) -## Screenshot +And the integration of part of the [Firefox FoxyProxy plugin](https://addons.mozilla.org/firefox/addon/foxyproxy-standard/). +The idea is to have a namespace specific to FoxyProxy and to find in it part of the settings that we will have made in the main namespace. -Firefox Proxy setting +This is what the page looks like: +![Foxyproxy Proxy setting](foxyproxy.png) -## Structure - - -### firefox/00-proxy.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -proxy_mode: - description: Configure Proxy Access to the Internet - choices: - - No proxy - - Auto-detect proxy settings for this network - - Use system proxy settings - - Manual proxy configuration - - Automatic proxy configuration URL - default: No proxy -... +# Installation +```bash +# git clone -b 1.1 https://forge.cloud.silique.fr/stove/rougail-tutorials.git +# cd rougail-tutorials +# python -m venv rougail +# . rougail/bin/activate +# pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-data-file ``` -### firefox/10-manual.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -manual: - description: Manual proxy configuration - disabled: - variable: _.proxy_mode - when_not: Manual proxy configuration - - http_proxy: # HTTP Proxy - - address: - description: HTTP address - type: domainname - params: - allow_ip: true - - port: - description: HTTP Port - type: port - default: 8080 -... - -``` -### firefox/20-manual.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -manual: - - use_for_https: true # Also use this proxy for HTTPS - - '{{ identifier }}_proxy': - description: '{{ identifier }} Proxy' - hidden: - jinja: |- - {% if my_identifier == 'HTTPS' and _.use_for_https %} - HTTPS is same has HTTP - {% endif %} - description: in HTTPS case if "_.use_for_https" is set to True - params: - my_identifier: - type: identifier - dynamic: - - HTTPS - - SOCKS - - address: - description: '{{ identifier }} address' - default: - variable: __.http_proxy.address - - port: - description: '{{ identifier }} port' - default: - variable: __.http_proxy.port - - version: - description: SOCKS host version used by proxy - choices: - - v4 - - v5 - default: v5 - disabled: - type: identifier - when: HTTPS -... - -``` -### firefox/30-auto.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -auto: - description: Automatic proxy configuration URL - type: web_address - disabled: - variable: _.proxy_mode - when_not: Automatic proxy configuration URL -... - -``` -### firefox/40-no_proxy.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -no_proxy: - description: Address for which proxy will be desactivated - help: Connections to localhost, 127.0.0.1/8 and ::1 are never proxied - examples: - - .mozilla.org - - .net.nz - - 192.168.1.0/24 - type: domainname - params: - allow_ip: true - allow_cidr_network: true - allow_without_dot: true - allow_startswith_dot: true - multi: true - mandatory: false - disabled: - variable: _.proxy_mode - when: No proxy -... - -``` -### firefox/50-prompt_authentication.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -prompt_authentication: - description: Prompt for authentication if password is saved - default: true - disabled: - variable: _.proxy_mode - when: No proxy -... - -``` -### firefox/55-proxy_dns_socks5.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -proxy_dns_socks5: - description: Use proxy DNS when using SOCKS v5 - mode: advanced - default: false - disabled: - jinja: |- - {% if _.manual.socks_proxy.version is propertyerror %} - the proxy mode is not manual - {% elif _.manual.socks_proxy.version == 'v4' %} - socks version is v4 - {% endif %} - description: |- - if "firefox.proxy_mode" is not "Manual proxy configuration" - or "firefox.manual.socks_proxy.version" is "v4" -... - -``` -### firefox/60-dns_over_https.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -dns_over_https: # DNS over HTTPS - - enable_dns_over_https: false # Enable DNS over HTTPS - - provider: - description: Use Provider - choices: - - Cloudflare - - NextDNS - - Custom - default: Cloudflare - disabled: - variable: _.enable_dns_over_https - when: false - - custom_dns_url: - description: Custom DNS URL - type: web_address - validators: - - jinja: |- - {% if dns_over_https.custom_dns_url.startswith('http://') %} - only https is allowed - {% endif %} - description: must starts with 'https://' only - disabled: - jinja: |- - {% if _.provider is propertyerror or _.provider != 'Custom' %} - provider is not custom - {% endif %} - description: if "_.provider" is not "Custom" -... - -``` -### firefox/empty.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 -... - -``` -### foxyproxy/00-foxyproxy.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -proxies: - description: Proxy configuration - _type: leadership - - title: - description: Title or Description - mandatory: false - - type: - description: Proxy Type - choices: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - PAC URL - - WPAD - - System (use system settings) - - Direct (no proxy) - default: Direct (no proxy) - - color: - description: Color - regexp: ^#(?:[0-9a-f]{3}){1,2}$ - default: - jinja: >- - # - - {%- for i in range(6) -%} - {{- '0123456789abcdef' | random -}} - {%- endfor -%} - description: random color value - auto_save: true - - address: - description: IP address, DNS name, server name - type: domainname - params: - allow_ip: true - allow_without_dot: true - default: - jinja: >- - {% if firefox.manual.http_proxy.address is not propertyerror %} - {{ firefox.manual.http_proxy.address }} - {% endif %} - description: copy HTTP address if proxy is not "Manual" - disabled: - jinja: |- - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: |- - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - port: - description: Port - type: port - default: - jinja: >- - {% if firefox.manual.http_proxy.port is not propertyerror %} - {{ firefox.manual.http_proxy.port }} - {% endif %} - description: copy HTTP port if proxy is not "Manual" - disabled: - jinja: |- - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: |- - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - username: - description: Username - type: unix_user - mandatory: - jinja: |- - {% if _.password is not propertyerror and _.password %} - username is mandatory - {% endif %} - description: if a password is set - disabled: - jinja: |- - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: |- - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - password: - description: Password - type: secret - mandatory: false - disabled: - jinja: |- - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: |- - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - url: - description: URL - type: web_address - default: - jinja: >- - {% if firefox.auto is not propertyerror %} - {{ firefox.auto }} - {% endif %} - description: copy HTTP address if proxy is "Auto" - disabled: - jinja: |- - {% if _.type not in ['PAC URL', 'WPAD'] %} - proxy does not need url - {% endif %} - description: |- - if type is not in: - - PAC URL - - WPAD -... - -``` -### foxyproxy/10-redefine.yml - - -```yml -%YAML 1.2 ---- -version: 1.1 - -proxies: - - username: - redefine: true - mandatory: false - - password: - redefine: true - hidden: - jinja: |- - {% if not _.username %} - no username defined - {% endif %} - description: if username is not defined -... - -``` -### Let's generate the documentation - -```console -foo@bar:~$ git switch --detach v1.1_110 -foo@bar:~$ rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --modes_level basic standard advanced -o doc -``` -#### Variables for "Firefox" - -**firefox** - -`basic` - -| Variable                                                                                                   | Description                                                                                                | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **firefox.proxy_mode**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Configure Proxy Access to the Internet.
**Choices**:
- No proxy **← (default)**
- Auto-detect proxy settings for this network
- Use system proxy settings
- Manual proxy configuration
- Automatic proxy configuration URL | - -##### Manual proxy configuration - -**firefox.manual** - -`basic` *`disabled`* - -**Disabled**: when the variable "firefox.proxy_mode" hasn't the value "Manual proxy configuration" - -###### HTTP Proxy - -**firefox.manual.http_proxy** - -`basic` - -| Variable                                                                                                    | Description                                                                                                 | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **firefox.manual.http_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` | HTTP address.
**Validator**: the domain name can be an IP | -| **firefox.manual.http_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | HTTP Port.
**Validators**:
- well-known ports (1 to 1023) are allowed
- registred ports (1024 to 49151) are allowed
- private ports (greater than 49152) are allowed
**Default**: 8080 | - -| Variable                                                                                                    | Description                                                                                                 | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **firefox.manual.use_for_https**
[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Also use this proxy for HTTPS.
**Default**: true | - -###### *HTTPS* Proxy or *SOCKS* Proxy - -This family builds families dynamically - -**firefox.manual.*https*_proxy**
**firefox.manual.*socks*_proxy** - -`standard` *`hidden`* - -**Hidden**: in HTTPS case if "_.use_for_https" is set to True - -**Identifiers**:
- HTTPS
- SOCKS - -| Variable                                                                                                                | Description                                                                                                             | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **firefox.manual.*https*_proxy.address**
**firefox.manual.*socks*_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | *HTTPS* or *SOCKS* address.
**Validator**: the domain name can be an IP
**Default**: the value of the variable "firefox.manual.http_proxy.address" | -| **firefox.manual.*https*_proxy.port**
**firefox.manual.*socks*_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | *HTTPS* or *SOCKS* port.
**Validators**:
- well-known ports (1 to 1023) are allowed
- registred ports (1024 to 49151) are allowed
- private ports (greater than 49152) are allowed
**Default**: the value of the variable "firefox.manual.http_proxy.port" | -| **firefox.manual.*https*_proxy.version**
**firefox.manual.*socks*_proxy.version**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | SOCKS host version used by proxy.
**Choices**:
- v4
- v5 **← (default)**
**Disabled**: when the identifier is "HTTPS" | - -| Variable                                                                                                                            | Description                                                                                                                         | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **firefox.auto**
[`web_address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` *`disabled`* | Automatic proxy configuration URL.
**Validator**: the domain name in web address can be only a hostname
**Disabled**: when the variable "firefox.proxy_mode" hasn't the value "Automatic proxy configuration URL" | -| **firefox.no_proxy**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`disabled`* `unique` `multiple` | Address for which proxy will be desactivated.
Connections to localhost, 127.0.0.1/8 and ::1 are never proxied.
**Validators**:
- the domain name can starts by a dot
- the domain name can be a hostname
- the domain name can be an IP
- the domain name can be network in CIDR format
**Examples**:
- .mozilla.org
- .net.nz
- 192.168.1.0/24
**Disabled**: when the variable "firefox.proxy_mode" has the value "No proxy" | -| **firefox.prompt_authentication**
[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | Prompt for authentication if password is saved.
**Default**: true
**Disabled**: when the variable "firefox.proxy_mode" has the value "No proxy" | -| **firefox.proxy_dns_socks5**
[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `advanced` `mandatory` *`disabled`* | Use proxy DNS when using SOCKS v5.
**Default**: false
**Disabled**: if "firefox.proxy_mode" is not "Manual proxy configuration" -or "firefox.manual.socks_proxy.version" is "v4" | - -##### DNS over HTTPS - -**firefox.dns_over_https** - -`basic` - -| Variable                                                                                                                            | Description                                                                                                                         | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **firefox.dns_over_https.enable_dns_over_https**
[`boolean`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Enable DNS over HTTPS.
**Default**: false | -| **firefox.dns_over_https.provider**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | Use Provider.
**Choices**:
- Cloudflare **← (default)**
- NextDNS
- Custom
**Disabled**: when the variable "firefox.dns_over_https.enable_dns_over_https" has the value "false" | -| **firefox.dns_over_https.custom_dns_url**
[`web_address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` *`disabled`* | Custom DNS URL.
**Validators**:
- the domain name in web address can be only a hostname
- must starts with 'https://' only
**Disabled**: if "_.provider" is not "Custom" | - -#### Variables for "FoxyProxy" - -**foxyproxy** - -`basic` - -##### Proxy configuration - -This family contains lists of variable blocks - -**foxyproxy.proxies** - -`basic` - -| Variable                                                                                                                            | Description                                                                                                                         | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **foxyproxy.proxies.title**
[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `unique` `multiple` | Title or Description. | -| **foxyproxy.proxies.type**
[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Proxy Type.
**Choices**:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
- PAC URL
- WPAD
- System (use system settings)
- Direct (no proxy) **← (default)** | -| **foxyproxy.proxies.color**
[`regexp`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `auto modified` | Color.
**Validator**: text based with regular expressions "^#(?:[0-9a-f]{3}){1,2}$"
**Default**: random color value | -| **foxyproxy.proxies.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | IP address, DNS name, server name.
**Validators**:
- the domain name can be a hostname
- the domain name can be an IP
**Default**: copy HTTP address if proxy is not "Manual"
**Disabled**: if type not in: -- HTTP -- HTTPS/SSL -- SOCKS4 -- SOCKS5 | -| **foxyproxy.proxies.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | Port.
**Validators**:
- well-known ports (1 to 1023) are allowed
- registred ports (1024 to 49151) are allowed
- private ports (greater than 49152) are allowed
**Default**: copy HTTP port if proxy is not "Manual"
**Disabled**: if type not in: -- HTTP -- HTTPS/SSL -- SOCKS4 -- SOCKS5 | -| **foxyproxy.proxies.username**
[`unix_user`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`disabled`* | Username.
**Disabled**: if type not in: -- HTTP -- HTTPS/SSL -- SOCKS4 -- SOCKS5 | -| **foxyproxy.proxies.password**
[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`hidden`* *`disabled`* | Password.
**Hidden**: if username is not defined
**Disabled**: if type not in: -- HTTP -- HTTPS/SSL -- SOCKS4 -- SOCKS5 | -| **foxyproxy.proxies.url**
[`web_address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | URL.
**Validator**: the domain name in web address can be only a hostname
**Default**: copy HTTP address if proxy is "Auto"
**Disabled**: if type is not in: -- PAC URL -- WPAD | - -### Let's generate the changelog - -```console -foo@bar:~$ git switch --detach v1.1_110 -foo@bar:~$ rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --modes_level basic standard advanced -o doc --doc.contents changelog -``` -#### Modified variables - -| Variable                                                                                                                          | Description                                                                                                                       | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **foxyproxy.proxies.color**
[`regexp`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `auto modified` | Color.
**Validator**: text based with regular expressions "^#(?:[0-9a-f]{3}){1,2}$"
**Default**: random color value | -| **foxyproxy.proxies.username**
~~`mandatory`~~ [`unix_user`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`disabled`* | Username.
**Mandatory**: ~~if a password is set~~
**Disabled**: if type not in: -- HTTP -- HTTPS/SSL -- SOCKS4 -- SOCKS5 | -| **foxyproxy.proxies.password**
[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`hidden`* *`disabled`* | Password.
**Hidden**: if username is not defined
**Disabled**: if type not in: -- HTTP -- HTTPS/SSL -- SOCKS4 -- SOCKS5 | +# Summary + +Each step is a separerate commit. You can navigate to history to discover different aspect to the Rougail format. + +- Getting started + - Making a structure file + - [[tutorial v1.1_000)] An empty structured file with format version](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_000/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_000~1..v1.1_000)) + - Let's create our first "variable" + - [[tutorial v1.1_001)] A first variable with only a name](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_001/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_001~1..v1.1_001)) + - [[tutorial v1.1_002)] Describe the variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_002/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_002~1..v1.1_002)) + - [[tutorial v1.1_003)] Set a default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_003/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_003~1..v1.1_003)) + - [[tutorial v1.1_004)] Limits the possible values for the variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_004/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_004~1..v1.1_004)) + - Group variables inside "families" + - [[tutorial v1.1_010)] Creating a new family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_010/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_010~1..v1.1_010)) + - [[tutorial v1.1_011)] Or a sub family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_011/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_011~1..v1.1_011)) + - [[tutorial v1.1_012)] Putting a variable inside of a family or a sub family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_012/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_012~1..v1.1_012)) +- Constrainte the value of a variable with it's type + - [[tutorial v1.1_020)] A variable with type "domainname"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_020/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_020~1..v1.1_020)) + - [[tutorial v1.1_021)] A variable with type's parameters](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_021/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_021~1..v1.1_021)) + - [[tutorial v1.1_022)] A variable with type "port"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_022/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_022~1..v1.1_022)) + - [[tutorial v1.1_023)] A variable with type "boolean"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_023/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_023~1..v1.1_023)) + - [[tutorial v1.1_024)] Copy HTTP manual proxy to HTTPS manual proxy](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_024/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_024~1..v1.1_024)) +- Define access to variable or family + - Disable a family + - [[tutorial v1.1_030)] A disabled family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_030/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_030~1..v1.1_030)) + - [[tutorial v1.1_031)] A conditional disabled family with a variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_031/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_031~1..v1.1_031)) + - Property: hidden + - [[tutorial v1.1_032)] An hidden family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_032/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_032~1..v1.1_032)) + - [[tutorial v1.1_033)] A conditional hidden family with a variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_033/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_033~1..v1.1_033)) +- Variable: calculated default value + - [[tutorial v1.1_040)] A calculated default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_040/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_040~1..v1.1_040)) + - [[tutorial v1.1_041)] Variable type and parameters type are copied with default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_041/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_041~1..v1.1_041)) +- SOCKS Manual mode + - Family: dynamic + - [[tutorial v1.1_050)] Family: a dynamic family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_050/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_050~1..v1.1_050)) + - Property: Jinja and identifier condition + - [[tutorial v1.1_051)] A conditional hidden family with Jinja](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_051/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_051~1..v1.1_051)) + - [[tutorial v1.1_052)] Jinja with a parameter](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_052/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_052~1..v1.1_052)) + - [[tutorial v1.1_053)] Jinja with a description](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_053/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_053~1..v1.1_053)) + - [[tutorial v1.1_054)] A conditional disabled variable with identifier](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_054/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_054~1..v1.1_054)) +- Automatic proxy + - [[tutorial v1.1_060)] A variable with type "web_address"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_060/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_060~1..v1.1_060)) + - [[tutorial v1.1_061)] A conditional disabled variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_061/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_061~1..v1.1_061)) +- Address for which proxy will be desactivated + - Variable: multi and non mandatory + - [[tutorial v1.1_070)] A variable with type "domainname", parameters type and disabled](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_070/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_070~1..v1.1_070)) + - [[tutorial v1.1_071)] A variable with multiple value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_071/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_071~1..v1.1_071)) + - [[tutorial v1.1_072)] A non mandatory variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_072/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_072~1..v1.1_072)) + - Variable: extra description + - [[tutorial v1.1_073)] Examples](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_073/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_073~1..v1.1_073)) + - [[tutorial v1.1_074)] Help](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_074/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_074~1..v1.1_074)) +- Prompt for authentication if password is saved + - [[tutorial v1.1_075)] A variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_075/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_075~1..v1.1_075)) +- Use proxy DNS when using SOCKS v5 + - [[tutorial v1.1_076)] A variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_076/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_076~1..v1.1_076)) + - [[tutorial v1.1_077)] Jinja calculation for an hidden variable with a potential inaccessible varible](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_077/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_077~1..v1.1_077)) + - [[tutorial v1.1_078)] A variable in avanced mode](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_078/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_078~1..v1.1_078)) +- DNS over HTTPS + - [[tutorial v1.1_080)] A boolean variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_080/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_080~1..v1.1_080)) + - [[tutorial v1.1_081)] A choice variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_081/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_081~1..v1.1_081)) + - [[tutorial v1.1_082)] A web_address variable ](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_082/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_082~1..v1.1_082)) + - [[tutorial v1.1_083)] A variable with custom validation](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_083/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_083~1..v1.1_083)) + - [[tutorial v1.1_100)] Namespace](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_100/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_100~1..v1.1_100)) + - [[tutorial v1.1_101)] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_101/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_101~1..v1.1_101)) + - [[tutorial v1.1_103)] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_103/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_103~1..v1.1_103)) + - [[tutorial v1.1_104)] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_104/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_104~1..v1.1_104)) + - [[tutorial v1.1_105)] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_105/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_105~1..v1.1_105)) + - [[tutorial v1.1_110)] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_110/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_110~1..v1.1_110)) diff --git a/firefox.png b/firefox.png index d368003e..050f837f 100644 Binary files a/firefox.png and b/firefox.png differ diff --git a/firefox/00-proxy.yml b/firefox/00-proxy.yml deleted file mode 100644 index 92b75f58..00000000 --- a/firefox/00-proxy.yml +++ /dev/null @@ -1,14 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -proxy_mode: - description: Configure Proxy Access to the Internet - choices: - - No proxy - - Auto-detect proxy settings for this network - - Use system proxy settings - - Manual proxy configuration - - Automatic proxy configuration URL - default: No proxy -... diff --git a/firefox/10-manual.yml b/firefox/10-manual.yml deleted file mode 100644 index 047ff8a3..00000000 --- a/firefox/10-manual.yml +++ /dev/null @@ -1,23 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -manual: - description: Manual proxy configuration - disabled: - variable: _.proxy_mode - when_not: Manual proxy configuration - - http_proxy: # HTTP Proxy - - address: - description: HTTP address - type: domainname - params: - allow_ip: true - - port: - description: HTTP Port - type: port - default: 8080 -... diff --git a/firefox/20-manual.yml b/firefox/20-manual.yml deleted file mode 100644 index 298db343..00000000 --- a/firefox/20-manual.yml +++ /dev/null @@ -1,43 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -manual: - - use_for_https: true # Also use this proxy for HTTPS - - '{{ identifier }}_proxy': - description: '{{ identifier }} Proxy' - hidden: - jinja: |- - {% if my_identifier == 'HTTPS' and _.use_for_https %} - HTTPS is same has HTTP - {% endif %} - description: in HTTPS case if "_.use_for_https" is set to True - params: - my_identifier: - type: identifier - dynamic: - - HTTPS - - SOCKS - - address: - description: '{{ identifier }} address' - default: - variable: __.http_proxy.address - - port: - description: '{{ identifier }} port' - default: - variable: __.http_proxy.port - - version: - description: SOCKS host version used by proxy - choices: - - v4 - - v5 - default: v5 - disabled: - type: identifier - when: HTTPS -... diff --git a/firefox/30-auto.yml b/firefox/30-auto.yml deleted file mode 100644 index 50961391..00000000 --- a/firefox/30-auto.yml +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -auto: - description: Automatic proxy configuration URL - type: web_address - disabled: - variable: _.proxy_mode - when_not: Automatic proxy configuration URL -... diff --git a/firefox/40-no_proxy.yml b/firefox/40-no_proxy.yml deleted file mode 100644 index 55a57242..00000000 --- a/firefox/40-no_proxy.yml +++ /dev/null @@ -1,23 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -no_proxy: - description: Address for which proxy will be desactivated - help: Connections to localhost, 127.0.0.1/8 and ::1 are never proxied - examples: - - .mozilla.org - - .net.nz - - 192.168.1.0/24 - type: domainname - params: - allow_ip: true - allow_cidr_network: true - allow_without_dot: true - allow_startswith_dot: true - multi: true - mandatory: false - disabled: - variable: _.proxy_mode - when: No proxy -... diff --git a/firefox/50-prompt_authentication.yml b/firefox/50-prompt_authentication.yml deleted file mode 100644 index 57a548e6..00000000 --- a/firefox/50-prompt_authentication.yml +++ /dev/null @@ -1,11 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -prompt_authentication: - description: Prompt for authentication if password is saved - default: true - disabled: - variable: _.proxy_mode - when: No proxy -... diff --git a/firefox/55-proxy_dns_socks5.yml b/firefox/55-proxy_dns_socks5.yml deleted file mode 100644 index 0f1a65f1..00000000 --- a/firefox/55-proxy_dns_socks5.yml +++ /dev/null @@ -1,19 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -proxy_dns_socks5: - description: Use proxy DNS when using SOCKS v5 - mode: advanced - default: false - disabled: - jinja: |- - {% if _.manual.socks_proxy.version is propertyerror %} - the proxy mode is not manual - {% elif _.manual.socks_proxy.version == 'v4' %} - socks version is v4 - {% endif %} - description: |- - if "firefox.proxy_mode" is not "Manual proxy configuration" - or "firefox.manual.socks_proxy.version" is "v4" -... diff --git a/firefox/60-dns_over_https.yml b/firefox/60-dns_over_https.yml deleted file mode 100644 index 3a57e006..00000000 --- a/firefox/60-dns_over_https.yml +++ /dev/null @@ -1,35 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -dns_over_https: # DNS over HTTPS - - enable_dns_over_https: false # Enable DNS over HTTPS - - provider: - description: Use Provider - choices: - - Cloudflare - - NextDNS - - Custom - default: Cloudflare - disabled: - variable: _.enable_dns_over_https - when: false - - custom_dns_url: - description: Custom DNS URL - type: web_address - validators: - - jinja: |- - {% if dns_over_https.custom_dns_url.startswith('http://') %} - only https is allowed - {% endif %} - description: must starts with 'https://' only - disabled: - jinja: |- - {% if _.provider is propertyerror or _.provider != 'Custom' %} - provider is not custom - {% endif %} - description: if "_.provider" is not "Custom" -... diff --git a/firefox/empty.yml b/firefox/empty.yml deleted file mode 100644 index 94a82bdc..00000000 --- a/firefox/empty.yml +++ /dev/null @@ -1,4 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 -... diff --git a/foxyproxy/00-foxyproxy.yml b/foxyproxy/00-foxyproxy.yml deleted file mode 100644 index d8cfaaaf..00000000 --- a/foxyproxy/00-foxyproxy.yml +++ /dev/null @@ -1,139 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -proxies: - description: Proxy configuration - _type: leadership - - title: - description: Title or Description - mandatory: false - - type: - description: Proxy Type - choices: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - PAC URL - - WPAD - - System (use system settings) - - Direct (no proxy) - default: Direct (no proxy) - - color: - description: Color - regexp: ^#(?:[0-9a-f]{3}){1,2}$ - default: - jinja: >- - # - - {%- for i in range(6) -%} - {{- '0123456789abcdef' | random -}} - {%- endfor -%} - description: random color value - auto_save: true - - address: - description: IP address, DNS name, server name - type: domainname - params: - allow_ip: true - allow_without_dot: true - default: - jinja: >- - {% if firefox.manual.http_proxy.address is not propertyerror %} - {{ firefox.manual.http_proxy.address }} - {% endif %} - description: copy HTTP address if proxy is not "Manual" - disabled: - jinja: |- - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: |- - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - port: - description: Port - type: port - default: - jinja: >- - {% if firefox.manual.http_proxy.port is not propertyerror %} - {{ firefox.manual.http_proxy.port }} - {% endif %} - description: copy HTTP port if proxy is not "Manual" - disabled: - jinja: |- - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: |- - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - username: - description: Username - type: unix_user - mandatory: - jinja: |- - {% if _.password is not propertyerror and _.password %} - username is mandatory - {% endif %} - description: if a password is set - disabled: - jinja: |- - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: |- - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - password: - description: Password - type: secret - mandatory: false - disabled: - jinja: |- - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: |- - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - - url: - description: URL - type: web_address - default: - jinja: >- - {% if firefox.auto is not propertyerror %} - {{ firefox.auto }} - {% endif %} - description: copy HTTP address if proxy is "Auto" - disabled: - jinja: |- - {% if _.type not in ['PAC URL', 'WPAD'] %} - proxy does not need url - {% endif %} - description: |- - if type is not in: - - PAC URL - - WPAD -... diff --git a/foxyproxy/10-redefine.yml b/foxyproxy/10-redefine.yml deleted file mode 100644 index aef4325b..00000000 --- a/foxyproxy/10-redefine.yml +++ /dev/null @@ -1,19 +0,0 @@ -%YAML 1.2 ---- -version: 1.1 - -proxies: - - username: - redefine: true - mandatory: false - - password: - redefine: true - hidden: - jinja: |- - {% if not _.username %} - no username defined - {% endif %} - description: if username is not defined -...