[tutorial v1.1_200] Username is mandatory if a password is set (config and doc)

This commit is contained in:
egarette@silique.fr 2026-03-09 07:59:07 +01:00
parent 14bf458b05
commit e35387d40b
2 changed files with 83 additions and 48 deletions

View file

@ -1,9 +1,9 @@
- [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md) - [Summary](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/branch/1.1/README.md)
- [[tutorial v1.1_180] A variable name that conflict with a known the variable's attribute "type"](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_180/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_190~1..v1.1_190)) - [[tutorial v1.1_190] Various variables](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_200~1..v1.1_200))
# [tutorial v1.1_190] Various variables # [tutorial v1.1_200] Username is mandatory if a password is set
[Read the tutorial "Various variables" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#various-variables) [Read the tutorial "Username is mandatory if a password is set" in the documentation](https://pedago.gwenaelremond.fr/bribes/rougail/tutorial/jinja.html#username-is-mandatory-if-a-password-is-set)
## Screenshot ## Screenshot
@ -29,7 +29,7 @@ pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-
Then switch to the tutorial page: Then switch to the tutorial page:
```shell ```shell
git switch --detach v1.1_190 git switch --detach v1.1_200
``` ```
## Structure ## Structure
@ -37,21 +37,21 @@ git switch --detach v1.1_190
<p> <p>
<a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./">.</a><br/> <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./">.</a><br/>
├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/">firefox</a><br/> ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/">firefox</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/00-proxy.yml">00-proxy.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/00-proxy.yml">00-proxy.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/10-manual.yml">10-manual.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/10-manual.yml">10-manual.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/20-manual.yml">20-manual.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/20-manual.yml">20-manual.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/30-auto.yml">30-auto.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/30-auto.yml">30-auto.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/40-no_proxy.yml">40-no_proxy.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/40-no_proxy.yml">40-no_proxy.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/50-prompt_authentication.yml">50-prompt_authentication.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/50-prompt_authentication.yml">50-prompt_authentication.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/55-proxy_dns_socks5.yml">55-proxy_dns_socks5.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/55-proxy_dns_socks5.yml">55-proxy_dns_socks5.yml</a><br/>
│   └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/60-dns_over_https.yml">60-dns_over_https.yml</a><br/> │   └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/60-dns_over_https.yml">60-dns_over_https.yml</a><br/>
├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./foxyproxy/">foxyproxy</a><br/> ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./foxyproxy/">foxyproxy</a><br/>
│   └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./foxyproxy/00-foxyproxy.yml">00-foxyproxy.yml</a><br/> │   └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./foxyproxy/00-foxyproxy.yml">00-foxyproxy.yml</a><br/>
└── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./types/">types</a><br/> └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./types/">types</a><br/>
    └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./types/proxy/">proxy</a><br/>     └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./types/proxy/">proxy</a><br/>
        └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./types/proxy/00_type.yml">00_type.yml</a><br/>         └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./types/proxy/00_type.yml">00_type.yml</a><br/>
<br/><br/></p> <br/><br/></p>
Contents of the foxyproxy/00-foxyproxy.yml file Contents of the foxyproxy/00-foxyproxy.yml file
@ -137,6 +137,40 @@ proxies:
- SOCKS4 - SOCKS4
- SOCKS5 - SOCKS5
username:
description: Username
type: unix_user
mandatory:
jinja: |-
{{ _.password is not propertyerror and _.password }}
description: if a password is set
return_type: boolean
disabled:
jinja: |-
{{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
return_type: boolean
description: |-
if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
password:
description: Password
type: secret
mandatory: false
disabled:
jinja: |-
{{ _.type not in ['HTTP', 'HTTPS/SSL', 'SOCKS4', 'SOCKS5'] }}
return_type: boolean
description: |-
if type not in:
- HTTP
- HTTPS/SSL
- SOCKS4
- SOCKS5
url: url:
description: URL description: URL
type: web_address type: web_address
@ -263,12 +297,14 @@ rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/prox
> `basic` > `basic`
| Variable | Description | | Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="foxyproxy.proxies.title" name="foxyproxy.proxies.title">foxyproxy.proxies.title</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `unique` | Title or Description. | | **<a id="foxyproxy.proxies.title" name="foxyproxy.proxies.title">foxyproxy.proxies.title</a>**<br/>[`string`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `multiple` `standard` `unique` | Title or Description. |
| **<a id="foxyproxy.proxies.type" name="foxyproxy.proxies.type">foxyproxy.proxies.type</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Proxy Type.<br/>**Choices**: <br/>&nbsp;HTTP<br/>&nbsp;HTTPS/SSL<br/>&nbsp;SOCKS4<br/>&nbsp;SOCKS5<br/>&nbsp;PAC URL<br/>&nbsp;WPAD<br/>&nbsp;System (use system settings)<br/>&nbsp;Direct (no proxy) **← (default)** | | **<a id="foxyproxy.proxies.type" name="foxyproxy.proxies.type">foxyproxy.proxies.type</a>**<br/>[`choice`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` | Proxy Type.<br/>**Choices**: <br/>&nbsp;HTTP<br/>&nbsp;HTTPS/SSL<br/>&nbsp;SOCKS4<br/>&nbsp;SOCKS5<br/>&nbsp;PAC URL<br/>&nbsp;WPAD<br/>&nbsp;System (use system settings)<br/>&nbsp;Direct (no proxy) **← (default)** |
| **<a id="foxyproxy.proxies.color" name="foxyproxy.proxies.color">foxyproxy.proxies.color</a>**<br/>[`regexp`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `auto modified` | Color.<br/>**Validator**: text based with regular expressions "^#(?:[0-9a-f]{3}){1,2}$"<br/>**Default**: random color value | | **<a id="foxyproxy.proxies.color" name="foxyproxy.proxies.color">foxyproxy.proxies.color</a>**<br/>[`regexp`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `basic` `mandatory` `auto modified` | Color.<br/>**Validator**: text based with regular expressions "^#(?:[0-9a-f]{3}){1,2}$"<br/>**Default**: random color value |
| **<a id="foxyproxy.proxies.address" name="foxyproxy.proxies.address">foxyproxy.proxies.address</a>**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | IP address, DNS name, server name.<br/>**Validators**: <br/>&nbsp;type domainname<br/>&nbsp;the domain name can be a hostname<br/>&nbsp;the domain name can be an IP<br/>**Default**: copy HTTP address if proxy is not "Manual"<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 | | **<a id="foxyproxy.proxies.address" name="foxyproxy.proxies.address">foxyproxy.proxies.address</a>**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | IP address, DNS name, server name.<br/>**Validators**: <br/>&nbsp;type domainname<br/>&nbsp;the domain name can be a hostname<br/>&nbsp;the domain name can be an IP<br/>**Default**: copy HTTP address if proxy is not "Manual"<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 |
| **<a id="foxyproxy.proxies.port" name="foxyproxy.proxies.port">foxyproxy.proxies.port</a>**<br/>[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | Port.<br/>**Validators**: <br/>&nbsp;well-known ports (1 to 1023) are allowed<br/>&nbsp;registred ports (1024 to 49151) are allowed<br/>&nbsp;private ports (greater than 49152) are allowed<br/>**Default**: copy HTTP port if proxy is not "Manual"<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 | | **<a id="foxyproxy.proxies.port" name="foxyproxy.proxies.port">foxyproxy.proxies.port</a>**<br/>[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | Port.<br/>**Validators**: <br/>&nbsp;well-known ports (1 to 1023) are allowed<br/>&nbsp;registred ports (1024 to 49151) are allowed<br/>&nbsp;private ports (greater than 49152) are allowed<br/>**Default**: copy HTTP port if proxy is not "Manual"<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 |
| **<a id="foxyproxy.proxies.username" name="foxyproxy.proxies.username">foxyproxy.proxies.username</a>**<br/>[`UNIX user`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`mandatory`* *`disabled`* | Username.<br/>**Mandatory**: if a password is set<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 |
| **<a id="foxyproxy.proxies.password" name="foxyproxy.proxies.password">foxyproxy.proxies.password</a>**<br/>[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`disabled`* | Password.<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 |
| **<a id="foxyproxy.proxies.url" name="foxyproxy.proxies.url">foxyproxy.proxies.url</a>**<br/>[`web address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | URL.<br/>**Validators**: <br/>&nbsp;well-known ports (1 to 1023) are allowed<br/>&nbsp;registred ports (1024 to 49151) are allowed<br/>&nbsp;type domainname<br/>&nbsp;the domain name can be a hostname<br/>**Default**: copy HTTP address if proxy is "Auto"<br/>**Disabled**: if type is not in:<br/>- PAC URL<br/>- WPAD | | **<a id="foxyproxy.proxies.url" name="foxyproxy.proxies.url">foxyproxy.proxies.url</a>**<br/>[`web address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | URL.<br/>**Validators**: <br/>&nbsp;well-known ports (1 to 1023) are allowed<br/>&nbsp;registred ports (1024 to 49151) are allowed<br/>&nbsp;type domainname<br/>&nbsp;the domain name can be a hostname<br/>**Default**: copy HTTP address if proxy is "Auto"<br/>**Disabled**: if type is not in:<br/>- PAC URL<br/>- WPAD |
@ -281,10 +317,9 @@ rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/prox
#### New variables #### New variables
| Variable | Description | | Variable | Description |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
| **<a id="foxyproxy.proxies.address" name="foxyproxy.proxies.address">foxyproxy.proxies.address</a>**<br/>[`domainname`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | IP address, DNS name, server name.<br/>**Validators**: <br/>&nbsp;type domainname<br/>&nbsp;the domain name can be a hostname<br/>&nbsp;the domain name can be an IP<br/>**Default**: copy HTTP address if proxy is not "Manual"<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 | | **<a id="foxyproxy.proxies.username" name="foxyproxy.proxies.username">foxyproxy.proxies.username</a>**<br/>[`UNIX user`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`mandatory`* *`disabled`* | Username.<br/>**Mandatory**: if a password is set<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 |
| **<a id="foxyproxy.proxies.port" name="foxyproxy.proxies.port">foxyproxy.proxies.port</a>**<br/>[`port`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | Port.<br/>**Validators**: <br/>&nbsp;well-known ports (1 to 1023) are allowed<br/>&nbsp;registred ports (1024 to 49151) are allowed<br/>&nbsp;private ports (greater than 49152) are allowed<br/>**Default**: copy HTTP port if proxy is not "Manual"<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 | | **<a id="foxyproxy.proxies.password" name="foxyproxy.proxies.password">foxyproxy.proxies.password</a>**<br/>[`secret`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` *`disabled`* | Password.<br/>**Disabled**: if type not in:<br/>- HTTP<br/>- HTTPS/SSL<br/>- SOCKS4<br/>- SOCKS5 |
| **<a id="foxyproxy.proxies.url" name="foxyproxy.proxies.url">foxyproxy.proxies.url</a>**<br/>[`web address`](https://rougail.readthedocs.io/en/latest/variable.html#variables-types) `standard` `mandatory` *`disabled`* | URL.<br/>**Validators**: <br/>&nbsp;well-known ports (1 to 1023) are allowed<br/>&nbsp;registred ports (1024 to 49151) are allowed<br/>&nbsp;type domainname<br/>&nbsp;the domain name can be a hostname<br/>**Default**: copy HTTP address if proxy is "Auto"<br/>**Disabled**: if type is not in:<br/>- PAC URL<br/>- WPAD |
#### Modified variable #### Modified variable
@ -328,4 +363,4 @@ Variables:
*** ***
- [[tutorial v1.1_200] Username is mandatory if a password is set](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_200~1..v1.1_200)) - [[tutorial v1.1_201] redefines the behavior to password mandatory if the user is defined](https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_201/README.md) ([diff](https://forge.cloud.silique.fr/stove/rougail-tutorials/compare/v1.1_201~1..v1.1_201))

View file

@ -1,17 +1,17 @@
<p> <p>
<a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./">.</a><br/> <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./">.</a><br/>
├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/">firefox</a><br/> ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/">firefox</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/00-proxy.yml">00-proxy.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/00-proxy.yml">00-proxy.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/10-manual.yml">10-manual.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/10-manual.yml">10-manual.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/20-manual.yml">20-manual.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/20-manual.yml">20-manual.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/30-auto.yml">30-auto.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/30-auto.yml">30-auto.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/40-no_proxy.yml">40-no_proxy.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/40-no_proxy.yml">40-no_proxy.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/50-prompt_authentication.yml">50-prompt_authentication.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/50-prompt_authentication.yml">50-prompt_authentication.yml</a><br/>
│   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/55-proxy_dns_socks5.yml">55-proxy_dns_socks5.yml</a><br/> │   ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/55-proxy_dns_socks5.yml">55-proxy_dns_socks5.yml</a><br/>
│   └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./firefox/60-dns_over_https.yml">60-dns_over_https.yml</a><br/> │   └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./firefox/60-dns_over_https.yml">60-dns_over_https.yml</a><br/>
├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./foxyproxy/">foxyproxy</a><br/> ├── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./foxyproxy/">foxyproxy</a><br/>
│   └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./foxyproxy/00-foxyproxy.yml">00-foxyproxy.yml</a><br/> │   └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./foxyproxy/00-foxyproxy.yml">00-foxyproxy.yml</a><br/>
└── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./types/">types</a><br/> └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./types/">types</a><br/>
    └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./types/proxy/">proxy</a><br/>     └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./types/proxy/">proxy</a><br/>
        └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_190/./types/proxy/00_type.yml">00_type.yml</a><br/>         └── <a href="https://forge.cloud.silique.fr/stove/rougail-tutorials/src/commit/v1.1_200/./types/proxy/00_type.yml">00_type.yml</a><br/>
<br/><br/></p> <br/><br/></p>