05_http_protocol.asc #2

  • //
  • guest/
  • perforce_software/
  • helix-web-services/
  • candidate/
  • source/
  • doc/
  • 05_http_protocol.asc
  • Commits
# Change User Description Committed
#2 16345 tjuricek Removing candidate branch
#1 16342 tjuricek Create candidate branch.

This branch is mostly here to start work on our release infrastructure.
//guest/perforce_software/helix-web-services/main/source/doc/05_http_protocol.asc
#11 16145 tjuricek Remove reference to Helix Sync method that we removed from the API
#10 16106 tjuricek Revise the URLs for Helix Sync client workspaces.

Added *stubs* for deleting the clients for a user, implementations will follow.
#9 16103 tjuricek Revision of helix sync 'changelist' methods.
#8 16102 tjuricek Rename GET /helix-sync/v1/changes/[project] -> GET /helix-sync/v1/[project]/last-change
#7 16095 tjuricek Shorten /helix_versioning_engine URLs to /p4
#6 16094 tjuricek Move /auth/v1/login -> /projects/v1/login

The more generic login method is now /helix_versioning_engine/vAPI/login
#5 15969 tjuricek Add support for repo creation/update and deletion, same for SSH keys.

Add util module for supporting methods, modify temp client to dissapear.

(Modified submit of review 15549 by @ptomiak)
#4 15761 tjuricek Naive implementation of the "preview resolve plan".

The API needs to be avaiable for the integration effort between Helix Cloud and Helix Sync.

Tests to follow.
#3 15757 tjuricek Add resolve implementation for submitting from shelves for Helix Sync

Includes additional concepts for creating a "helix sync shelf client" vs a "helix sync device client". It's expected that there's basically one shelf client per user per project. The "device" client is an additional client per user per project per machine. The HWS services will submit via the "shelf client".

The resolve implementation remains untested at the moment in order to get the client changes in the hands of Helix Sync developers.
#2 15698 tjuricek Added a /helix_versioning_engine/v[api]/login method

This is used by the Helix Sync client to differentiate the auth source of HWS from that of P4D (to be used for projects).
#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/05_http_protocol.asc
#25 15496 tjuricek Revise GET /helix_sync/v1/changes/[project] to /helix_sync/v1/changes/[project]/pending

The base method is really intended for the latest changelist number. Meh.
#24 15435 tjuricek Add proposed HTTP methods for Helix Sync.

It's a little unclear to me why you would need a local root directory to create the shared shelving changelist for a particular project (and user).
So I didn't add that.
#23 15297 tjuricek Implement of 'cluster services' configuration.

The configuration will be stored in a local JSON file, which is expected to be maintained by the systems admin. Eventually, it's expected to have this sort of thing implemented via Helix Admin.
#22 15242 tjuricek Add Helix Sync stubs and documentation
#21 15241 tjuricek Add Git Fusion stubs and documentation.
#20 15240 tjuricek Set api level via request path on all Helix Versioning Engine methods.

This will allow migration of applications to different P4D versions. Our internal methods (like project API) should attempt to handle backward compatibility similarly.

P4WEBAPI-118
#19 15228 tjuricek Revise triggers implementation, tests, and documentation.
#18 15227 tjuricek Revise implementation, tests, and documentation for protections management.

Remove some specs I will not be revising from the helix_web_services project.
#17 15225 tjuricek Revise counter implementation, tests, and documentation

Wasn't available in the Ruby client before, so, it's now available.
#16 15222 tjuricek Revise server specs testing and documentation.

Note: also fixed issues with setting P4PORT via headers. For whatever reason, the host setting doesn't seem to work like I expect it to, though P4PORT works just fine.
#15 15211 tjuricek Implement tests and documentation for label spec management.
#14 15210 tjuricek Implement tests and documentation for job spec management.
#13 15209 tjuricek Implement tests and documentation for group spec management.
#12 15208 tjuricek Revise 'command' implementation, tests, and documentaiton.

This includes a change from a command blacklist to a whitelist. See P4WEBAPI-21
#11 15205 tjuricek Implemented tests and documentation for depot spec editing.
#10 15189 tjuricek Update files implementation, testing, and documentation.
#9 15185 tjuricek Update user spec management implementation, tests, and documentation.
#8 15144 tjuricek Setup stream spec tests and documentation.

Also revised the documentation folder http_p4_web_api -> helix_versioning_engine
#7 15111 tjuricek Remove references to actually using the SQLite DB in the installation

Still depending on it to avoid shared library dependencies to system packages
#6 15110 tjuricek Revise changes methods for new p4 connection handling, add server specs, remove model references in client, and update asciidoc documentation.
#5 15098 tjuricek Revised project services to GET-only forms.

With Helix Sync revising to integrate purely with Helix Cloud, this is the only thing we can reasonably define.
#4 15090 tjuricek Update _proposed_ API for project services.

This is *very likely* to change, and will not be implemented until reviewed.
#3 15078 tjuricek clients spec method revisions

Updated some other documentation.
#2 15077 tjuricek Add new 'model' technique, revised branch spec operations, test Auth::Middleware.

The Ruby client now does *not* strictly type anything, but extends OpenStruct with helper methods to help deal with inconsistent data formats.
See the OpenModel class documentation for more details.

The Auth::Middleware class is also *finally* implemented as well. This does not take into account all possible variations of server behavior (yet), but that will happen in follow-up work.
#1 15038 tjuricek Document 'login' auth method and client programming overview.
//guest/perforce_software/helix-web-services/main/doc/04_http_protocol.asc
#4 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.
#3 14182 tjuricek Asciidoc conversion of the changes HTTP guide
#2 13612 tjuricek Update deployment guide, switch built documentation to asciidoc, remove unused packaging script for p4_web_api
#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.