# --------------------------------------------------------------------------------------------- # DO NOT EDIT THIS FILE, INSTEAD CREATE THE FILE "local.yaml" AND ADD YOUR SETTINGS IN THERE. # See https://www.kimai.org/documentation/configurations.html # # Be aware that this file is YAML format and the indentation is important. # Each config level needs to be indented with 4 additional spaces. # --------------------------------------------------------------------------------------------- kimai: # -------------------------------------------------------------------------------- # AUTHENTICATION # You can disable some user management functions in the authentication screens. # Both settings default to "true", see https://www.kimai.org/documentation/users.html # -------------------------------------------------------------------------------- # user: # registration: false # password_reset: false # -------------------------------------------------------------------------------- # -------------------------------------------------------------------------------- # TIME-TRACKING # All configs related to time-tracking, timesheets and record management # Most settings can be configured in the System configuration screen # -------------------------------------------------------------------------------- timesheet: # Allows to render timesheet descriptions with markdown # This setting can be changed through the Administration screen # markdown_content: false # The time-tracking mode that should be used. # See https://www.kimai.org/documentation/timesheet.html#tracking-modes # mode: default # The default time to pre-fill the "create timesheet" form (in some cases). # This setting is only respected by some timetracking modes and not in all situations. # # Accepted formats, see # - https://www.php.net/manual/en/datetime.formats.php # - https://www.php.net/manual/en/datetime.formats.time.php # default_begin: now # Rounding rules are used to round the begin & end dates and the duration for timesheet records. # The "default" rule will round "begin" down and "end" up to the full minute, the "duration" will not be rounded. # Find out more about rounding rules at https://www.kimai.org/documentation/timesheet.html # rounding: # default: # days: ['monday','tuesday','wednesday','thursday','friday','saturday','sunday'] # begin: 1 # end: 1 # duration: 0 # mode: default # If you want to apply different hourly rates for specific weekdays, you can uncomment the "rates" configuration. # The "weekend" rule will add 50% to each timesheet entry that will be recorded on "saturdays" or "sundays". # See documentation at: https://www.kimai.org/documentation/timesheet.html#rate-calculation # rates: # weekend: # days: ['saturday','sunday'] # factor: 1.5 # If you want to limit the max. active entries per user, you can do it here. # The soft_limit is used as theme setting and displays a warning color if the user has reached X active recordings # The hard_limit is used to detect how many active records are allowed per user: # - by default a user can only have one active time-record: it is automatically stopped when a new one is started # - when hard_limit is > 1 and the user is trying to start a new entry after reaching the limit, a warning is shown # and the user has to stop an active entry first # active_entries: # soft_limit: 1 # hard_limit: 3 # Rules that define timesheet validation and behaviour # allow_future_times: whether records in the future can be created # rules: # allow_future_times: true # -------------------------------------------------------------------------------- # -------------------------------------------------------------------------------- # PERMISSIONS # Find out more about the configurable permission system at: # https://www.kimai.org/documentation/permissions.html # -------------------------------------------------------------------------------- permissions: # mapping complex rule sets of single permissions to named "sets" ("set name" = [array of "permissions and sets"]) sets: ACTIVITIES: ['view_activity','create_activity','edit_activity','budget_activity','delete_activity'] ACTIVITIES_TEAMLEAD: ['view_activity','create_activity','edit_teamlead_activity','budget_teamlead_activity'] PROJECTS: ['view_project','create_project','edit_project','budget_project','delete_project','permissions_project','comments_project','comments_create_project','details_project'] PROJECTS_ALL_TEAMLEAD: ['view_teamlead_project','edit_teamlead_project','budget_teamlead_project','permissions_teamlead_project','comments_teamlead_project','comments_create_teamlead_project','details_teamlead_project'] PROJECTS_ALL_TEAM: ['view_team_project','edit_team_project','budget_team_project','comments_team_project','comments_create_team_project','details_team_project'] PROJECTS_TEAMLEAD: ['view_teamlead_project','budget_teamlead_project','comments_teamlead_project','comments_create_teamlead_project','details_teamlead_project'] CUSTOMERS: ['view_customer','create_customer','edit_customer','budget_customer','delete_customer','permissions_customer','comments_customer','comments_create_customer','details_customer'] CUSTOMERS_ALL_TEAMLEAD: ['view_teamlead_customer','edit_teamlead_customer','budget_teamlead_customer','permissions_teamlead_customer','comments_teamlead_customer','comments_create_teamlead_customer','details_teamlead_customer'] CUSTOMERS_ALL_TEAM: ['view_team_customer','edit_team_customer','budget_team_customer','comments_team_customer','comments_create_team_customer','details_team_customer'] CUSTOMERS_TEAMLEAD: ['view_teamlead_customer','budget_teamlead_customer','comments_teamlead_customer','comments_create_teamlead_customer','details_teamlead_customer'] INVOICE: ['view_invoice','create_invoice'] INVOICE_TEMPLATE: ['manage_invoice_template'] TIMESHEET: ['view_own_timesheet','start_own_timesheet','stop_own_timesheet','create_own_timesheet','edit_own_timesheet','export_own_timesheet','delete_own_timesheet'] TIMESHEET_OTHER: ['view_other_timesheet','start_other_timesheet','stop_other_timesheet','create_other_timesheet','edit_other_timesheet','export_other_timesheet','delete_other_timesheet'] PROFILE: ['view_own_profile','edit_own_profile','password_own_profile','preferences_own_profile','api-token_own_profile'] PROFILE_OTHER: ['view_other_profile','edit_other_profile','password_other_profile','roles_other_profile','preferences_other_profile','api-token_other_profile','teams_other_profile'] TAGS: ['view_tag','manage_tag','delete_tag'] USER: ['view_user','create_user','delete_user','role_permissions'] RATE: ['view_rate_own_timesheet','edit_rate_own_timesheet'] RATE_OTHER: ['view_rate_other_timesheet','edit_rate_other_timesheet'] EXPORT: ['create_export','edit_export_own_timesheet','edit_export_other_timesheet'] TEAMS: ['view_team','create_team','edit_team','delete_team'] # some single default definitions for roles SINGLE_USER: ['view_team_member','budget_team_project'] SINGLE_TEAMLEAD: ['view_rate_own_timesheet','view_rate_other_timesheet','hourly-rate_own_profile','view_team_member'] SINGLE_ADMIN: ['hourly-rate_own_profile','edit_exported_timesheet','teams_own_profile','view_team_member'] SINGLE_SUPER_ADMIN: ['hourly-rate_own_profile','hourly-rate_other_profile','roles_own_profile','system_information','system_configuration','plugins','edit_exported_timesheet','teams_own_profile','view_team_member'] # link above sets to one complete set for each user role ROLE_USER: ['@TIMESHEET','@PROFILE','@SINGLE_USER'] ROLE_TEAMLEAD: ['@ACTIVITIES_TEAMLEAD','@PROJECTS_TEAMLEAD','@CUSTOMERS_TEAMLEAD','@TIMESHEET_OTHER','@INVOICE','@TIMESHEET','@PROFILE','@EXPORT','@TAGS','@SINGLE_TEAMLEAD'] ROLE_ADMIN: ['@ACTIVITIES','@PROJECTS','@CUSTOMERS','@INVOICE','@INVOICE_TEMPLATE','@TIMESHEET','@TIMESHEET_OTHER','@PROFILE','@TEAMS','@RATE','@RATE_OTHER','@EXPORT','@TAGS','@SINGLE_ADMIN'] ROLE_SUPER_ADMIN: ['@ACTIVITIES','@PROJECTS','@CUSTOMERS','@INVOICE','@INVOICE_TEMPLATE','@TIMESHEET','@TIMESHEET_OTHER','@PROFILE','@PROFILE_OTHER','@USER','@TEAMS','@RATE','@RATE_OTHER','@EXPORT','@TAGS','@SINGLE_SUPER_ADMIN'] # mapping "sets" or permissions to user roles ("role name" = [array of "set names"]) maps: ROLE_USER: ['ROLE_USER'] ROLE_TEAMLEAD: ['ROLE_TEAMLEAD'] ROLE_ADMIN: ['ROLE_ADMIN'] ROLE_SUPER_ADMIN: ['ROLE_SUPER_ADMIN'] # only here to register the (partially) unused permissions in the UI ROLE_FAKE: ['CUSTOMERS_ALL_TEAMLEAD','CUSTOMERS_ALL_TEAM','PROJECTS_ALL_TEAMLEAD','PROJECTS_ALL_TEAM'] # add or remove single permissions roles: ROLE_USER: [] ROLE_TEAMLEAD: [] ROLE_ADMIN: [] ROLE_SUPER_ADMIN: [] # -------------------------------------------------------------------------------- # -------------------------------------------------------------------------------- # CALENDAR Configuration # See documentation at https://www.kimai.org/documentation/calendar.html # -------------------------------------------------------------------------------- # calendar: # week_numbers: true # weekends: true # day_limit: 4 # slot_duration: '00:30:00' # businessHours: # days: [1, 2, 3, 4, 5] # begin: '08:00' # end: '18:00' # visibleHours: # begin: '00:00' # end: '24:00' # # # You can configure unlimited google calendars to display events for your company (e.g. holidays) # google: # api_key: 'your-restricted-google-api-key' # sources: # holidays: # id: 'de.german#holiday@group.v.calendar.google.com' # color: '#ccc' # -------------------------------------------------------------------------------- # -------------------------------------------------------------------------------- # INVOICES # -------------------------------------------------------------------------------- # invoice: # # all files in these directories will be used as invoice documents (if supported by a renderer) # documents: # - 'var/invoices/' # - 'templates/invoice/renderer/' # -------------------------------------------------------------------------------- # -------------------------------------------------------------------------------- # DASHBOARD # Using the configurable widget sections. # See documentation at https://www.kimai.org/documentation/dashboard.html # -------------------------------------------------------------------------------- dashboard: user_duration: title: ~ order: 10 permission: view_own_timesheet widgets: [PaginatedWorkingTimeChart] user_teams: title: ~ order: 15 permission: ROLE_USER widgets: [UserTeams, UserTeamProjects] user_rates: title: ~ order: 20 permission: view_rate_own_timesheet widgets: [userAmountToday, userAmountWeek, userAmountMonth, userAmountYear] duration: title: dashboard.all order: 30 permission: ROLE_TEAMLEAD widgets: [durationToday, durationWeek, durationMonth, durationYear] active_users: title: ~ order: 40 permission: ROLE_TEAMLEAD widgets: [activeUsersToday, activeUsersWeek, activeUsersMonth, activeUsersYear] rates: title: ~ order: 50 permission: view_rate_other_timesheet widgets: [amountToday, amountWeek, amountMonth, amountYear] # -------------------------------------------------------------------------------- # -------------------------------------------------------------------------------- # LANGUAGES # Locale specific settings, like date formats # -------------------------------------------------------------------------------- languages: cs: date_time_type: 'dd.MM.yyyy HH:mm' date_type: 'dd.MM.yyyy' date: 'd.m.Y' date_time: 'd.m H:i' da: date_time_type: 'dd.MM.yyyy HH:mm' date_type: 'dd.MM.yyyy' date: 'd.m.Y' date_time: 'd.m. H:i' de: date_time_type: 'dd.MM.yyyy HH:mm' date_type: 'dd.MM.yyyy' date: 'd.m.Y' date_time: 'd.m. H:i' de_CH: date_time_type: 'dd.MM.yyyy HH:mm' date_type: 'dd.MM.yyyy' date: 'd.m.Y' date_time: 'd.m. H:i' en: date_time_type: 'yyyy-MM-dd HH:mm' date_type: 'yyyy-MM-dd' date: 'Y-m-d' date_time: 'm-d H:i' duration: '%%h:%%m h' es: date_time_type: 'dd.MM.yyyy HH:mm' date_type: 'dd.MM.yyyy' date: 'd.m.Y' date_time: 'd.m. H:i' eu: date_time_type: 'yyyy-MM-dd HH:mm' date_type: 'yyyy-MM-dd' date: 'Y-m-d' date_time: 'm-d H:i' duration: '%%h:%%m h' fr: date_time_type: 'dd/MM/yyyy HH:mm' date_type: 'dd/MM/yyyy' date: 'd/m/Y' date_time: 'd/m H:i' duration: '%%h h %%m' hu: date_time_type: 'yyyy.MM.dd. HH:mm' date_type: 'yyyy.MM.dd.' date: 'Y.m.d.' date_time: 'm.d. H:i' it: date_time_type: 'dd.MM.yyyy HH:mm' date_type: 'dd.MM.yyyy' date: 'd.m.Y' date_time: 'd.m. H:i' nl: date_time_type: 'dd.MM.yyyy HH:mm' date_type: 'dd.MM.yyyy' date: 'd.m.Y' date_time: 'd.m. H:i' duration: '%%hu%%m' pt_BR: date_time_type: 'dd-MM-yyyy HH:mm' date_type: 'dd-MM-yyyy' date: 'd-m-Y' date_time: 'd-m H:i' ru: date_time_type: 'dd.MM.yyyy HH:mm' date_type: 'dd.MM.yyyy' date: 'd.m.Y' date_time: 'd.m. H:i' sk: date_time_type: 'dd. MM. yyyy HH:mm' date_type: 'dd. MM. yyyy' date: 'd. m. Y' date_time: 'd. m. H:i' sv: duration: '%%h:%%m tim' # -------------------------------------------------------------------------------- # -------------------------------------------------------------------------------- # STORAGE # If you want to use directories outside the Kimai directory, change these # -------------------------------------------------------------------------------- data_dir: '%kernel.project_dir%/var/data' plugin_dir: '%kernel.project_dir%/var/plugins' # --------------------------------------------------------------------------------