Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- ,
Start using this module
Add this module to your Puppetfile:
mod 'opuscodium-sogo', '5.1.0'
Learn more about managing modules with a PuppetfileDocumentation
sogo
Table of Contents
Module Description
The sogo module lets you use Puppet to manage the SOGo groupware.
Usage
Beginning with sogo
SOGo needs a PostgreSQL database to store it's data. This database is not managed by the module. It is recommended to configure the database and sogo in a profile in your control-repo:
$db_hostname = 'localhost'
$db_database = 'sogo'
$db_username = 'sogo'
$db_password = 'secret'
postgresql::server::db { $db_database:
user => $db_username,
password => postgresql::postgresql_password($db_username, $db_password),
before => Class['sogo::service'],
}
class { 'sogo':
language => 'French',
time_zone => 'Pacific/Tahiti',
user_sources => [
{
type => 'ldap',
cn_field_name => 'cn',
uid_field_name => 'uid',
mail_field_names => [
'mail',
'mailAlternateAddress',
],
id_field_name => 'cn',
bind_fields => [
'uid',
'mail',
],
base_dn => 'ou=people,dc=example,dc=com',
bind_dn => 'cn=apache,ou=services,dc=example,dc=com',
bind_password => 'secret',
can_authenticate => true,
display_name => 'LDAP Addressbook',
hostname => 'ldap://ldap.example.com:389/????!StartTLS',
id => 'public',
is_address_book => true,
},
],
profile_url => "postgresql://${db_username}:${db_password}@${db_hostname}/${db_database}/sogo_user_profile",
folder_info_url => "postgresql://${db_username}:${db_password}@${db_hostname}/${db_database}/sogo_folder_info",
sessions_folder_url => "postgresql://${db_username}:${db_password}@${db_hostname}/${db_database}/sogo_sessions_folder",
}
Serving SOGo through Apache
With the above configuration, SOGo is reachable at http://127.0.0.1:20000/SOGo. You can configure Apache to act as a proxy to expose the service to the Internet:
apache::vhost { 'sogo.example.com':
port => 443,
ssl => true,
mdomain => true,
manage_docroot => flase,
docroot => '/usr/local/GNUstep/Local/Library/SOGo',
aliases => [
{
alias => '/SOGo.woa/WebServerResources/',
path => '/usr/local/GNUstep/Local/Library/SOGo/WebServerResources/',
},
{
alias => '/SOGo/WebServerResources/',
path => '/usr/local/GNUstep/Local/Library/SOGo/WebServerResources/',
},
],
directories => [
{
path => '/usr/local/GNUstep/Local/Library/SOGo',
expires_active => 'on',
expires_default => 'access plus 1 year',
allow_override => 'None',
},
],
headers => [
'unset Content-Security-Policy',
],
proxy_pass => [
{
path => '/SOGo',
url => 'http://127.0.0.1:20000/SOGo',
retry => 0,
},
],
request_headers => [
'set "x-webobjects-server-port" "443"',
'set "x-webobjects-server-name" "sogo.example.com"',
'set "x-webobjects-server-url" "https://sogo.example.com"',
'set "x-webobjects-server-protocol" "HTTP/1.0"',
],
rewrites => [
{
rewrite_rule => [
'^/$ /SOGo [R=301]',
'^/.well-known/caldav/?$ /SOGo/dav [R=301]',
'^/.well-known/carddav/?$ /SOGo/dav [R=301]',
],
}
],
}
Reference
Table of Contents
Classes
Public Classes
sogo
: Manage SOGo
Private Classes
sogo::config
: Manage SOGo configuration filesogo::package
: Manage the SOGo packagesogo::service
: Manage the SOGo service
Functions
sogo::to_plist
: Convert a data structure and output it in OpenStep plist format
Data types
Sogo::Calendar_role
: Available roles for calendarsSogo::Classification
: Available classifications for calendars and contactsSogo::Contacts_role
: Available roles for contactsSogo::Domain
: Describe a SOGo domainSogo::First_week_of_year
: Available values for the first week of the yearSogo::Mail_junk_settings
: Describe SOGo junk mail settingsSogo::Refresh_view_check
: Available values for refreshing viewsSogo::Reminder
: Supported values for SOGo remindersSogo::Usersource
: Describe a SOGo user sourceSogo::Usersource_ldap
: Describe a SOGo LDAP user sourceSogo::Usersource_sql
: Describe a SOGo SQL user source
Classes
sogo
Manage SOGo
Parameters
The following parameters are available in the sogo
class:
language
time_zone
login_module
password_change_enabled
user_sources
profile_url
folder_info_url
sessions_folder_url
configuration_file
package
service
configuration_group
configuration_owner
configuration_mode
workers_count
listen_queue_size
port
log_file
pid_file
watch_dog_request_timeout
max_upload_size
maximum_message_size_limit
mem_limit
memcached_host
cache_cleanup_interval
authentication_type
trust_proxy_authentication
encryption_key
cas_service_url
cas_logout_enabled
address_book_dav_access_enabled
calendar_dav_access_enabled
saml2_private_key_location
saml2_certificate_location
saml2_idp_metadata_location
saml2_idp_public_key_location
saml2_idp_certificate_location
saml2_login_attribute
saml2_logout_enabled
saml2_logout_url
mail_domain
appointment_send_email_notifications
folders_send_email_notifications
acls_send_email_notifications
calendar_default_roles
contacts_default_roles
super_usernames
notify_on_personal_modifications
notify_on_external_modifications
iphone_force_all_day_transparency
enable_public_access
disable_sharing
supported_languages
hide_system_email
search_minimum_word_length
maximum_failed_login_count
maximum_failed_login_interval
failed_login_block_interval
maximum_message_submission_count
maximum_recipient_count
maximum_submission_interval
message_submission_block_interval
maximum_request_count
maximum_request_interval
request_block_interval
xsrf_validation_enabled
password_recovery_enabled
password_recovery_domains
jwt_secret
create_identities_disabled
url_encryption_enabled
url_encryption_passphrase
global_address_book_first_entries
global_address_book_first_entries_count
secret_type
secret_value
email_alarms_folder_url
disable_organizer_event_check
store_url
acl_url
cache_folder_url
admin_url
ldap_contact_info_attribute
ldap_query_limit
ldap_query_timeout
ldap_group_expansion_enabled
mailing_mechanism
smtp_server
smtp_authentication_type
smtp_master_user_enabled
smtp_master_user_username
smtp_master_user_password
send_mail
drafts_folder_name
sent_folder_name
trash_folder_name
junk_folder_name
imap_cas_service_name
imap_server
sieve_server
sieve_folder_encoding
mail_show_subscribed_folders_only
imap_acl_style
imap_acl_conforms_to_imap_ext
mail_spool_path
mime_build_mime_temp_directory
imap4_disable_imap4_pooling
imap4_auth_mechanism
imap4_connection_group_id_prefix
force_external_login_with_email
page_title
help_url
favicon_relative_url
zip_path
soft_quota_ratio
mail_use_outlook_style_replies
mail_list_view_columns_order
mail_add_outgoing_addresses
mail_certificate_enabled
selected_address_book
external_avatars_enabled
gravatar_enabled
vacation_enabled
vacation_period_enabled
vacation_default_subject
vacation_header_template_file
vacation_footer_template_file
forward_enabled
forward_constraints
forward_constraints_domains
notification_enabled
sieve_scripts_enabled
sieve_script_header_template_file
sieve_script_footer_template_file
sieve_filters
refresh_view_intervals
refresh_view_check
mail_auxiliary_user_accounts_enabled
default_calendar
day_start_time
day_end_time
first_day_of_week
first_week_of_year
time_format
calendar_categories
calendar_categories_colors
calendar_events_default_classification
calendar_tasks_default_classification
calendar_default_reminder
free_busy_default_interval
dav_calendar_start_time_limit
busy_off_hours
mail_message_forwarding
mail_reply_placement
mail_signature_placement
mail_use_signature_on_new
mail_use_signature_on_reply
mail_use_signature_on_forward
mail_compose_message_type
mail_compose_window
enable_email_alarms
contacts_categories
ui_additional_js_files
mail_custom_from_enabled
subscription_folder_format
uix_additional_preferences
mail_junk_settings
mail_keep_drafts_after_send
domains
enable_domain_based_uid
login_domains
domains_visibility
language
Data type: Optional[String[1]]
Default language used in the Web interface
Default value: undef
time_zone
Data type: Optional[String[1]]
Default time zone for users
Default value: undef
login_module
Data type: Optional[Enum['Calendar', 'Mail', 'Contacts']]
Module to show after login
Default value: undef
password_change_enabled
Data type: Optional[Boolean]
Allow or not users to change their passwords from SOGo
Default value: undef
user_sources
Data type: Optional[Array[Sogo::Usersource]]
LDAP and/or SQL sources used for authentication and global address books
Default value: undef
profile_url
Data type: Optional[String[1]]
Database URL so that SOGo can retrieve user profiles
Default value: undef
folder_info_url
Data type: Optional[String[1]]
Database URL so that SOGo can retrieve the location of user folders
Default value: undef
sessions_folder_url
Data type: Optional[String[1]]
Database URL so that SOGo can store and retrieve secured user sessions information
Default value: undef
configuration_file
Data type: String[1]
Path to SOGo configuration file
package
Data type: String[1]
Package name
service
Data type: String[1]
Ensure parameter for the SOGo package
configuration_group
Data type: String[1]
Group of the SOGo configuration file
configuration_owner
Data type: String[1]
User of the SOGo configuration file
Default value: 'root'
configuration_mode
Data type: Stdlib::Filemode
Permissions of the SOGo configuration file
Default value: '0640'
workers_count
Data type: Optional[Integer[1]]
Default value: undef
listen_queue_size
Data type: Optional[Integer[1]]
Default value: undef
port
Data type: Optional[String[1]]
Default value: undef
log_file
Data type: Optional[Stdlib::Absolutepath]
Default value: undef
pid_file
Data type: Optional[Stdlib::Absolutepath]
Default value: undef
watch_dog_request_timeout
Data type: Optional[Integer[1]]
Default value: undef
max_upload_size
Data type: Optional[Integer[0]]
Default value: undef
maximum_message_size_limit
Data type: Optional[Integer[0]]
Default value: undef
mem_limit
Data type: Optional[Integer[0]]
Default value: undef
memcached_host
Data type: Optional[String[1]]
Default value: undef
cache_cleanup_interval
Data type: Optional[Integer[0]]
Default value: undef
authentication_type
Data type: Optional[Enum['', 'cas', 'saml2']]
Default value: undef
trust_proxy_authentication
Data type: Optional[Boolean]
Default value: undef
encryption_key
Data type: Optional[Sensitive[String[1]]]
Default value: undef
cas_service_url
Data type: Optional[String[1]]
Default value: undef
cas_logout_enabled
Data type: Optional[Boolean]
Default value: undef
address_book_dav_access_enabled
Data type: Optional[Boolean]
Default value: undef
calendar_dav_access_enabled
Data type: Optional[Boolean]
Default value: undef
saml2_private_key_location
Data type: Optional[String[1]]
Default value: undef
saml2_certificate_location
Data type: Optional[String[1]]
Default value: undef
saml2_idp_metadata_location
Data type: Optional[String[1]]
Default value: undef
saml2_idp_public_key_location
Data type: Optional[String[1]]
Default value: undef
saml2_idp_certificate_location
Data type: Optional[String[1]]
Default value: undef
saml2_login_attribute
Data type: Optional[String[1]]
Default value: undef
saml2_logout_enabled
Data type: Optional[Boolean]
Default value: undef
saml2_logout_url
Data type: Optional[String[1]]
Default value: undef
mail_domain
Data type: Optional[String[1]]
Default value: undef
appointment_send_email_notifications
Data type: Optional[Boolean]
Default value: undef
folders_send_email_notifications
Data type: Optional[Boolean]
Default value: undef
acls_send_email_notifications
Data type: Optional[Boolean]
Default value: undef
calendar_default_roles
Data type: Optional[Array[Sogo::Calendar_role]]
Default value: undef
contacts_default_roles
Data type: Optional[Array[Sogo::Contacts_role]]
Default value: undef
super_usernames
Data type: Optional[Array[String[1]]]
Default value: undef
notify_on_personal_modifications
Data type: Optional[Boolean]
Default value: undef
notify_on_external_modifications
Data type: Optional[Boolean]
Default value: undef
iphone_force_all_day_transparency
Data type: Optional[Boolean]
Default value: undef
enable_public_access
Data type: Optional[Boolean]
Default value: undef
disable_sharing
Data type: Optional[Boolean]
Default value: undef
supported_languages
Data type: Optional[Array[String[1]]]
Default value: undef
hide_system_email
Data type: Optional[Boolean]
Default value: undef
search_minimum_word_length
Data type: Optional[Integer[0]]
Default value: undef
maximum_failed_login_count
Data type: Optional[Integer[0]]
Default value: undef
maximum_failed_login_interval
Data type: Optional[Integer[0]]
Default value: undef
failed_login_block_interval
Data type: Optional[Integer[0]]
Default value: undef
maximum_message_submission_count
Data type: Optional[Integer[0]]
Default value: undef
maximum_recipient_count
Data type: Optional[Integer[0]]
Default value: undef
maximum_submission_interval
Data type: Optional[Integer[0]]
Default value: undef
message_submission_block_interval
Data type: Optional[Integer[0]]
Default value: undef
maximum_request_count
Data type: Optional[Integer[0]]
Default value: undef
maximum_request_interval
Data type: Optional[Integer[0]]
Default value: undef
request_block_interval
Data type: Optional[Integer[0]]
Default value: undef
xsrf_validation_enabled
Data type: Optional[Boolean]
Default value: undef
password_recovery_enabled
Data type: Optional[Boolean]
Default value: undef
password_recovery_domains
Data type: Optional[Array[String[1]]]
Default value: undef
jwt_secret
Data type: Optional[Sensitive[String[1]]]
Default value: undef
create_identities_disabled
Data type: Optional[Boolean]
Default value: undef
url_encryption_enabled
Data type: Optional[Boolean]
Default value: undef
url_encryption_passphrase
Data type: Optional[Sensitive[String[1]]]
Default value: undef
global_address_book_first_entries
Data type: Optional[Boolean]
Default value: undef
global_address_book_first_entries_count
Data type: Optional[Integer[0]]
Default value: undef
secret_type
Data type: Optional[Enum['plain', 'env', 'none']]
Default value: undef
secret_value
Data type: Optional[Variant[String[1], Sensitive[String[1]]]]
Default value: undef
email_alarms_folder_url
Data type: Optional[String[1]]
Default value: undef
disable_organizer_event_check
Data type: Optional[Boolean]
Default value: undef
store_url
Data type: Optional[String[1]]
Default value: undef
acl_url
Data type: Optional[String[1]]
Default value: undef
cache_folder_url
Data type: Optional[String[1]]
Default value: undef
admin_url
Data type: Optional[String[1]]
Default value: undef
ldap_contact_info_attribute
Data type: Optional[String[1]]
Default value: undef
ldap_query_limit
Data type: Optional[String[1]]
Default value: undef
ldap_query_timeout
Data type: Optional[Integer[0]]
Default value: undef
ldap_group_expansion_enabled
Data type: Optional[Boolean]
Default value: undef
mailing_mechanism
Data type: Optional[Enum['sendmail', 'smtp']]
Default value: undef
smtp_server
Data type: Optional[String[1]]
Default value: undef
smtp_authentication_type
Data type: Optional[Enum['PLAIN']]
Default value: undef
smtp_master_user_enabled
Data type: Optional[Boolean]
Default value: undef
smtp_master_user_username
Data type: Optional[String[1]]
Default value: undef
smtp_master_user_password
Data type: Optional[Sensitive[String[1]]]
Default value: undef
send_mail
Data type: Optional[String[1]]
Default value: undef
drafts_folder_name
Data type: Optional[String[1]]
Default value: undef
sent_folder_name
Data type: Optional[String[1]]
Default value: undef
trash_folder_name
Data type: Optional[String[1]]
Default value: undef
junk_folder_name
Data type: Optional[String[1]]
Default value: undef
imap_cas_service_name
Data type: Optional[String[1]]
Default value: undef
imap_server
Data type: Optional[String[1]]
Default value: undef
sieve_server
Data type: Optional[String[1]]
Default value: undef
sieve_folder_encoding
Data type: Optional[Enum['UTF-7', 'UTF-8']]
Default value: undef
mail_show_subscribed_folders_only
Data type: Optional[Boolean]
Default value: undef
imap_acl_style
Data type: Optional[Enum['rfc2086', 'rfc4314']]
Default value: undef
imap_acl_conforms_to_imap_ext
Data type: Optional[Boolean]
Default value: undef
mail_spool_path
Data type: Optional[Stdlib::Absolutepath]
Default value: undef
mime_build_mime_temp_directory
Data type: Optional[Stdlib::Absolutepath]
Default value: undef
imap4_disable_imap4_pooling
Data type: Optional[Boolean]
Default value: undef
imap4_auth_mechanism
Data type: Optional[String[1]]
Default value: undef
imap4_connection_group_id_prefix
Data type: Optional[String[1]]
Default value: undef
force_external_login_with_email
Data type: Optional[Boolean]
Default value: undef
page_title
Data type: Optional[String[1]]
Default value: undef
help_url
Data type: Optional[Stdlib::HTTPUrl]
Default value: undef
favicon_relative_url
Data type: Optional[String[1]]
Default value: undef
zip_path
Data type: Optional[Stdlib::Absolutepath]
Default value: undef
soft_quota_ratio
Data type: Optional[Float[0,1]]
Default value: undef
mail_use_outlook_style_replies
Data type: Optional[Boolean]
Default value: undef
mail_list_view_columns_order
Data type: Optional[Array[String[1]]]
Default value: undef
mail_add_outgoing_addresses
Data type: Optional[Boolean]
Default value: undef
mail_certificate_enabled
Data type: Optional[Boolean]
Default value: undef
selected_address_book
Data type: Optional[String[1]]
Default value: undef
external_avatars_enabled
Data type: Optional[Boolean]
Default value: undef
gravatar_enabled
Data type: Optional[Boolean]
Default value: undef
vacation_enabled
Data type: Optional[Boolean]
Default value: undef
vacation_period_enabled
Data type: Optional[Boolean]
Default value: undef
vacation_default_subject
Data type: Optional[String[1]]
Default value: undef
vacation_header_template_file
Data type: Optional[Stdlib::Absolutepath]
Default value: undef
vacation_footer_template_file
Data type: Optional[Stdlib::Absolutepath]
Default value: undef
forward_enabled
Data type: Optional[Boolean]
Default value: undef
forward_constraints
Data type: Optional[Integer[0,2]]
Default value: undef
forward_constraints_domains
Data type: Optional[Array[String[1]]]
Default value: undef
notification_enabled
Data type: Optional[Boolean]
Default value: undef
sieve_scripts_enabled
Data type: Optional[Boolean]
Default value: undef
sieve_script_header_template_file
Data type: Optional[Stdlib::Absolutepath]
Default value: undef
sieve_script_footer_template_file
Data type: Optional[Stdlib::Absolutepath]
Default value: undef
sieve_filters
Data type: Optional[Array[String[1]]]
Default value: undef
refresh_view_intervals
Data type: Optional[Array[Integer[1]]]
Default value: undef
refresh_view_check
Data type: Optional[Sogo::Refresh_view_check]
Default value: undef
mail_auxiliary_user_accounts_enabled
Data type: Optional[Boolean]
Default value: undef
default_calendar
Data type: Optional[Enum['selected', 'personal', 'first']]
Default value: undef
day_start_time
Data type: Optional[Integer[0,12]]
Default value: undef
day_end_time
Data type: Optional[Integer[12,23]]
Default value: undef
first_day_of_week
Data type: Optional[Integer[0,6]]
Default value: undef
first_week_of_year
Data type: Optional[Sogo::First_week_of_year]
Default value: undef
time_format
Data type: Optional[String[1]]
Default value: undef
calendar_categories
Data type: Optional[Array[String[1]]]
Default value: undef
calendar_categories_colors
Data type: Optional[Hash[String[1], String[1]]]
Default value: undef
calendar_events_default_classification
Data type: Optional[Sogo::Classification]
Default value: undef
calendar_tasks_default_classification
Data type: Optional[Sogo::Classification]
Default value: undef
calendar_default_reminder
Data type: Optional[Sogo::Reminder]
Default value: undef
free_busy_default_interval
Data type: Optional[Array[Integer[0],2,2]]
Default value: undef
dav_calendar_start_time_limit
Data type: Optional[Integer[0]]
Default value: undef
busy_off_hours
Data type: Optional[Boolean]
Default value: undef
mail_message_forwarding
Data type: Optional[Enum['inline', 'attached']]
Default value: undef
mail_reply_placement
Data type: Optional[Enum['above', 'below']]
Default value: undef
mail_signature_placement
Data type: Optional[Enum['above', 'below']]
Default value: undef
mail_use_signature_on_new
Data type: Optional[Boolean]
Default value: undef
mail_use_signature_on_reply
Data type: Optional[Boolean]
Default value: undef
mail_use_signature_on_forward
Data type: Optional[Boolean]
Default value: undef
mail_compose_message_type
Data type: Optional[Enum['text', 'html']]
Default value: undef
mail_compose_window
Data type: Optional[Enum['inline', 'popup']]
Default value: undef
enable_email_alarms
Data type: Optional[Boolean]
Default value: undef
contacts_categories
Data type: Optional[Array[String[1]]]
Default value: undef
ui_additional_js_files
Data type: Optional[Array[String[1]]]
Default value: undef
mail_custom_from_enabled
Data type: Optional[Boolean]
Default value: undef
subscription_folder_format
Data type: Optional[String[1]]
Default value: undef
uix_additional_preferences
Data type: Optional[Boolean]
Default value: undef
mail_junk_settings
Data type: Optional[Sogo::Mail_junk_settings]
Default value: undef
mail_keep_drafts_after_send
Data type: Optional[Boolean]
Default value: undef
domains
Data type: Optional[Hash[String[1], Sogo::Domain]]
Default value: undef
enable_domain_based_uid
Data type: Optional[Boolean]
Default value: undef
login_domains
Data type: Optional[Array[String[1]]]
Default value: undef
domains_visibility
Data type: Optional[Array[Array[String[1]]]]
Default value: undef
Functions
sogo::to_plist
Type: Ruby 4.x API
Convert a data structure and output it in OpenStep plist format
Examples
Output OpenStep plist to a file
file { '/tmp/my.yaml':
ensure => file,
content => stdlib::to_yaml($myhash),
}
sogo::to_plist(Any $data, Optional[Integer] $indent)
The sogo::to_plist function.
Returns: String
The OpenStep plist formatted document
Examples
Output OpenStep plist to a file
file { '/tmp/my.yaml':
ensure => file,
content => stdlib::to_yaml($myhash),
}
data
Data type: Any
The data you want to convert
indent
Data type: Optional[Integer]
The indentation level to add to the output
Data types
Sogo::Calendar_role
Available roles for calendars
Alias of Enum['PublicViewer', 'PublicDAndTViewer', 'PublicModifier', 'PublicResponder', 'ConfidentialViewer', 'ConfidentialDAndTViewer', 'ConfidentialModifier', 'ConfidentialResponder', 'PrivateViewer', 'PrivateDAndTViewer', 'PrivateModifier', 'PrivateResponder', 'ObjectCreator', 'ObjectEraser']
Sogo::Classification
Available classifications for calendars and contacts
Alias of Enum['PUBLIC', 'CONFIDENTIAL', 'PRIVATE']
Sogo::Contacts_role
Available roles for contacts
Alias of Enum['ObjectViewer', 'ObjectEditor', 'ObjectCreator', 'ObjectEraser']
Sogo::Domain
Describe a SOGo domain
Alias of
Struct[{
# General Preferences
Optional[time_zone] => String[1],
Optional[mail_domain] => String[1],
Optional[appointment_send_email_notifications] => Boolean,
Optional[folders_send_email_notifications] => Boolean,
Optional[acls_send_email_notifications] => Boolean,
Optional[calendar_default_roles] => Array[Sogo::Calendar_role],
Optional[contacts_default_roles] => Array[Sogo::Contacts_role],
Optional[super_usernames] => Array[String[1]],
Optional[language] => String[1],
Optional[notify_on_personal_modifications] => Boolean,
Optional[notify_on_external_modifications] => Boolean,
Optional[ldap_contact_info_attribute] => String[1],
Optional[iphone_force_all_day_transparency] => Boolean,
Optional[hide_system_email] => Boolean,
Optional[search_minimum_word_length] => Integer[0],
Optional[user_sources] => Array[Sogo::Usersource],
Optional[create_identities_disabled] => Boolean,
# Authentication using LDAP
# ldap_contact_info_attribute (duplicate entry, kept to match documentation)
Optional[ldap_query_limit] => String[1],
Optional[ldap_query_timeout] => Integer[0],
Optional[ldap_group_expansion_enabled] => Boolean,
# SMTP Server Configuration
Optional[mailing_mechanism] => String[1],
Optional[smtp_server] => String[1],
Optional[smtp_authentication_type] => String[1],
Optional[smtp_master_user_enabled] => Boolean,
Optional[smtp_master_user_username] => String[1],
Optional[smtp_master_user_password] => Sensitive[String[1]],
Optional[force_external_login_with_email] => Boolean,
# IMAP Server Configuration
Optional[drafts_folder_name] => String[1],
Optional[sent_folder_name] => String[1],
Optional[trash_folder_name] => String[1],
Optional[junk_folder_name] => String[1],
Optional[imap_cas_service_name] => String[1],
Optional[imap_server] => String[1],
Optional[sieve_server] => String[1],
Optional[sieve_folder_encoding] => Enum['UTF-7', 'UTF-8'],
Optional[mail_show_subscribed_folders_only] => Boolean,
Optional[imap_acl_style] => Enum['rfc2086', 'rfc4314'],
Optional[imap_acl_conforms_to_imap_ext] => Boolean,
#Optional[force_external_login_with_email] => Boolean,
Optional[mail_spool_path] => String[1],
Optional[imap4_connection_group_id_prefix] => String[1],
# Web Interface Configuration
Optional[login_module] => String[1],
Optional[soft_quota_ratio] => Float[0, 1],
Optional[mail_use_outlook_style_replies] => Boolean,
Optional[mail_list_view_columns_order] => Array[String[1]],
Optional[mail_add_outgoing_addresses] => Boolean,
Optional[mail_certificate_enabled] => Boolean,
Optional[selected_address_book] => String[1],
Optional[external_avatars_enabled] => Boolean,
Optional[gravatar_enabled] => Boolean,
Optional[vacation_enabled] => Boolean,
Optional[vacation_period_enabled] => Boolean,
Optional[vacation_default_subject] => String[1],
Optional[vacation_header_template_file] => Stdlib::Absolutepath,
Optional[vacation_footer_template_file] => Stdlib::Absolutepath,
Optional[forward_enabled] => Boolean,
Optional[forward_constraints] => Integer[0, 2],
Optional[forward_constraints_domains] => Array[String[1]],
Optional[notification_enabled] => Boolean,
Optional[sieve_scripts_enabled] => Boolean,
Optional[sieve_script_header_template_file] => Stdlib::Absolutepath,
Optional[sieve_script_footer_template_file] => Stdlib::Absolutepath,
Optional[sieve_filters] => Array[String[1]],
Optional[refresh_view_intervals] => Array[Integer[0]],
Optional[refresh_view_check] => Sogo::Refresh_view_check,
Optional[mail_auxiliary_user_accounts_enabled] => Boolean,
Optional[default_calendar] => Enum['selected','personal','first'],
Optional[day_start_time] => Integer[0,12],
Optional[day_end_time] => Integer[12,23],
Optional[first_day_of_week] => Integer[0,6],
Optional[first_week_of_year] => Enum['January1','First4DayWeek','FirstFullWeek'],
Optional[time_format] => String[1],
Optional[calendar_categories] => Array[String[1]],
Optional[calendar_categories_colors] => Hash[String[1], String[1]],
Optional[calendar_events_default_classification] => Enum['PUBLIC','CONFIDENTIAL','PRIVATE'],
Optional[calendar_tasks_default_classification] => Enum['PUBLIC','CONFIDENTIAL','PRIVATE'],
Optional[calendar_default_reminder] => Sogo::Reminder,
Optional[free_busy_default_interval] => Array[Integer[0], 2, 2],
Optional[dav_calendar_start_time_limit] => Integer[0],
Optional[busy_off_hours] => Boolean,
Optional[mail_message_forwarding] => String[1],
Optional[mail_reply_placement] => String[1],
Optional[mail_signature_placement] => String[1],
Optional[mail_use_signature_on_new] => Boolean,
Optional[mail_use_signature_on_reply] => Boolean,
Optional[mail_use_signature_on_forward] => Boolean,
Optional[mail_compose_message_type] => Enum['text', 'html'],
Optional[mail_compose_window] => Enum['inline', 'popup'],
Optional[enable_email_alarms] => Boolean,
Optional[contacts_categories] => Array[String[1]],
Optional[ui_additional_js_files] => Array[String[1]],
Optional[mail_custom_from_enabled] => Boolean,
Optional[subscription_folder_format] => String[1],
Optional[uix_additional_preferences] => Boolean,
Optional[mail_junk_settings] => Sogo::Mail_junk_settings,
Optional[mail_keep_drafts_after_send] => Boolean,
}]
Sogo::First_week_of_year
Available values for the first week of the year
Alias of Enum['January1', 'First4DayWeek', 'FirstFullWeek']
Sogo::Mail_junk_settings
Describe SOGo junk mail settings
Alias of
Struct[vendor => Enum['generic'],
junkEmailAddress => String[1],
notJunkEmailAddress => String[1],
limit => Integer[0]]
Sogo::Refresh_view_check
Available values for refreshing views
Alias of Enum['manually', 'every_minute', 'every_2_minutes', 'every_5_minutes', 'every_10_minutes', 'every_20_minutes', 'every_30_minutes', 'once_per_hour']
Sogo::Reminder
Supported values for SOGo reminders
Alias of Enum['-PT5M', '-PT10M', '-PT15M', '-PT30M', '-PT45M', '-PT1H', '-PT2H', '-PT5H', '-PT15H', '-P1D', '-P2D', '-P1W']
Sogo::Usersource
Describe a SOGo user source
Alias of Variant[Sogo::Usersource_ldap, Sogo::Usersource_sql]
Sogo::Usersource_ldap
Describe a SOGo LDAP user source
Alias of
Struct[{
type => Enum['ldap'],
id => Optional[String[1]],
cn_field_name => Optional[String[1]],
id_field_name => Optional[String[1]],
uid_field_name => Optional[String[1]],
mail_field_names => Optional[Array[String[1]]],
search_field_names => Optional[Array[String[1]]],
imap_host_field_name => Optional[String[1]],
imap_login_field_name => Optional[String[1]],
sieve_host_field_name => Optional[String[1]],
base_dn => Optional[String[1]],
kind_field_name => Optional[String[1]],
multiple_bookings_field_name => Optional[Integer[-1]],
filter => Optional[String[1]],
scope => Optional[Enum['BASE', 'ONE', 'SUB']],
bind_dn => Optional[String[1]],
bind_password => Optional[Sensitive[String[1]]],
bind_as_current_user => Optional[Boolean],
bind_fields => Optional[Array[String]],
lookup_fields => Optional[Array[String[1]]],
hostname => Optional[String[1]],
# port
# encryption
user_password_algorithm => Optional[String[1]],
can_authenticate => Optional[Boolean],
password_policy => Optional[Boolean],
update_samba_ntlm_passwords => Optional[Boolean],
is_address_book => Optional[Boolean],
display_name => Optional[String[1]],
list_requires_dot => Optional[Boolean],
modules_constraints => Optional[Hash[String[1], Hash[String[1], String[1]]]],
mapping => Optional[Hash[String[1], Array[String[1]]]],
object_classes => Optional[Array[String[1]]],
group_object_classes => Optional[Array[String[1]]],
modifiers => Optional[Array[String[1]]],
ab_ou => Optional[String[1]],
# DS
ldap_contact_info_attribute => Optional[String[1]],
ldap_query_limit => Optional[Integer[1]],
ldap_query_timeout => Optional[Integer[0]],
ldap_group_expansion_enabled => Optional[Boolean],
}]
Sogo::Usersource_sql
Describe a SOGo SQL user source
Alias of
Struct[{
type => Enum['sql'],
id => String[1],
view_url => String[1],
user_password_policy => Optional[Array[Struct[label => String[1], regex => String[1]]]],
user_password_algorithm => Optional[String[1]],
prepend_password_scheme => Optional[Boolean],
key_path => Optional[Stdlib::Absolutepath],
can_authenticate => Optional[Boolean],
is_address_book => Optional[Boolean],
authentication_filter => Optional[String[1]],
display_name => Optional[String[1]],
login_field_names => Optional[Array[String[1]]],
mail_field_names => Optional[Array[String[1]]],
search_field_names => Optional[Array[String[1]]],
imap_host_field_name => Optional[String[1]],
imap_login_field_name => Optional[String[1]],
sieve_host_field_name => Optional[String[1]],
kind_field_name => Optional[String[1]],
multiple_bookings_field_name => Optional[Integer[-1]],
domain_field_name => Optional[String[1]],
list_requires_dot => Optional[Boolean],
modules_constraints => Optional[Hash[String[1], Hash[String[1], String[1]]]],
}]
Changelog
All notable changes to this project will be documented in this file. Each new release typically also includes the latest modulesync defaults. These should not affect the functionality of the module.
v5.1.0 (2024-05-17)
Implemented enhancements:
- Add new settings for SOGo 5.10 #51 (smortex)
- Manage configuration file ownership and mode #49 (smortex)
Fixed bugs:
v5.0.0 (2023-10-30)
Breaking changes:
v4.0.0 (2023-08-07)
Breaking changes:
Implemented enhancements:
v3.1.0 (2022-09-12)
Implemented enhancements:
Merged pull requests:
3.0.0 (2021-05-14)
Breaking changes:
Implemented enhancements:
- Update dependencies #32 (smortex)
- Add REFERENCE.md #27 (neomilium)
- Document all classes #26 (smortex)
- Add a README file #25 (smortex)
Fixed bugs:
2.0.1 (2020-12-21)
Fixed bugs:
2.0.0 (2020-12-21)
Implemented enhancements:
- Ensure string params are not empty #16 (neomilium)
- Remove forbidden undef value on params #15 (neomilium)
- Remove inverse.ca debian repo management #14 (neomilium)
- Start modernization of this old code base #2 (smortex)
Fixed bugs:
1.0.0 (2016-11-22)
Fixed bugs:
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 4.3.0 < 10.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright {yyyy} {name of copyright owner} Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.