== Overview === Knowledge Required For deployment and configuration tasks, this guide assumes that you are experienced with administering web applications. You should be conceptually comfortable with Nginx and Unicorn. It is not necessary to have expert knowledge of these systems, but you should understand what their roles are without further clarification. If you require more knowledge, please consult online guides for both of these application frameworks. - Nginx: http://nginx.org/ - Unicorn: http://unicorn.bogomips.org/ Additionally, while this guide interfaces with the Helix Versioning Engine, we assume you are familiar with it. For more information about the Helix Versioning Engine, please become familiar with the following online guides: - Product overview: http://www.perforce.com/versioning-engine - P4 Command Reference: http://www.perforce.com/perforce/doc.current/manuals/cmdref/index.html - Admin fundamentals: http://www.perforce.com/perforce/doc.current/manuals/p4sag/index.html For client development tasks, this guide assumes you are comfortable with the HTTP protocol. While it is not required to know Ruby, we provide a client SDK for Ruby, which may be easier to understand initially. If you do not use our Ruby client SDK, you will need to create an SDK for your platform, likely combined with a JSON parser. === Release compatibility of the API Helix Web Services are intended to be executed against a corresponding major release of the Helix Versioning Engine. For example, the '2015.1' release of Helix Web Services, is intended to interact with the '2015.1' of the Helix Versioning Engine. Using Helix Web Services against a non-corresponding Helix Versioning Engine instance will likely work, with some caveats. The client SDK provided for Helix Web Services contains several 'model' objects that help assist in normalizing data from the Helix Versioning Engine. When you use a different version of Helix Web Services than your Helix Versioning Engine, it is likely that some data may not exist. You may not want to use the model instances when using mismatching versions, and focus more on the more generic hash-based methods. === Architecture of the API Helix Web Services is a Ruby web application, that is intended to sit behind a reverse proxy server, such as nginx. The reverse proxy server should handle the configuration of SSL for the web services, and can host other web applications from the Helix suite. Helix Web Services currently deploys into a single unicorn instance, on Linux machines. Each Helix Web Services instance should not maintain significant state. You should be able to launch more than one Helix Web Services instance, and configure your reverse proxy to handle load balancing. You can also architect your system using services such as haproxy for load balancing. Using haproxy and nginx is beyond the scope of this documentation guide; we assume you are an experienced systems administrator when it comes to clustered web application deployment.
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#6 | 15622 | tjuricek |
Move source code to 'source/' subdirectory of branch. build/ will remain where it is. |
||
#5 | 15099 | tjuricek | Revise project services to be our simple 'container' for other systems. | ||
#4 | 15038 | tjuricek | Document 'login' auth method and client programming overview. | ||
#3 | 15032 | tjuricek |
Starting config and doc revisions. System is now broken while revisions underway. Configuration of the p4d connection is now done via a single HWSSettings middleware object injected into the Rack env. The HWSP4Cleanup middleware now cleans up any p4 injected into the Rack env. The Auth::App class now mostly just contains one method to generate a p4 ticket. /auth/v1/login. Added yard documentation for the main project. Yard docs have been reconfigured to dump into build/ directories. This should probably be done with each release. Hm... The top level rake file contains a task, 'all:doc', to update our documentation. This should probably be run for each checkin. Hm... Specs are now using Rack::Test on top of a 'live' p4d. I'd suggest you still use the p4util mechanism, which now dumps to a /tmp folder, so we can safely add P4IGNORE rules back into your local .p4config file. Old 'perforce' application now called 'helix_versioning_engine'. Removing cache data. Helix Sync may be slow. It may also get axed. We'll see. |
||
#2 | 14980 | tjuricek |
Starting to make revisions to the Asciidoc guide. These are just revisions to the preable sections. |
||
#1 | 13555 | tjuricek |
Starting Asciidoc conversion of documentation. Removed the "Shared Quality" document, that basically is online now at: https://confluence.perforce.com:8443/display/PWS/Quality+Assurance Adding some topology graphviz images used for online documentation. |