The TACTIC config
file stores settings such as directory locations
and email server information.
This file is named differently for each operating system:
Filename | Operating System | Location |
---|---|---|
tactic_win32-conf.xml | Windows | <TACTIC_INSTALL_DIR>/project/config |
tactic_linux-conf.xml | Linux | <TACTIC_INSTALL_DIR>/project/config |
<TACTIC_INSTALL_DIR> is usually /home/apache by default on a Linux machine. Southpaw supplies the TACTIC config file as a template on installation. Once installed, this file can be modified to reflect any of the options described in the sections below. If an option tag does not exist in a particular section in your config file, TACTIC will assume a default or it can simply be added in.
This section defines the hostname for the server (if different from "localhost") as well as the temp directory to be used for TACTIC. The tmp_dir is where temporary files are stored as well as the TACTIC log files.
<install> <hostname>localhost</hostname> <tmp_dir>/home/apache/tactic_temp</tmp_dir> </install>
hostname | This section defines the hostname for the server (if different from "localhost"). The hostname is what TACTIC listens to. |
tmp_dir | The temp directory to be used by TACTIC. |
This section defines information regarding the services external to TACTIC.
<services> <mailserver>smtp8.sympatico.ca</mailserver> <mail_user>some_username</mail_user> <mail_password>some_password</mail_password> <mail_port>a port number other than 25</mail_port> <mail_sender_disabled>true</mail_sender_disabled> <mail_tls_enabled>true</mail_tls_enabled> <python>python</python> <python_path>/home/apache/custom</python_path> <render_submit_class>sites.racoon.modules.command.CustomRenderSubmit</render_submit_class> <process_count>3</process_count> <thread_count>50</thread_count> <process_time_alive>30</process_time_alive> <system_class></system_class> </services>
mailserver | The URL of the SMTP mail server |
mail_password | The password for accessing the SMTP mail server that requires authentication |
mail_user | The user name for accessing the SMTP mail server that requires authentication |
mail_port | The port for the SMTP mail server (if different that 25) |
mail_sender_disabled | disable using the sender name in sending of email in case the email server does not allow sender's email not owned by the sender |
mail_tls_enabled | enable TLS (Transport Layer Security) for the connection to email server |
python | The root path of the Python installation. "python" is usually sufficient. |
python_path | The server-side location for client files. This location can also be mounted from a shared volume if you wish to maintain stricter server access for clients. |
render_submit_class | The class used for render submissions. |
process_count | The number of processes the TACTIC service would spawn. It needs to match the number of ports used in the load balancing scheme in the Apache configuration. |
thread_count | The number of worker threads generated for each instance of the TACTIC process. If not set, it defaults to 10 which is too low to handle rapid requests.. TACTIC's default is 50 on new installation. A good balance of process_count and thread_count can improve response time of the server. |
process_time_alive | The number of minutes a TACTIC process gets respawned. It helps with the memory consumption inherent with a long-running Python process. |
system_class | Allows for an override some of the low level system functionality. For example 'mkdirs' and 'exists' |
This section defines information regarding the services external to TACTIC.
<security> <ticket_expiry>10 hour</ticket_expiry> <authenticate_mode>default</authenticate_mode> <authenticate_class></authenticate_class> <authenticate_version>2</authenticate_version> <case_insensitive_login>>false</case_insensitive_login>> <auto_create_user>false</auto_create_user> <api_require_password>true</api_require_password> <api_password></api_password> </security>
ticket_expiry | The number of hours a login ticket expires after |
authenticate_mode |
default: This basically just looks at the tactic database for information. autocreate: This autocreates the first time and then leaves the information alone. cache: This caches the information to the tactic database on every login |
authenticate_class | A full class path to override the default class
"pyasm.security.TacticAuthenticate".
Note: Your custom class needs to override the method verify() which takes two arguments: login and password. |
authenticate_version | 1 is the old way of authentication. 2 is the new way. |
case_insensitive_login | If set to 'true', it allows case insensitive login name. When autocreate mode is used, all login entries created will have a lowercase login name. It can be used in combination with Active Directory setup. |
auto_create_user | Auto create user in TACTIC during authentication phase if it does not exist. (Deprecated: use "authenticate_mode" in new way of authentication) |
api_require_passowrd | Client API script requires password to login or not |
api_password | A generic Client API password can be set here |
<database> <vendor>PostgreSQL</vendor> <server>localhost</server> <port></port> <user>postgres</user> <password>none</password> <sobject_database>sthpw</sobject_database> <pool_max_connections>1</pool_max_connections> </database>
vendor | The database vendor (software) the database will be installed on. |
server | The hostname of the server. This is localhost if TACTIC and the database are on the same server |
port | The database connection port |
user | The user name for the database connection |
password | The password for the database connection. |
sobject_database | The database where SObject definitions will be stores |
pool_max_connections | The pool of connections available for connecting to the database. |
<perforce> <web_dir>perforce</web_dir> <p4>p4</p4> <port>1666</port> </perforce>
web_dir | The webdir for the perforce connection. |
p4 | |
port | The port to be used for connection to perforce. |
This setting provides a method of setting the TACTIC skin in the server for all users. In this example, the 'BON_NOCHE' palette specified:
<look> <palette>BON_NOCHE</palette> </look>
Other available palettes are 'AQUA', 'BRIGHT', 'DEFAULT', 'SILVER', 'AVIATOR', and 'ORIGAMI'. Alternatively, the whole palette can be customized as follows:
<look> <palette>{ 'color': '#000000', # main font color 'color2': '#FFFFFF', # secondary font color 'color3': '#FFFFFF', # tertiary font color 'background': '#FDEEA7', # main background color 'background2': '#1A9481', # secondary background color 'background3': '#003D5c', # tertiary background color 'border': '#666666' # main border color }</palette> </palette> </look>
The side bar color may not change right away until the next TACTIC service restart.
palette | The default palette setting for all TACTIC users. |
TACTIC uses the following directory and path settings for internal and client interaction.
They are included in the <checkin/>
tag (for checkins).
versionless_mode | copy or symlink: Turn on versionless mode for checkins for all projects. To set the versionless mode per project, go to Project Admin -> Project Settings and add a the key versionless_mode and the value: copy or symlink. |
asset_base_dir | The directory where the assets are stored in the TACTIC server. |
web_base_dir | The root URL that maps the asset_base_dir directory |
win32_local_base_dir | The base directory in Windows client machines |
linux_local_base_dir | The base directory in Linux client machines |
win32_sandbox_dir | The default sandbox directory in the Windows client machines (it can be overridden by Remote Repo) |
linux_sandbox_dir | The default sandbox directory in the Linux client machines (it can be overridden by Remote Repo) |
win32_client_repo_dir |
Maps the asset_base_dir directory as seen by the Windows client. For example, if asset_base_dir is on a Linux server with a path like "/home/apache/assets" but from the Windows client, it is mapped as "Z:/assets", then "Z:/assets" should be the value for this setting. By default, this path is empty because the system assumes the client and server are on the same Windows machine. |
linux_client_repo_dir | Same as win32_client_repo_dir except it is from the perspective of a Linux client machine |
win32_client_handoff_dir | Windows client-side handoff directory for Client API transactions. (Find out more about the handoff directory below.) |
win32_server_handoff_dir | Windows server-side handoff directory for Client API transactions |
linux_client_handoff_dir | Linux client-side handoff directory for Client API transactions |
linux_server_handoff_dir | Linux server-side handoff directory for Client API transactions |
sudo_no_password | It controls whether sudo can be run to change the user id and group id of
the files checked in. It is particularly important if you want to ensure
files checked in to the TACTIC repository are owned by TACTIC and not
overwritable by just any users. If set to true, "no password" should be
enabled for the user TACTIC is run as in the OS. e.g. For Fedora, assuming
you have sudo installed:
In the file /etc/sudoers, the following line
should be uncommented:
%wheel ALL=(ALL) NOPASSWD: ALL In the file /etc/group, apache should be added to the groupwheel wheel:x:10:root,apache |
The handoff directories
Handoff directories can be seen by both the server and the client machines. They are used for 3D checkins and client API interactions, and are important for specifying how the client and server sides see the same location.
For example, if you have the location //192.168.0.105/handoff
available on your network and it is mounted as /home/apache/handoff
on
a server, then it would be important to include the following entries:
<win32_client_handoff_dir>//192.168.0.105/handoff</win32_client_handoff_dir> <win32_server_handoff_dir></win32_server_handoff_dir> <linux_client_handoff_dir></linux_client_handoff_dir> <linux_server_handoff_dir>/home/apache/handoff</linux_server_handoff_dir>
Directory configuration examples
Example 1
The assets directory is located on the TACTIC server and allows for read-only access from client machines in the local subnet.
The assets directory is located on the TACTIC server and allows for read-only access from client machines in the local subnet.
The handoff directory is located on the TACTIC server and allows for read/write access from client machines in the local subnet
The Windows and Linux client_repo_dir looks directly to the server for the available "assets" share
The Windows and Linux client_handoff_dir looks directly to the server for the available "handoff" share
<checkin> <asset_base_dir>/home/apache/assets</asset_base_dir> <web_base_dir>/assets <win32_local_base_dir>C:/sthpw</win32_local_base_dir> <linux_local_base_dir>/tmp/sthpw</linux_local_base_dir> <win32_sandbox_dir>C:/sthpw/sandbox</win32_sandbox_dir> <linux_sandbox_dir>/tmp/sthpw/sandbox</linux_sandbox_dir> <win32_client_repo_dir>//192.168.0.105/apache/assets</win32_client_repo_dir> <linux_client_repo_dir>//192.168.0.105/apache/assets</linux_client_repo_dir> <win32_client_handoff_dir>//192.168.0.105/apache/handoff<win32_client_handoff_dir> <win32_server_handoff_dir></win32_server_handoff_dir> <linux_client_handoff_dir>/home/apache/handoff</linux_client_handoff_dir> <linux_server_handoff_dir>/home/apache/handoff</linux_server_handoff_dir> </checkin>
Example 2
The assets directory is located on another server and mounted locally on the TACTIC server to /mnt1/assets.
The Windows and Linux client_repo_dir is mapped/mounted to the TACTIC 'asset_base_dir'
The Windows and Linux client_handoff_dir is mapped/mounted to the TACTIC 'server_handoff_dir'
<checkin> <asset_base_dir>/mnt1/assets</asset_base_dir> <web_base_dir>/assets <win32_local_base_dir>C:/sthpw</win32_local_base_dir> <linux_local_base_dir>/tmp/sthpw</linux_local_base_dir> <win32_sandbox_dir>C:/sthpw/sandbox</win32_sandbox_dir> <linux_sandbox_dir>/tmp/sthpw/sandbox</linux_sandbox_dir> <win32_client_repo_dir>z:/assets</win32_client_repo_dir> <linux_client_repo_dir>/assets</linux_client_repo_dir> <win32_client_handoff_dir>z:/tactic_handoff<win32_client_handoff_dir> <win32_server_handoff_dir></win32_server_handoff_dir> <linux_client_handoff_dir>/tactic_handoff</linux_client_handoff_dir> <linux_server_handoff_dir>/home/apache/tactic_handoff</linux_server_handoff_dir> </checkin>