== Overview Helix Web Services, or HWS, is a middleware platform for Perforce technologies in the Helix ecosystem. HWS forms a central point for applications to communicate and coordinate across service applications installed in a single cluster. While HWS does contain significant logic, it is an extension to other technologies, and is unlikely to be used in isolation. === Knowledge Required For installing or configuring an HWS instance, you should be familiar with common system administration tasks and conventions. To develop applications against HWS, we assume you are familiar with the HTTP protocol. We do provide some basic client API libraries, but these are to assist in making it easy to get started, not to abstract away or hide the fundamentals of the HTTP-based system. To secure your HWS instances, you will need to be comfortable with TLS certificates. Helix Web Services recommends using HTTPS for connections, unless you can secure access to the server by other means. For evaluation, we do simplify the process of using a self-signed certificate. However, for production, it is recommended you purchase and deploy a properly signed certificate. Additionally, because this guide interfaces with the Helix Versioning Engine, we assume you are familiar with it. For more information about the Helix Versioning Engine, consult 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 === Release compatibility of the API The major and minor version of Helix Web Services is associated with a major release of the Helix Versioning Engine (p4d). For example, the version 2016.1.0 is associated with the 2016.1 release of p4d, and what we recommend to deploy. The APIs that you develop against will use data documented as if this was your runtime system. The Helix Web Services APIs are split into default, or stable, methods and unstable alpha methods. Methods that are stable should work against future releases of Helix Web Services, for (at least) the next 3 major releases. A major release is when we update the major or minor version, e.g., 2016.2.0 is the next major release after 2016.1.0. That is, a client application written against 2016.1.0 can use that SDK against Helix Web Services releases 2016.2.0, 2017.1.0, and 2017.2.0. Unstable methods may stop working with an upgrade, so planning and testing is required if you put these methods into use. If you use our SDKs, the use of alpha methods is quite explicit, so generally easy to track. You can use Helix Web Services against older versions of the Helix Versioning Engine, even though the API was developed against a newer release. In these cases, the entire API is not guaranteed to exist, and you will need to test your applications against these server configurations. Some fields may be missing, and some behaviors may change subtly. In general, however, we try to assist in making these scenarios possible, and do not explicitly break with older versions of p4d. It's recommended to set the `P4APILEVEL` setting for each server, or globally to the oldest version in use. See <<settings>> for more details on server configuration.
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#3 | 18830 | tjuricek | Updated "release compatibility" section to reflect 3-number versioning scheme. | ||
#2 | 17339 | tjuricek |
Removed obsolete documentation no longer relevant to JVM-based installation, and created framework for new installation. I do not have exact details on the new system just yet, but I know we'll want the PDF as part of the installation. |
||
#1 | 17323 | tjuricek |
Revise the documentation to use the JVM-based asciidoctor. This will generate the DocBook XML. I'm still ironing out exactly what the CD process is here. |
||
//guest/perforce_software/helix-web-services/main/source/doc/01_overview.asc | |||||
#3 | 17228 | tjuricek |
Revising configuration, removing clearly obsolete variables, and renaming some for consistency. Some variables need to remove underscores, because those underscores are actually not really a good idea for HTTP headers. (Some servers block those values as keys, depending on config.) |
||
#2 | 17090 | tjuricek |
Revised documentation based on edits received (on paper). Removed Helix Web Services ruby client references, since there is no publication plan for this API. |
||
#1 | 15622 | tjuricek |
Move source code to 'source/' subdirectory of branch. build/ will remain where it is. |
||
//guest/perforce_software/helix-web-services/main/doc/01_overview.asc | |||||
#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. |