TACTIC Configuration

TACTIC Configuration

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.

Install

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.
Services

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. For multiple paths, separate with |. e.g. /home/apache/custom|/home/apache/custom_two
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'
Security

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
<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
<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.
Look

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.
Checkin

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 group

wheel 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>