Argument types

A full list of argument types are below;

Argument types reference table
Type Rendered as Allowed values

(default)

Textbox

If a type: is not set, and choices: is empty, then ascii will be used, and a config warning is reported. It is recommended that you set the type explicitly, rather than relying on defaults.

ascii

Textbox

a-z, A-Z, 0-9 only. No spaces or punctuation.

ascii_identifier

Textbox

a-z, A-Z, 0-9, -, ., and _.

dnsname

Textbox

A DNS hostname (RFC 1123). Short names (e.g. webserver) and FQDNs (e.g. webserver.example.com). Letters/digits/hyphens only, no underscores. Optional trailing dot allowed.

shell_safe_identifier

Textbox

Like an ascii identifier, but also allows @ and +. Useful for shell-safe usernames and email-style identifiers.

ascii_sentence

Textbox

a-z, A-Z, 0-9, spaces, ., ,, -, and _.

unicode_identifier

Textbox

Same character class as Go’s \w plus - and . (ASCII letters, digits, and _, plus - and .). Despite the name, non-ASCII letters are not accepted by the current server check.

email

Textbox

An email address (parsed with Go’s mail.ParseAddress).

password

Password

Any string (not type-checked). Hidden in the UI. Not allowed with shell: — use exec:.

very_dangerous_raw_string

Textbox

Anything. This is incredibly dangerous, as effectively people can type anything they like, including executing additional commands beyond what you specify. Absolutely should not be used unless your OliveTin instance can only be used by people you trust entirely. Not allowed with shell: — use exec:.

regex:…​

Textbox

Custom regex patterns. See Custom regex arguments. Not allowed with shell: — use exec:.

int

Textbox

Digits 0-9 only. Negative numbers are not supported.

url

Textbox

A URL with scheme http or https only (e.g. https://example.com). Not allowed with shell: — use exec:.

datetime

Date & Time

A local datetime in the form YYYY-MM-DDTHH:MM:SS (seconds may be mangled to :00 when browsers omit them).

confirmation

Confirmation

A UI gate that requires a checkbox before starting. Usually unnamed (nothing is substituted). If named, the value is only 0 or 1.

checkbox

Checkbox

Typically used with choices for on/off flag values. A checkbox without choices is not allowed with shell: — use exec: or define choices.

checklist

Checklist

Multiple checkboxes from predefined choices. Selected values are passed as a JSON array string (e.g. ["documents","photos"]).

n/a, but choices used

Dropdown

Predefined choices shown as a dropdown. The submitted value must match one of the choice values (or an entity-expanded choice).

raw_string_multiline

Textarea

Anything (not type-checked). Dangerous, and not allowed with shell: — use exec:.

Types that cannot be used with shell:

When an action uses shell: (including with arguments substituted into the command string), OliveTin rejects these argument types and asks you to use exec: instead:

  • url

  • email

  • password

  • raw_string_multiline

  • very_dangerous_raw_string

  • html (internal/display-oriented; skips normal type checks)

  • any custom regex:…​ type

  • checkbox when it has no choices

URL schemes

The url type accepts only http and https. Schemes such as file://, ftp://, and gopher:// are rejected by the server.