diff --git a/README.md b/README.md index 8766797..4a413b2 100644 --- a/README.md +++ b/README.md @@ -1,435 +1,108 @@ -- [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md) -- [[tutorial 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)) +# Description -# [tutorial 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 ---- -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 +# 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 ---- -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 ---- -manual: - - use_for_https: true # Also use this proxy for HTTPS - - "{{ identifier }}_proxy": - description: "{{ identifier }} Proxy" - dynamic: - - HTTPS - - SOCKS - hidden: - jinja: | - {% if my_identifier == 'HTTPS' and _.use_for_https %} - HTTPS is same has HTTP - {% endif %} - params: - my_identifier: - type: identifier - description: | - in HTTPS case if "manual.use_for_https" is set to True - - 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 ---- -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 ---- -no_proxy: - description: Address for which proxy will be desactivated - 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 - examples: - - .mozilla.org - - .net.nz - - 192.168.1.0/24 - help: Connections to localhost, 127.0.0.1/8 and ::1 are never proxied - -``` -### firefox/50-prompt_authentication.yml - - -```yml ---- -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 ---- -proxy_dns_socks5: - description: Use proxy DNS when using SOCKS v5 - default: false - mode: advanced - 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 ---- -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 - disabled: - jinja: | - {% if _.provider is propertyerror or _.provider != 'Custom' %} - provider is not custom - {% endif %} - description: if "dns_over_https.provider" is not "Custom" - validators: - - jinja: | - {% if dns_over_https.custom_dns_url.startswith('http://') %} - only https is allowed - {% endif %} - description: must starts with 'https://' only - -``` -### firefox/empty.yml - - -```yml - -``` -### foxyproxy/00-foxyproxy.yml - - -```yml ---- -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}$" - auto_save: true - default: - jinja: | - # - {%- for i in range(6) -%} - {{- '0123456789abcdef' | random -}} - {%- endfor -%} - description: random color value - - address: - description: IP address, DNS name, server name - type: domainname - params: - allow_ip: true - allow_without_dot: true - disabled: &needs_address - jinja: | - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: | - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - 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" - - 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: *needs_address - - 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: *needs_address - - password: - description: Password - type: secret - mandatory: false - disabled: *needs_address - - url: - description: URL - type: web_address - disabled: - jinja: | - {% if _.type not in ['PAC URL', 'WPAD'] %} - proxy does not need url - {% endif %} - description: | - if type is not in: - - PAC URL - - WPAD - default: - jinja: | - {% if firefox.auto is not propertyerror %} - {{ firefox.auto }} - {% endif %} - description: copy HTTP address if proxy is "Auto" - -``` -### foxyproxy/10-redefine.yml - - -```yml ---- -proxies: - username: - redefine: true - mandatory: false - - password: - redefine: true - hidden: - type: jinja - jinja: | - {% if not _.username %} - no username defined - {% endif %} - description: if username is not defined - -``` -### Generated documentation - -```console -foo@bar:~$ rougail -v 1.1 -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --modes_level basic standard advanced -o doc -do github -``` -### Variables for "firefox" - -| 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 - -`basic` _`disabled`_ - -**Disabled**: when the variable "firefox.proxy_mode" hasn't the value "Manual proxy configuration". - -##### 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.
**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" - -`standard` _`hidden`_ - -**Hidden**: in HTTPS case if "manual.use_for_https" is set to True. - - -This family builds families dynamically. - -**Identifiers**:
- HTTPS
- SOCKS - -| Variable                                                                                                                  | Description                                                                                                               | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **firefox.manual.https_proxy.address** or **firefox.manual.socks_proxy.address**
[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | "*HTTPS* address" 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** or **firefox.manual.socks_proxy.port**
[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | "*HTTPS* port" or "*SOCKS* port".
**Default**: the value of the variable "firefox.manual.http_proxy.port". | -| **firefox.manual.https_proxy.version** or **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.
**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". | - -#### 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.
**Validator**: must starts with 'https://' only.
**Disabled**: if "dns_over_https.provider" is not "Custom". | - - -### Variables for "foxyproxy" - -#### Proxy configuration - -`basic` - - -This family contains lists of variable blocks. - -| 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.
**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.
**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.
**Default**: copy HTTP address if proxy is "Auto".
**Disabled**: if type is not in:
- PAC URL
- WPAD. | +# Summary + +Each step is a separerate commit. You can navigate to history to discover different aspect to the Rougail format. + +- Getting started + - Structural file + - [[tutorial 000] A 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)) + - [[tutorial 001] The format version in commandline](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)) + - Variable: choice the proxy mode + - [[tutorial 010] A first variable with only a name](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 011] The variable description](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 012] A default value](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)) + - [[tutorial 013] A variable with type "choice"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_013/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_013~1..v1.1_013)) + - [[tutorial 014] Choice type is optional](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_014/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_014~1..v1.1_014)) + - Family: proxy manual + - [[tutorial 020] A family](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 021] A sub family](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 022] A variable inside sub family](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 023] Family type is optional](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)) +- HTTP Manual mode + - Variable: type and type parameters + - [[tutorial 024] A variable with type "domainname"](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)) + - [[tutorial 025] A variable with type's parameters](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_025/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_025~1..v1.1_025)) + - [[tutorial 026] A variable with type "port"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_026/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_026~1..v1.1_026)) + - Property: disabled + - [[tutorial 027] A disabled family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_027/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_027~1..v1.1_027)) + - [[tutorial 028] A conditional disabled family with a variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_028/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_028~1..v1.1_028)) + - [[tutorial 029] Type variable is optional](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_029/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_029~1..v1.1_029)) +- HTTP proxy provides HTTPS proxy + - [[tutorial 030] A variable with type "boolean"](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 031] Bases type is optional if default value](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)) +- HTTPS Manual mode + - Property: hidden + - [[tutorial 032] Copy HTTP manual proxy to HTTPS manual proxy](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 033] An hidden family](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)) + - [[tutorial 034] A conditional hidden family with a variable](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_034/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_034~1..v1.1_034)) + - Variable: calculated default value + - [[tutorial 035] A calculated default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_035/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_035~1..v1.1_035)) + - [[tutorial 036] Variable type and parameters type are copied with default value](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_036/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_036~1..v1.1_036)) +- SOCKS Manual mode + - Family: dynamic + - [[tutorial 040] Family: a dynamic family](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)) + - Property: Jinja and identifier condition + - [[tutorial 041] A conditional hidden family with Jinja](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)) + - [[tutorial 042] Jinja with a parameter](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_042/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_042~1..v1.1_042)) + - [[tutorial 043] Jinja with a description](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_043/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_043~1..v1.1_043)) + - [[tutorial 044] A conditional disabled variable with identifier](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_044/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_044~1..v1.1_044)) +- Shorthand mode + - [[tutorial 050] Family: "shorthand" mode](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)) + - [[tutorial 051] Variable: "shorthand" mode](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)) +- Automatic proxy + - [[tutorial 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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)) +- Namespace + - Relative path + - [[tutorial 090] Variable in same family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_090/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_090~1..v1.1_090)) + - [[tutorial 091] Variable in parent family](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_091/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_091~1..v1.1_091)) + - [[tutorial 092] Namespace](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_092/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_092~1..v1.1_092)) + - [[tutorial 100] xxx](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 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 102] xxx](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_102/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_102~1..v1.1_102)) + - [[tutorial 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 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 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 d368003..050f837 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 41f5978..0000000 --- a/firefox/00-proxy.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -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 80bcc54..0000000 --- a/firefox/10-manual.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -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 b167f70..0000000 --- a/firefox/20-manual.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -manual: - - use_for_https: true # Also use this proxy for HTTPS - - "{{ identifier }}_proxy": - description: "{{ identifier }} Proxy" - dynamic: - - HTTPS - - SOCKS - hidden: - jinja: | - {% if my_identifier == 'HTTPS' and _.use_for_https %} - HTTPS is same has HTTP - {% endif %} - params: - my_identifier: - type: identifier - description: | - in HTTPS case if "manual.use_for_https" is set to True - - 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 0e45339..0000000 --- a/firefox/30-auto.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -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 d6bede6..0000000 --- a/firefox/40-no_proxy.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -no_proxy: - description: Address for which proxy will be desactivated - 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 - examples: - - .mozilla.org - - .net.nz - - 192.168.1.0/24 - help: Connections to localhost, 127.0.0.1/8 and ::1 are never proxied diff --git a/firefox/50-prompt_authentication.yml b/firefox/50-prompt_authentication.yml deleted file mode 100644 index 7138e22..0000000 --- a/firefox/50-prompt_authentication.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -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 0427894..0000000 --- a/firefox/55-proxy_dns_socks5.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -proxy_dns_socks5: - description: Use proxy DNS when using SOCKS v5 - default: false - mode: advanced - 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 94c0ec2..0000000 --- a/firefox/60-dns_over_https.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- -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 - disabled: - jinja: | - {% if _.provider is propertyerror or _.provider != 'Custom' %} - provider is not custom - {% endif %} - description: if "dns_over_https.provider" is not "Custom" - validators: - - jinja: | - {% if dns_over_https.custom_dns_url.startswith('http://') %} - only https is allowed - {% endif %} - description: must starts with 'https://' only diff --git a/firefox/empty.yml b/firefox/empty.yml deleted file mode 100644 index e69de29..0000000 diff --git a/foxyproxy/00-foxyproxy.yml b/foxyproxy/00-foxyproxy.yml deleted file mode 100644 index 7158b8f..0000000 --- a/foxyproxy/00-foxyproxy.yml +++ /dev/null @@ -1,104 +0,0 @@ ---- -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}$" - auto_save: true - default: - jinja: | - # - {%- for i in range(6) -%} - {{- '0123456789abcdef' | random -}} - {%- endfor -%} - description: random color value - - address: - description: IP address, DNS name, server name - type: domainname - params: - allow_ip: true - allow_without_dot: true - disabled: &needs_address - jinja: | - {% if _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] %} - disabled - {% endif %} - description: | - if type not in: - - HTTP - - HTTPS/SSL - - SOCKS4 - - SOCKS5 - 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" - - 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: *needs_address - - 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: *needs_address - - password: - description: Password - type: secret - mandatory: false - disabled: *needs_address - - url: - description: URL - type: web_address - disabled: - jinja: | - {% if _.type not in ['PAC URL', 'WPAD'] %} - proxy does not need url - {% endif %} - description: | - if type is not in: - - PAC URL - - WPAD - default: - jinja: | - {% if firefox.auto is not propertyerror %} - {{ firefox.auto }} - {% endif %} - description: copy HTTP address if proxy is "Auto" diff --git a/foxyproxy/10-redefine.yml b/foxyproxy/10-redefine.yml deleted file mode 100644 index 83578f0..0000000 --- a/foxyproxy/10-redefine.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -proxies: - username: - redefine: true - mandatory: false - - password: - redefine: true - hidden: - type: jinja - jinja: | - {% if not _.username %} - no username defined - {% endif %} - description: if username is not defined