No description
Find a file
2026-04-18 21:49:38 +02:00
config [tutorial v1.1_211] redefines the behavior to password mandatory if the user is defined (config and doc) 2026-04-18 21:49:38 +02:00
firefox [tutorial v1.1_150] A variable with custom validation 2026-04-18 21:48:53 +02:00
foxyproxy [tutorial v1.1_210] Username is mandatory if a password is set 2026-04-18 21:49:33 +02:00
types/proxy [tutorial v1.1_083] Redefine other parameter in custom type 2026-04-18 21:47:47 +02:00
CHANGELOG.md [tutorial v1.1_211] redefines the behavior to password mandatory if the user is defined (config and doc) 2026-04-18 21:49:38 +02:00
DOCUMENTATION.md [tutorial v1.1_211] redefines the behavior to password mandatory if the user is defined (config and doc) 2026-04-18 21:49:38 +02:00
firefox.png [tutorial v1.1_140] A boolean variable (config and doc) 2026-04-18 21:48:40 +02:00
foxyproxy.png [init] Discover Rougail 2026-04-18 21:45:41 +02:00
install.txt [init] Discover Rougail 2026-04-18 21:45:41 +02:00
README.md [tutorial v1.1_211] redefines the behavior to password mandatory if the user is defined (config and doc) 2026-04-18 21:49:38 +02:00
tree.html [tutorial v1.1_211] redefines the behavior to password mandatory if the user is defined (config and doc) 2026-04-18 21:49:38 +02:00

[tutorial v1.1_211] redefines the behavior to password mandatory if the user is defined

Read the tutorial "redefines the behavior to password mandatory if the user is defined" in the documentation

Screenshot

Firefox Proxy setting

Clone and install

To test this tutorial, you need to download this repository and install Rougail:

git clone -b 1.1 https://forge.cloud.silique.fr/stove/rougail-tutorials.git
cd rougail-tutorials
python -m venv venv_rougail
. venv_rougail/bin/activate
pip install rougail-cli rougail-output-exporter rougail-output-doc rougail-user-data-yaml

Then switch to the tutorial page:

git switch --detach v1.1_211

Structure

.
├── firefox
│   ├── 00-proxy.yml
│   ├── 10-manual.yml
│   ├── 20-manual.yml
│   ├── 30-auto.yml
│   ├── 40-no_proxy.yml
│   ├── 50-prompt_authentication.yml
│   ├── 55-proxy_dns_socks5.yml
│   └── 60-dns_over_https.yml
├── foxyproxy
│   ├── 00-foxyproxy.yml
│   └── 10-redefine.yml
└── types
    └── proxy
        └── 00-type.yml


Contents of the foxyproxy/10-redefine.yml file

%YAML 1.2
---
version: 1.1

proxies:

  username:
    redefine: true
    mandatory: false

  password:
    redefine: true
    hidden:
      jinja: |-
        {{ not _.username }}        
      return_type: boolean
      description: if username is empty
...


Let's generate the documentation

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -o doc

View the documentation file


Let's generate the changelog

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -o doc --doc.contents changelog --doc.changelog.previous_json_file previous.yml

View the changelog file


User datas

Example 1

config/01/config.yml

---

Output

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml

Note

Caption:

  • Variable
  • Default value

Variables:

  • 📂 firefox (Firefox)
    • 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
    • 📂 dns_over_https (DNS over HTTPS)
      • 📓 enable_dns_over_https (Enable DNS over HTTPS): false
  • 📂 foxyproxy (FoxyProxy)
    • 📂 proxies (Proxy configuration): []

Example 2

config/02/config.yml

---
foxyproxy:
  proxies:
    - title: My company
      type: HTTP
      color: '#66cc66'
      address: proxy.company.net
      port: 8080
      username: one_user
      password: P4ssW0rD
    - title: An other company
      type: HTTP
      address: proxy.company.net
      port: 8080

Output

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/02/config.yml

Note

Caption:

  • Variable
  • Unmodifiable variable
  • Default value
  • Modified value
  • ( Original default value)

Variables:

  • 📂 firefox (Firefox)
    • 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
    • 📂 dns_over_https (DNS over HTTPS)
      • 📓 enable_dns_over_https (Enable DNS over HTTPS): false
  • 📂 foxyproxy (FoxyProxy)
    • 📂 proxies (Proxy configuration)
      • 📂 title (Title or Description)
        • 📓 title (Title or Description): My company ← loaded from the YAML file "config/02/config.yml"
        • 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/02/config.yml" ( Direct (no proxy))
        • 📓 color (Color): #66cc66 ← loaded from the YAML file "config/02/config.yml"
        • 📓 address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/02/config.yml"
        • 📓 port (Port): 8080 ← loaded from the YAML file "config/02/config.yml"
        • 📓 username (Username): one_user ← loaded from the YAML file "config/02/config.yml"
        • 📓 password (Password): ********** ← loaded from the YAML file "config/02/config.yml"
      • 📂 title (Title or Description)
        • 📓 title (Title or Description): An other company ← loaded from the YAML file "config/02/config.yml"
        • 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/02/config.yml" ( Direct (no proxy))
        • 📓 color (Color): #163593
        • 📓 address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/02/config.yml"
        • 📓 port (Port): 8080 ← loaded from the YAML file "config/02/config.yml"
        • 📓 username (Username): null
        • 📓 password (Password): null

Example 3

config/03/config.yml

---
foxyproxy:
  proxies:
    - title: My company
      type: HTTP
      color: '#66cc66'
      address: proxy.company.net
      port: 8080
      password: P4ssW0rD
    - title: An other company
      type: HTTP
      address: proxy.company.net
      port: 8080

Output

rougail -m firefox/ -s Firefox -xn FoxyProxy -xd 0 foxyproxy/ --types types/proxy --modes_level basic standard advanced -u yaml -yf config/03/config.yml

Warning

  • foxyproxy (FoxyProxy)
    • proxies (Proxy configuration)
      • password (Password): 🔔 variable "password" (Password) at index "0" is hidden, it will be ignored when loading from the YAML file "config/03/config.yml"

Note

Caption:

  • Variable
  • Unmodifiable variable
  • Default value
  • Modified value
  • ( Original default value)

Variables:

  • 📂 firefox (Firefox)
    • 📓 proxy_mode (Configure Proxy Access to the Internet): No proxy
    • 📂 dns_over_https (DNS over HTTPS)
      • 📓 enable_dns_over_https (Enable DNS over HTTPS): false
  • 📂 foxyproxy (FoxyProxy)
    • 📂 proxies (Proxy configuration)
      • 📂 title (Title or Description)
        • 📓 title (Title or Description): My company ← loaded from the YAML file "config/03/config.yml"
        • 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/03/config.yml" ( Direct (no proxy))
        • 📓 color (Color): #66cc66 ← loaded from the YAML file "config/03/config.yml"
        • 📓 address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/03/config.yml"
        • 📓 port (Port): 8080 ← loaded from the YAML file "config/03/config.yml"
        • 📓 username (Username): null
        • 📓 password (Password): null
      • 📂 title (Title or Description)
        • 📓 title (Title or Description): An other company ← loaded from the YAML file "config/03/config.yml"
        • 📓 type (Proxy Type): HTTP ← loaded from the YAML file "config/03/config.yml" ( Direct (no proxy))
        • 📓 color (Color): #51f1e7
        • 📓 address (IP address, DNS name, server name): proxy.company.net ← loaded from the YAML file "config/03/config.yml"
        • 📓 port (Port): 8080 ← loaded from the YAML file "config/03/config.yml"
        • 📓 username (Username): null
        • 📓 password (Password): null