No description
Emmanuel Garette
d4fa5e8626
HTTPS and socks proxy are very similar. It could be interesting to do on dynamic family instead of duplicate family and variable description. First of all, we add a dynamic attribute to the family. Dynamic is here a static list of suffix. It could be a variable or jinja informations too. The dynamic family is only hidden in the HTTPs case. Hidden is now a Jinja calculation with a parameter named "suffix". The suffix is use in: - family name - family description - variables name - variables description |
||
---|---|---|
config | ||
firefox | ||
firefox.png | ||
foxyproxy.png | ||
README.md |
Table of Contents
Summary
- [tutorial 001] An empty file (diff)
- [tutorial 002] A first variable (diff)
- [tutorial 003] A first variable (diff)
- [tutorial 004] The variable description (diff)
- [tutorial 005] A default value (diff)
- [tutorial 006] A variable with type choice (diff)
- [tutorial 007] Choice type is optional (diff)
- [tutorial 010] A family (diff)
- [tutorial 011] Conditional desactived family (diff)
- [tutorial 012] Conditional desactived family (diff)
- [tutorial 013] A sub family (diff)
- [tutorial 014] Family in "shorthand" mode (diff)
- [tutorial 015] Family in "shorthand" mode (diff)
- [tutorial 016] Family in "shorthand" mode (diff)
- [tutorial 017] Family in "shorthand" mode (diff)
- [tutorial 018] Family in "shorthand" mode (diff)
- [tutorial 020] A boolean variable (diff)
- [tutorial 021] Bases type is optional if default value (diff)
- [tutorial 022] A variable in "shorthand" mode (diff)
- [tutorial 023] Conditional hidden family and calculated default value (diff)
- [tutorial 024] Conditional hidden family and calculated default value (diff)
- [tutorial 025] Conditional hidden family and calculated default value (diff)
- [tutorial 026] A dynamic family (diff)
Description
A dynamic family
HTTPS and socks proxy are very similar. It could be interesting to do on dynamic family instead of duplicate family and variable description.
First of all, we add a dynamic attribute to the family. Dynamic is here a static list of suffix. It could be a variable or jinja informations too.
The dynamic family is only hidden in the HTTPs case. Hidden is now a Jinja calculation with a parameter named "suffix".
The suffix is use in:
- family name
- family description
- variables name
- variables description
Structure
firefox/00-proxy.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
firefox/10-manual.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
---
manual:
use_for_https: true # Also use this proxy for HTTPS
https_proxy:
description: HTTPS Proxy
hidden:
variable: _.use_for_https
address:
description: HTTPS address
type: domainname
params:
allow_ip: true
default:
variable: __.http_proxy.address
port:
description: HTTPS Port
type: port
default:
variable: __.http_proxy.port
Generated documentation
foo@bar:~$ rougail -v 1.1 -m firefox/ -o doc -do github
Variables
Variable | Description |
---|---|
proxy_modechoice 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 "proxy_mode" hasn't the value "Manual proxy configuration".
HTTP Proxy
basic
Variable | Description |
---|---|
manual.http_proxy.addressdomainname basic mandatory |
HTTP address. Validator: the domain name can be an IP |
manual.http_proxy.portport standard mandatory |
HTTP Port. Default: 8080 |
Variable | Description |
---|---|
manual.use_for_httpsboolean standard mandatory |
Also use this proxy for HTTPS. Default: True |
HTTPS Proxy
standard
hidden
Hidden: when the variable "manual.use_for_https" has the value "True".
Variable | Description |
---|---|
manual.https_proxy.addressdomainname standard mandatory |
HTTPS address. Validator: the domain name can be an IP Default: the value of the variable "manual.http_proxy.address". |
manual.https_proxy.portport standard mandatory |
HTTPS Port. Default: the value of the variable "manual.http_proxy.port". |
User data
Example 1
config/01/config.yaml
---
Output
foo@bar:~$ rougail -v 1.1 -m firefox -u file -ff config/01/config.yaml
╭────────────────────────── Caption ──────────────────────────╮ │ Variable Default value │ │ Undocumented variable Modified value │ │ Undocumented but modified variable (Original default value) │ │ Unmodifiable variable │ ╰─────────────────────────────────────────────────────────────╯ Variables: ┗━━ 📓 proxy_mode: No proxy
Example 2
config/02/config.yaml
---
proxy_mode: Manual proxy configuration
Output
foo@bar:~$ rougail -v 1.1 -m firefox -u file -ff config/02/config.yaml
🛑 ERRORS ┣━━ The following variables are mandatory but have no value: ┗━━ - manual.http_proxy.address (HTTP address)
Example 3
config/03/config.yaml
---
proxy_mode: Manual proxy configuration
manual:
http_proxy:
address: example.net
Output
foo@bar:~$ rougail -v 1.1 -m firefox -u file -ff config/03/config.yaml
╭────────────────────────── Caption ──────────────────────────╮ │ Variable Default value │ │ Undocumented variable Modified value │ │ Undocumented but modified variable (Original default value) │ │ Unmodifiable variable │ ╰─────────────────────────────────────────────────────────────╯ Variables: ┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy) ┗━━ 📂 manual ┣━━ 📂 http_proxy ┃ ┣━━ 📓 address: example.net ┃ ┗━━ 📓 port: 8080 ┣━━ 📓 use_for_https: True ┗━━ 📂 https_proxy ┣━━ 📓 address: example.net ┗━━ 📓 port: 8080
Output in read write mode
foo@bar:~$ rougail -v 1.1 -m firefox -u file -ff config/03/config.yaml --exporter.read_write
╭────────────────────────── Caption ──────────────────────────╮ │ Variable Default value │ │ Undocumented variable Modified value │ │ Undocumented but modified variable (Original default value) │ ╰─────────────────────────────────────────────────────────────╯ Variables: ┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy) ┗━━ 📂 manual ┣━━ 📂 http_proxy ┃ ┣━━ 📓 address: example.net ┃ ┗━━ 📓 port: 8080 ┗━━ 📓 use_for_https: True
Example 4
config/04/config.yaml
---
proxy_mode: Manual proxy configuration
manual:
http_proxy:
address: example.net
port: '3128'
Output
foo@bar:~$ rougail -v 1.1 -m firefox -u file -ff config/04/config.yaml
╭────────────────────────── Caption ──────────────────────────╮ │ Variable Default value │ │ Undocumented variable Modified value │ │ Undocumented but modified variable (Original default value) │ ╰─────────────────────────────────────────────────────────────╯ Variables: ┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy) ┗━━ 📂 manual ┣━━ 📂 http_proxy ┃ ┣━━ 📓 address: example.net ┃ ┗━━ 📓 port: 3128 (8080) ┗━━ 📓 use_for_https: True
Example 5
config/05/config.yaml
---
proxy_mode: Manual proxy configuration
manual:
http_proxy:
address: http.proxy.net
port: '3128'
use_for_https: false
https_proxy:
address: https.proxy.net
Description
If "use_for_https" is false, HTTPS variables are visible in read only mode and in read write mode.
Output
foo@bar:~$ rougail -v 1.1 -m firefox -u file -ff config/05/config.yaml
╭────────────────────────── Caption ──────────────────────────╮ │ Variable Default value │ │ Undocumented variable Modified value │ │ Undocumented but modified variable (Original default value) │ ╰─────────────────────────────────────────────────────────────╯ Variables: ┣━━ 📓 proxy_mode: Manual proxy configuration (No proxy) ┗━━ 📂 manual ┣━━ 📂 http_proxy ┃ ┣━━ 📓 address: http.proxy.net ┃ ┗━━ 📓 port: 3128 (8080) ┣━━ 📓 use_for_https: False (True) ┗━━ 📂 https_proxy ┣━━ 📓 address: https.proxy.net (http.proxy.net) ┗━━ 📓 port: 3128