2021-08-03 09:55:21 +00:00
package commands
2021-11-25 01:56:58 +00:00
import (
"errors"
)
2022-06-14 12:40:00 +00:00
const (
fmtCmdAutheliaShort = "authelia %s"
2021-08-03 09:55:21 +00:00
2022-06-14 12:40:00 +00:00
fmtCmdAutheliaLong = ` authelia % s
2021-08-03 09:55:21 +00:00
2022-06-14 12:40:00 +00:00
An open - source authentication and authorization server providing
two - factor authentication and single sign - on ( SSO ) for your
2021-08-03 09:55:21 +00:00
applications via a web portal .
2022-12-22 06:34:20 +00:00
General documentation is available at : https : //www.authelia.com/
CLI documentation is available at : https : //www.authelia.com/reference/cli/authelia/authelia/`
2021-08-03 09:55:21 +00:00
2022-06-14 12:40:00 +00:00
cmdAutheliaExample = ` authelia -- config / etc / authelia / config . yml -- config / etc / authelia / access - control . yml
authelia -- config / etc / authelia / config . yml , / etc / authelia / access - control . yml
authelia -- config / etc / authelia / config / `
fmtAutheliaBuild = ` Last Tag : % s
2021-08-03 09:55:21 +00:00
State : % s
Branch : % s
Commit : % s
Build Number : % s
Build OS : % s
Build Arch : % s
Build Date : % s
Extra : % s
`
2022-06-14 12:40:00 +00:00
cmdAutheliaBuildInfoShort = "Show the build information of Authelia"
cmdAutheliaBuildInfoLong = ` Show the build information of Authelia .
2021-08-03 09:55:21 +00:00
This outputs detailed version information about the specific version
of the Authelia binary . This information is embedded into Authelia
by the continuous integration .
This could be vital in debugging if you ' re not using a particular
tagged build of Authelia . It ' s suggested to provide it along with
your issue .
`
2022-06-14 12:40:00 +00:00
cmdAutheliaBuildInfoExample = ` authelia build-info `
2021-08-03 09:55:21 +00:00
2022-06-14 12:40:00 +00:00
cmdAutheliaAccessControlShort = "Helpers for the access control system"
2021-08-03 09:55:21 +00:00
2022-06-14 12:40:00 +00:00
cmdAutheliaAccessControlLong = ` Helpers for the access control system. `
2021-08-03 09:55:21 +00:00
2022-06-14 12:40:00 +00:00
cmdAutheliaAccessControlExample = ` authelia access-control --help `
2021-08-03 09:55:21 +00:00
2022-06-14 12:40:00 +00:00
cmdAutheliaAccessControlCheckPolicyShort = "Checks a request against the access control rules to determine what policy would be applied"
2021-08-03 09:55:21 +00:00
2022-06-14 12:40:00 +00:00
cmdAutheliaAccessControlCheckPolicyLong = `
2022-02-28 03:15:01 +00:00
Checks a request against the access control rules to determine what policy would be applied .
Legend :
# The rule position in the configuration .
* The first fully matched rule .
~ Potential match i . e . if the user was authenticated they may match this rule .
hit The criteria in this column is a match to the request .
miss The criteria in this column is not match to the request .
may The criteria in this column is potentially a match to the request .
Notes :
A rule that potentially matches a request will cause a redirection to occur in order to perform one - factor
authentication . This is so Authelia can adequately determine if the rule actually matches .
`
2022-06-14 12:40:00 +00:00
cmdAutheliaAccessControlCheckPolicyExample = ` authelia access - control check - policy -- config config . yml -- url https : //example.com
authelia access - control check - policy -- config config . yml -- url https : //example.com --username john
authelia access - control check - policy -- config config . yml -- url https : //example.com --groups admin,public
authelia access - control check - policy -- config config . yml -- url https : //example.com --username john --method GET
authelia access - control check - policy -- config config . yml -- url https : //example.com --username john --method GET --verbose`
cmdAutheliaStorageShort = "Manage the Authelia storage"
cmdAutheliaStorageLong = ` Manage the Authelia storage .
This subcommand has several methods to interact with the Authelia SQL Database . This allows doing several advanced
operations which would be much harder to do manually .
`
cmdAutheliaStorageExample = ` authelia storage --help `
cmdAutheliaStorageEncryptionShort = "Manage storage encryption"
cmdAutheliaStorageEncryptionLong = ` Manage storage encryption .
This subcommand allows management of the storage encryption . `
cmdAutheliaStorageEncryptionExample = ` authelia storage encryption --help `
cmdAutheliaStorageEncryptionCheckShort = "Checks the encryption key against the database data"
cmdAutheliaStorageEncryptionCheckLong = ` Checks the encryption key against the database data .
This is useful for validating all data that can be encrypted is intact . `
cmdAutheliaStorageEncryptionCheckExample = ` authelia storage encryption check
authelia storage encryption check -- verbose
authelia storage encryption check -- verbose -- config config . yml
authelia storage encryption check -- verbose -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageEncryptionChangeKeyShort = "Changes the encryption key"
cmdAutheliaStorageEncryptionChangeKeyLong = ` Changes the encryption key .
This subcommand allows you to change the encryption key of an Authelia SQL database . `
cmdAutheliaStorageEncryptionChangeKeyExample = ` authelia storage encryption change - key -- config config . yml -- new - encryption - key 0e95 cb49 - 5804 - 4 ad9 - be82 - bb04a9ddecd8
authelia storage encryption change - key -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- new - encryption - key 0e95 cb49 - 5804 - 4 ad9 - be82 - bb04a9ddecd8 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageUserShort = "Manages user settings"
cmdAutheliaStorageUserLong = ` Manages user settings .
This subcommand allows modifying and exporting user settings . `
cmdAutheliaStorageUserExample = ` authelia storage user --help `
cmdAutheliaStorageUserIdentifiersShort = "Manage user opaque identifiers"
cmdAutheliaStorageUserIdentifiersLong = ` Manage user opaque identifiers .
This subcommand allows performing various tasks related to the opaque identifiers for users . `
cmdAutheliaStorageUserIdentifiersExample = ` authelia storage user identifiers --help `
cmdAutheliaStorageUserIdentifiersExportShort = "Export the identifiers to a YAML file"
cmdAutheliaStorageUserIdentifiersExportLong = ` Export the identifiers to a YAML file .
This subcommand allows exporting the opaque identifiers for users in order to back them up . `
cmdAutheliaStorageUserIdentifiersExportExample = ` authelia storage user identifiers export
authelia storage user identifiers export -- file export . yaml
authelia storage user identifiers export -- file export . yaml -- config config . yml
authelia storage user identifiers export -- file export . yaml -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageUserIdentifiersImportShort = "Import the identifiers from a YAML file"
cmdAutheliaStorageUserIdentifiersImportLong = ` Import the identifiers from a YAML file .
This subcommand allows you to import the opaque identifiers for users from a YAML file .
The YAML file can either be automatically generated using the authelia storage user identifiers export command , or
manually provided the file is in the same format . `
cmdAutheliaStorageUserIdentifiersImportExample = ` authelia storage user identifiers import
2022-12-23 04:00:23 +00:00
authelia storage user identifiers import authelia . export . opaque - identifiers . yaml
authelia storage user identifiers import -- config config . yml export . yaml
authelia storage user identifiers import -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw export . yaml `
2022-06-14 12:40:00 +00:00
cmdAutheliaStorageUserIdentifiersGenerateShort = "Generate opaque identifiers in bulk"
cmdAutheliaStorageUserIdentifiersGenerateLong = ` Generate opaque identifiers in bulk .
This subcommand allows various options for generating the opaque identifies for users in bulk . `
cmdAutheliaStorageUserIdentifiersGenerateExample = ` authelia storage user identifiers generate -- users john , mary
authelia storage user identifiers generate -- users john , mary -- services openid
authelia storage user identifiers generate -- users john , mary -- services openid -- sectors = ",example.com,test.com"
authelia storage user identifiers generate -- users john , mary -- services openid -- sectors = ",example.com,test.com" -- config config . yml
authelia storage user identifiers generate -- users john , mary -- services openid -- sectors = ",example.com,test.com" -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageUserIdentifiersAddShort = "Add an opaque identifier for a user to the database"
cmdAutheliaStorageUserIdentifiersAddLong = ` Add an opaque identifier for a user to the database .
This subcommand allows manually adding an opaque identifier for a user to the database provided it ' s in the correct format . `
cmdAutheliaStorageUserIdentifiersAddExample = ` authelia storage user identifiers add john -- identifier f0919359 - 9 d15 - 4e15 - bcba - 83 b41620a073
authelia storage user identifiers add john -- identifier f0919359 - 9 d15 - 4e15 - bcba - 83 b41620a073 -- config config . yml
authelia storage user identifiers add john -- identifier f0919359 - 9 d15 - 4e15 - bcba - 83 b41620a073 -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnShort = "Manage WebAuthn devices"
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnLong = ` Manage WebAuthn devices .
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
This subcommand allows interacting with WebAuthn devices . `
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnExample = ` authelia storage user webauthn --help `
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnImportShort = "Perform imports of the WebAuthn devices"
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnImportLong = ` Perform imports of the WebAuthn devices .
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
This subcommand allows importing WebAuthn devices from various formats . `
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnImportExample = ` authelia storage user webauthn export
2022-12-23 04:00:23 +00:00
authelia storage user webauthn import -- file authelia . export . webauthn . yaml
authelia storage user webauthn import -- file authelia . export . webauthn . yaml -- config config . yml
authelia storage user webauthn import -- file authelia . export . webauthn . yaml -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnExportShort = "Perform exports of the WebAuthn devices"
2022-12-23 04:00:23 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnExportLong = ` Perform exports of the WebAuthn devices .
2022-12-23 04:00:23 +00:00
2023-04-10 07:01:23 +00:00
This subcommand allows exporting WebAuthn devices to various formats . `
2022-12-23 04:00:23 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnExportExample = ` authelia storage user webauthn export
2022-12-23 04:00:23 +00:00
authelia storage user webauthn export -- file authelia . export . webauthn . yaml
authelia storage user webauthn export -- config config . yml
authelia storage user webauthn export -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnListShort = "List WebAuthn devices"
2022-12-23 04:00:23 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnListLong = ` List WebAuthn devices .
2022-12-23 04:00:23 +00:00
2023-04-10 07:01:23 +00:00
This subcommand allows listing WebAuthn devices . `
2022-12-23 04:00:23 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnListExample = ` authelia storage user webauthn list
2022-10-19 07:17:55 +00:00
authelia storage user webauthn list john
authelia storage user webauthn list -- config config . yml
authelia storage user webauthn list john -- config config . yml
authelia storage user webauthn list -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw
authelia storage user webauthn list john -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnDeleteShort = "Delete a WebAuthn device"
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnDeleteLong = ` Delete a WebAuthn device .
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
This subcommand allows deleting a WebAuthn device directly from the database . `
2022-10-19 07:17:55 +00:00
2023-04-10 07:01:23 +00:00
cmdAutheliaStorageUserWebAuthnDeleteExample = ` authelia storage user webauthn delete john -- all
2022-10-19 07:17:55 +00:00
authelia storage user webauthn delete john -- all -- config config . yml
authelia storage user webauthn delete john -- all -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw
authelia storage user webauthn delete john -- description Primary
authelia storage user webauthn delete john -- description Primary -- config config . yml
authelia storage user webauthn delete john -- description Primary -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw
authelia storage user webauthn delete -- kid abc123
authelia storage user webauthn delete -- kid abc123 -- config config . yml
authelia storage user webauthn delete -- kid abc123 -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
2022-06-14 12:40:00 +00:00
cmdAutheliaStorageUserTOTPShort = "Manage TOTP configurations"
cmdAutheliaStorageUserTOTPLong = ` Manage TOTP configurations .
This subcommand allows deleting , exporting , and creating user TOTP configurations . `
cmdAutheliaStorageUserTOTPExample = ` authelia storage user totp --help `
cmdAutheliaStorageUserTOTPGenerateShort = "Generate a TOTP configuration for a user"
cmdAutheliaStorageUserTOTPGenerateLong = ` Generate a TOTP configuration for a user .
This subcommand allows generating a new TOTP configuration for a user ,
and overwriting the existing configuration if applicable . `
cmdAutheliaStorageUserTOTPGenerateExample = ` authelia storage user totp generate john
authelia storage user totp generate john -- period 90
authelia storage user totp generate john -- digits 8
authelia storage user totp generate john -- algorithm SHA512
authelia storage user totp generate john -- algorithm SHA512 -- config config . yml
authelia storage user totp generate john -- algorithm SHA512 -- config config . yml -- path john . png `
cmdAutheliaStorageUserTOTPDeleteShort = "Delete a TOTP configuration for a user"
cmdAutheliaStorageUserTOTPDeleteLong = ` Delete a TOTP configuration for a user .
This subcommand allows deleting a TOTP configuration directly from the database for a given user . `
cmdAutheliaStorageUserTOTPDeleteExample = ` authelia storage user totp delete john
authelia storage user totp delete john -- config config . yml
authelia storage user totp delete john -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
2022-12-23 04:00:23 +00:00
cmdAutheliaStorageUserTOTPImportShort = "Perform imports of the TOTP configurations"
cmdAutheliaStorageUserTOTPImportLong = ` Perform imports of the TOTP configurations .
This subcommand allows importing TOTP configurations from various formats . `
cmdAutheliaStorageUserTOTPImportExample = ` authelia storage user totp import authelia . export . totp . yaml
authelia storage user totp import -- config config . yml authelia . export . totp . yaml
authelia storage user totp import -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw authelia . export . totp . yaml `
2022-06-14 12:40:00 +00:00
cmdAutheliaStorageUserTOTPExportShort = "Perform exports of the TOTP configurations"
cmdAutheliaStorageUserTOTPExportLong = ` Perform exports of the TOTP configurations .
2022-12-23 04:00:23 +00:00
This subcommand allows exporting TOTP configurations to importable YAML files , or use the subcommands to export them to other non - importable formats . `
cmdAutheliaStorageUserTOTPExportExample = ` authelia storage user totp export -- file example . yaml
authelia storage user totp export -- config config . yml
authelia storage user totp export -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageUserTOTPExportCSVShort = "Perform exports of the TOTP configurations to a CSV"
cmdAutheliaStorageUserTOTPExportCSVLong = ` Perform exports of the TOTP configurations to a CSV .
2022-06-14 12:40:00 +00:00
2022-12-23 04:00:23 +00:00
This subcommand allows exporting TOTP configurations to a CSV . `
cmdAutheliaStorageUserTOTPExportCSVExample = ` authelia storage user totp export csv -- file users . csv
authelia storage user totp export csv -- config config . yml
authelia storage user totp export csv -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageUserTOTPExportURIShort = "Perform exports of the TOTP configurations to URIs"
cmdAutheliaStorageUserTOTPExportURILong = ` Perform exports of the TOTP configurations to URIs .
This subcommand allows exporting TOTP configurations to TOTP URIs . `
cmdAutheliaStorageUserTOTPExportURIExample = ` authelia storage user totp export uri
authelia storage user totp export uri -- config config . yml
authelia storage user totp export uri -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageUserTOTPExportPNGShort = "Perform exports of the TOTP configurations to QR code PNG images"
cmdAutheliaStorageUserTOTPExportPNGLong = ` Perform exports of the TOTP configurations to QR code PNG images .
This subcommand allows exporting TOTP configurations to PNG images with QR codes which represent the appropriate URI so they can be scanned . `
cmdAutheliaStorageUserTOTPExportPNGExample = ` authelia storage user totp export png
authelia storage user totp export png -- directory example / dir
authelia storage user totp export png -- config config . yml
authelia storage user totp export png -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
2022-06-14 12:40:00 +00:00
cmdAutheliaStorageSchemaInfoShort = "Show the storage information"
cmdAutheliaStorageSchemaInfoLong = ` Show the storage information .
This subcommand shows advanced information about the storage schema useful in some diagnostic tasks . `
cmdAutheliaStorageSchemaInfoExample = ` authelia storage schema - info
authelia storage schema - info -- config config . yml
authelia storage schema - info -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageMigrateShort = "Perform or list migrations"
cmdAutheliaStorageMigrateLong = ` Perform or list migrations .
This subcommand handles schema migration tasks . `
cmdAutheliaStorageMigrateExample = ` authelia storage migrate --help `
cmdAutheliaStorageMigrateHistoryShort = "Show migration history"
cmdAutheliaStorageMigrateHistoryLong = ` Show migration history .
This subcommand allows users to list previous migrations . `
cmdAutheliaStorageMigrateHistoryExample = ` authelia storage migrate history
authelia storage migrate history -- config config . yml
authelia storage migrate history -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageMigrateListUpShort = "List the up migrations available"
cmdAutheliaStorageMigrateListUpLong = ` List the up migrations available .
This subcommand lists the schema migrations available in this version of Authelia which are greater than the current
schema version of the database . `
cmdAutheliaStorageMigrateListUpExample = ` authelia storage migrate list - up
authelia storage migrate list - up -- config config . yml
authelia storage migrate list - up -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageMigrateListDownShort = "List the down migrations available"
cmdAutheliaStorageMigrateListDownLong = ` List the down migrations available .
This subcommand lists the schema migrations available in this version of Authelia which are less than the current
schema version of the database . `
cmdAutheliaStorageMigrateListDownExample = ` authelia storage migrate list - down
authelia storage migrate list - down -- config config . yml
authelia storage migrate list - down -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageMigrateUpShort = "Perform a migration up"
cmdAutheliaStorageMigrateUpLong = ` Perform a migration up .
This subcommand performs the schema migrations available in this version of Authelia which are greater than the current
schema version of the database . By default this will migrate up to the latest available , but you can customize this . `
cmdAutheliaStorageMigrateUpExample = ` authelia storage migrate up
authelia storage migrate up -- config config . yml
authelia storage migrate up -- target 20 -- config config . yml
authelia storage migrate up -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaStorageMigrateDownShort = "Perform a migration down"
cmdAutheliaStorageMigrateDownLong = ` Perform a migration down .
This subcommand performs the schema migrations available in this version of Authelia which are less than the current
schema version of the database . `
cmdAutheliaStorageMigrateDownExample = ` authelia storage migrate down -- target 20
authelia storage migrate down -- target 20 -- config config . yml
authelia storage migrate down -- target 20 -- encryption - key b3453fde - ecc2 - 4 a1f - 9422 - 2707 ddbed495 -- postgres . host postgres -- postgres . password autheliapw `
cmdAutheliaValidateConfigShort = "Check a configuration against the internal configuration validation mechanisms"
cmdAutheliaValidateConfigLong = ` Check a configuration against the internal configuration validation mechanisms .
This subcommand allows validation of the YAML and Environment configurations so that a configuration can be checked
prior to deploying it . `
cmdAutheliaValidateConfigExample = ` authelia validate - config
authelia validate - config -- config config . yml `
2022-06-27 08:27:57 +00:00
cmdAutheliaCryptoShort = "Perform cryptographic operations"
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
cmdAutheliaCryptoLong = ` Perform cryptographic operations .
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
This subcommand allows preforming cryptographic certificate , key pair , etc tasks . `
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
cmdAutheliaCryptoExample = ` authelia crypto --help `
2022-06-14 12:40:00 +00:00
2022-10-17 10:51:59 +00:00
cmdAutheliaCryptoRandShort = "Generate a cryptographically secure random string"
cmdAutheliaCryptoRandLong = ` Generate a cryptographically secure random string .
This subcommand allows generating cryptographically secure random strings for use for encryption keys , HMAC keys , etc . `
cmdAutheliaCryptoRandExample = ` authelia crypto rand -- help
authelia crypto rand -- length 80
authelia crypto rand - n 80
authelia crypto rand -- charset alphanumeric
authelia crypto rand -- charset alphabetic
authelia crypto rand -- charset ascii
authelia crypto rand -- charset numeric
authelia crypto rand -- charset numeric - hex
authelia crypto rand -- characters 01234567 89 ABCDEF `
cmdAutheliaCryptoHashShort = "Perform cryptographic hash operations"
cmdAutheliaCryptoHashLong = ` Perform cryptographic hash operations .
This subcommand allows preforming hashing cryptographic tasks . `
cmdAutheliaCryptoHashExample = ` authelia crypto hash --help `
cmdAutheliaCryptoHashValidateShort = "Perform cryptographic hash validations"
cmdAutheliaCryptoHashValidateLong = ` Perform cryptographic hash validations .
This subcommand allows preforming cryptographic hash validations . i . e . checking hash digests against a password . `
cmdAutheliaCryptoHashValidateExample = ` authelia crypto hash validate -- help
authelia crypto hash validate ' $ 5 $ rounds = 500000 $ WFjMpdCQxIkbNl0k $ M0qZaZoK8Gwdh8Cw5diHgGfe5pE0iJvxcVG3 . CVnQe . ' -- ' p @ ssw0rd ' `
cmdAutheliaCryptoHashGenerateShort = "Generate cryptographic hash digests"
cmdAutheliaCryptoHashGenerateLong = ` Generate cryptographic hash digests .
This subcommand allows generating cryptographic hash digests .
See the help for the subcommands if you want to override the configuration or defaults . `
cmdAutheliaCryptoHashGenerateExample = ` authelia crypto hash generate --help `
fmtCmdAutheliaCryptoHashGenerateSubShort = "Generate cryptographic %s hash digests"
fmtCmdAutheliaCryptoHashGenerateSubLong = ` Generate cryptographic % s hash digests .
This subcommand allows generating cryptographic % s hash digests . `
fmtCmdAutheliaCryptoHashGenerateSubExample = ` authelia crypto hash generate %s --help `
2022-06-27 08:27:57 +00:00
cmdAutheliaCryptoCertificateShort = "Perform certificate cryptographic operations"
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
cmdAutheliaCryptoCertificateLong = ` Perform certificate cryptographic operations .
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
This subcommand allows preforming certificate cryptographic tasks . `
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
cmdAutheliaCryptoCertificateExample = ` authelia crypto certificate --help `
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
fmtCmdAutheliaCryptoCertificateSubShort = "Perform %s certificate cryptographic operations"
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
fmtCmdAutheliaCryptoCertificateSubLong = ` Perform % s certificate cryptographic operations .
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
This subcommand allows preforming % s certificate cryptographic tasks . `
2022-06-14 12:40:00 +00:00
2022-10-17 10:51:59 +00:00
fmtCmdAutheliaCryptoCertificateSubExample = ` authelia crypto certificate %s --help `
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
fmtCmdAutheliaCryptoCertificateGenerateRequestShort = "Generate an %s private key and %s"
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
fmtCmdAutheliaCryptoCertificateGenerateRequestLong = ` Generate an % s private key and % s .
2022-06-14 12:40:00 +00:00
2022-06-27 08:27:57 +00:00
This subcommand allows generating an % s private key and % s . `
cmdAutheliaCryptoCertificateRSAGenerateExample = ` authelia crypto certificate rsa generate --help `
cmdAutheliaCryptoCertificateECDSAGenerateExample = ` authelia crypto certificate ecdsa generate --help `
cmdAutheliaCryptoCertificateEd25519GenerateExample = ` authelia crypto certificate ed25519 request --help `
cmdAutheliaCryptoCertificateRSARequestExample = ` authelia crypto certificate rsa request --help `
cmdAutheliaCryptoCertificateECDSARequestExample = ` authelia crypto certificate ecdsa request --help `
cmdAutheliaCryptoCertificateEd25519RequestExample = ` authelia crypto certificate ed25519 request --help `
cmdAutheliaCryptoPairShort = "Perform key pair cryptographic operations"
cmdAutheliaCryptoPairLong = ` Perform key pair cryptographic operations .
This subcommand allows preforming key pair cryptographic tasks . `
cmdAutheliaCryptoPairExample = ` authelia crypto pair --help `
cmdAutheliaCryptoPairSubShort = "Perform %s key pair cryptographic operations"
cmdAutheliaCryptoPairSubLong = ` Perform % s key pair cryptographic operations .
This subcommand allows preforming % s key pair cryptographic tasks . `
cmdAutheliaCryptoPairRSAExample = ` authelia crypto pair rsa --help `
cmdAutheliaCryptoPairECDSAExample = ` authelia crypto pair ecdsa --help `
cmdAutheliaCryptoPairEd25519Example = ` authelia crypto pair ed25519 --help `
fmtCmdAutheliaCryptoPairGenerateShort = "Generate a cryptographic %s key pair"
fmtCmdAutheliaCryptoPairGenerateLong = ` Generate a cryptographic % s key pair .
This subcommand allows generating an % s key pair . `
cmdAutheliaCryptoPairRSAGenerateExample = ` authelia crypto pair rsa generate --help `
cmdAutheliaCryptoPairECDSAGenerateExample = ` authelia crypto pair ecdsa generate --help `
cmdAutheliaCryptoPairEd25519GenerateExample = ` authelia crypto pair ed25519 generate --help `
2022-06-14 12:40:00 +00:00
)
2021-11-23 09:45:38 +00:00
const (
storageMigrateDirectionUp = "up"
storageMigrateDirectionDown = "down"
)
2021-11-25 01:56:58 +00:00
2022-06-27 08:27:57 +00:00
const (
cmdFlagNameDirectory = "directory"
2023-02-17 03:29:07 +00:00
cmdFlagNamePathCA = "path.ca"
cmdFlagNameBundles = "bundles"
cmdFlagNameFilePrivateKey = "file.private-key"
cmdFlagNameFilePublicKey = "file.public-key"
cmdFlagNameFileCertificate = "file.certificate"
cmdFlagNameFileBundleChain = "file.bundle.chain"
cmdFlagNameFileBundlePrivKeyChain = "file.bundle.priv-chain"
cmdFlagNameFileCAPrivateKey = "file.ca-private-key"
cmdFlagNameFileCACertificate = "file.ca-certificate"
cmdFlagNameFileCSR = "file.csr"
2022-06-27 08:27:57 +00:00
cmdFlagNameExtendedUsage = "extended-usage"
cmdFlagNameSignature = "signature"
cmdFlagNameCA = "ca"
cmdFlagNameSANs = "sans"
cmdFlagNameCommonName = "common-name"
cmdFlagNameOrganization = "organization"
cmdFlagNameOrganizationalUnit = "organizational-unit"
cmdFlagNameCountry = "country"
cmdFlagNameProvince = "province"
cmdFlagNameLocality = "locality"
cmdFlagNameStreetAddress = "street-address"
cmdFlagNamePostcode = "postcode"
cmdFlagNameNotBefore = "not-before"
2023-02-11 03:11:40 +00:00
cmdFlagNameNotAfter = "not-after"
2022-06-27 08:27:57 +00:00
cmdFlagNameDuration = "duration"
cmdFlagNamePKCS8 = "pkcs8"
cmdFlagNameBits = "bits"
cmdFlagNameCurve = "curve"
2022-10-17 10:51:59 +00:00
2022-10-20 20:41:46 +00:00
cmdFlagNamePassword = "password"
cmdFlagNameRandom = "random"
cmdFlagNameRandomLength = "random.length"
cmdFlagNameRandomCharSet = "random.charset"
cmdFlagNameRandomCharacters = "random.characters"
cmdFlagNameNoConfirm = "no-confirm"
cmdFlagNameVariant = "variant"
cmdFlagNameCost = "cost"
cmdFlagNameIterations = "iterations"
cmdFlagNameParallelism = "parallelism"
cmdFlagNameBlockSize = "block-size"
cmdFlagNameMemory = "memory"
cmdFlagNameKeySize = "key-size"
cmdFlagNameSaltSize = "salt-size"
cmdFlagNameProfile = "profile"
2022-12-22 00:21:29 +00:00
2022-12-22 06:34:20 +00:00
cmdConfigDefaultContainer = "/config/configuration.yml"
cmdConfigDefaultDaemon = "/etc/authelia/configuration.yml"
2022-12-23 00:03:50 +00:00
cmdFlagNameConfig = "config"
cmdFlagEnvNameConfig = "X_AUTHELIA_CONFIG"
2022-10-17 10:51:59 +00:00
2022-12-21 09:48:14 +00:00
cmdFlagNameConfigExpFilters = "config.experimental.filters"
2022-12-23 00:03:50 +00:00
cmdFlagEnvNameConfigFilters = "X_AUTHELIA_CONFIG_FILTERS"
2022-12-21 09:48:14 +00:00
2022-11-04 00:32:49 +00:00
cmdFlagNameCharSet = "charset"
cmdFlagValueCharSet = "alphanumeric"
cmdFlagUsageCharset = "sets the charset for the random password, options are 'ascii', 'alphanumeric', 'alphabetic', 'numeric', 'numeric-hex', and 'rfc3986'"
cmdFlagNameCharacters = "characters"
cmdFlagUsageCharacters = "sets the explicit characters for the random string"
cmdFlagNameLength = "length"
cmdFlagUsageLength = "sets the character length for the random string"
2022-11-25 12:44:55 +00:00
cmdFlagNameNewEncryptionKey = "new-encryption-key"
cmdFlagNameFile = "file"
cmdFlagNameUsers = "users"
cmdFlagNameServices = "services"
cmdFlagNameSectors = "sectors"
cmdFlagNameIdentifier = "identifier"
cmdFlagNameService = "service"
cmdFlagNameSector = "sector"
cmdFlagNameDescription = "description"
cmdFlagNameAll = "all"
cmdFlagNameKeyID = "kid"
cmdFlagNameVerbose = "verbose"
cmdFlagNameSecret = "secret"
cmdFlagNameSecretSize = "secret-size"
cmdFlagNamePeriod = "period"
cmdFlagNameDigits = "digits"
cmdFlagNameAlgorithm = "algorithm"
cmdFlagNameIssuer = "issuer"
cmdFlagNameForce = "force"
cmdFlagNamePath = "path"
cmdFlagNameTarget = "target"
cmdFlagNameDestroyData = "destroy-data"
cmdFlagNameEncryptionKey = "encryption-key"
cmdFlagNameSQLite3Path = "sqlite.path"
cmdFlagNameMySQLHost = "mysql.host"
cmdFlagNameMySQLPort = "mysql.port"
cmdFlagNameMySQLDatabase = "mysql.database"
cmdFlagNameMySQLUsername = "mysql.username"
cmdFlagNameMySQLPassword = "mysql.password"
cmdFlagNamePostgreSQLHost = "postgres.host"
cmdFlagNamePostgreSQLPort = "postgres.port"
cmdFlagNamePostgreSQLDatabase = "postgres.database"
cmdFlagNamePostgreSQLSchema = "postgres.schema"
cmdFlagNamePostgreSQLUsername = "postgres.username"
cmdFlagNamePostgreSQLPassword = "postgres.password"
2022-06-27 08:27:57 +00:00
)
const (
2022-10-17 10:51:59 +00:00
cmdUseHash = "hash"
cmdUseHashArgon2 = "argon2"
cmdUseHashSHA2Crypt = "sha2crypt"
cmdUseHashPBKDF2 = "pbkdf2"
cmdUseHashBCrypt = "bcrypt"
cmdUseHashSCrypt = "scrypt"
2022-12-23 04:00:23 +00:00
cmdUseExport = "export"
cmdUseImportFileName = "import <filename>"
2022-10-17 10:51:59 +00:00
cmdUseCrypto = "crypto"
cmdUseRand = "rand"
2022-06-27 08:27:57 +00:00
cmdUseCertificate = "certificate"
cmdUseGenerate = "generate"
2022-10-17 10:51:59 +00:00
cmdUseValidate = "validate"
cmdUseFmtValidate = "%s [flags] -- <digest>"
2022-06-27 08:27:57 +00:00
cmdUseRequest = "request"
cmdUsePair = "pair"
cmdUseRSA = "rsa"
cmdUseECDSA = "ecdsa"
cmdUseEd25519 = "ed25519"
)
const (
cryptoCertPubCertOut = "certificate"
cryptoCertCSROut = "certificate signing request"
2022-10-17 10:51:59 +00:00
prefixFilePassword = "authentication_backend.file.password"
2022-06-27 08:27:57 +00:00
)
2021-11-25 01:56:58 +00:00
var (
2022-12-22 00:21:29 +00:00
errStorageSchemaOutdated = errors . New ( "storage schema outdated" )
errStorageSchemaIncompatible = errors . New ( "storage schema incompatible" )
2021-11-25 01:56:58 +00:00
)
2022-04-09 07:13:19 +00:00
const (
2022-04-25 08:49:18 +00:00
identifierServiceOpenIDConnect = "openid"
2022-11-25 12:44:55 +00:00
invalid = "invalid"
2022-04-25 08:49:18 +00:00
)
var (
validIdentifierServices = [ ] string { identifierServiceOpenIDConnect }
2022-04-09 07:13:19 +00:00
)
2022-12-22 06:34:20 +00:00
const (
helpTopicConfigFilters = ` Configuration Filters are an experimental system for templating configuration files .
Using the -- config . experimental . filters flag users can define multiple filters to apply to all configuration files that
are loaded by Authelia . These filters are applied after loading the file data from the filesystem , but before they are
parsed by the relevant file format parser .
The filters are processed in the order specified , and the content of each configuration file is logged as a base64 raw
string when the log level is set to trace .
The following filters are available :
expand - env :
This filter expands environment variables in place where specified in the configuration . For example the string
$ { DOMAIN_NAME } will be replaced with the value from the DOMAIN_NAME environment variable or an empty string .
template :
This filter uses the go template system to filter the file . In addition to the standard functions , several
custom functions exist to facilitate this process . The ' env ' function takes a single string does similar to the
' expand - env ' filter for example .
For a full list of functions see : https : //www.authelia.com/configuration/methods/files/#functions`
2022-12-23 00:03:50 +00:00
helpTopicConfig = ` Configuration can be specified in multiple layers where each layer is a different source from
the last . The layers are loaded in the order below where each layer potentially overrides the individual settings from
previous layers with the individual settings it provides ( i . e . if the same setting is specified twice ) .
Layers :
- File / Directory Paths
- Environment Variables
- Secrets
File / Directory Paths :
File / Directory Paths can be specified either via the ' -- config ' CLI argument or the ' X_AUTHELIA_CONFIG ' environment
variable . If both the environment variable AND the CLI argument are specified the environment variable is completely
ignored . These values both take lists separated by commas .
Directories that are loaded via this method load all files with relevant extensions from the directory , this is not
recursive . This means all files with these extensions must be Authelia configuration files with valid syntax .
The paths specified are loaded in order , where individual settings specified by later files potentially overrides
individual settings by later files ( i . e . if the same setting is specified twice ) . Files specified Files in
directories are loaded in lexicographic order .
The files loaded via this method can be interpolated or templated via the configuration filters . Read more about
this topic by running : authelia - h authelia filters
Environment Variables :
Most configuration options in Authelia can be specified via an environment variable . The available options and the
specific environment variable mapping can be found here : https : //www.authelia.com/configuration/methods/environment/
Secrets :
Some configuration options in Authelia can be specified via an environment variable which refers to the location of
a file ; also known as a secret . Every configuration key that ends with the following strings can be loaded in this
way : ' key ' , ' secret ' , ' password ' , ' token ' .
The available options and the specific secret mapping can be found here : https : //www.authelia.com/configuration/methods/secrets/`
2023-02-11 03:11:40 +00:00
helpTopicTimeLayouts = ` Several commands take date time inputs which are parsed . These inputs are parsed with
specific layouts in mind and these layouts are handled in order .
Format :
The layouts use a format where specific sequence of characters are representative of a portion of each timestamp .
See the go documentation for more information on how these layouts work , however the layouts are fairly self
explanatory and you can just use standard unix timestamps if desired .
Layouts :
Unix ( µ s ) : 1675899060000000
Unix ( ms ) : 1675899060000
Unix ( s ) : 1675899060
Simple : Jan 2 15 : 04 : 05 2006
Date Time : 2006 - 01 - 02 15 : 04 : 05
RFC3339 : 2006 - 01 - 02 T15 : 04 : 05 Z07 : 00
RFC1123 with numeric timezone : Mon , 02 Jan 2006 15 : 04 : 05 - 0700
Ruby Date : Mon Jan 02 15 : 04 : 05 - 0700 2006
ANSIC : Mon Jan _2 15 : 04 : 05 2006
Date : 2006 - 01 - 02 `
2022-12-22 06:34:20 +00:00
)
2023-02-11 10:45:26 +00:00
const (
2023-02-12 10:49:55 +00:00
fmtLogServerListening = "Listening for %s connections on '%s' path '%s'"
2023-02-11 10:45:26 +00:00
)
2023-02-20 05:37:22 +00:00
const (
logFieldService = "service"
logFieldFile = "file"
logFieldOP = "op"
serviceTypeServer = "server"
serviceTypeWatcher = "watcher"
)