Cockpit URL paths=================This is developer documentation about the various resource paths in Cockpitand their characteristics. This doesn't apply to the visible URLs shownin the main Cockpit address bar.Cockpit URLs are based on an application. A valid application name iseither the word `cockpit` or a string that begins with `cockpit+`for example `cockpit+application-name`. Each of the following URLsare valid for any application, just replace `/cockpit/` with `/cockpit+application-name/`* `/cockpit/static` static files available without authentication. Filesare cached for as long as possible, and names *must* change when thecontents of the file changes. The exception to this is when the applicationrefers to a different machine. In that case the user must be authenticatedto serve those files and the cache varies on cookie.* `/cockpit/login` authenticates a user and sets cookie based on applicationname.* `/cockpit/$xxxxxxxxxxxxxxx/package/path/to/file.ext` are files whichare cached by packages for as long as possible. The checksum changes whenany of the packages on a system change. Only available after authentication.* `/cockpit/$xxxxxxxxxxxxxxx/*/path/to/file.ext` are concatenated files frompackages, as seen above.* `/cockpit/@host/package/path/to/file.ext` are files from packages (onspecific hosts) that are not cached. Only available after authentication.* `/cockpit/@host/*/path/to/file.ext` are concatenated files frompackages (on specific hosts). They are served uncompressed.* `/cockpit/@host/manifests.json` includes a summary of all the manifestfiles from all the packages* `/cockpit/@host/manifests.js` includes a summary of all the manifestfiles from all the packages, as an AMD loadable module* `/cockpit/socket` The main web socket* `/cockpit/channel/csrftoken?query` External channel URLsThese are commonly used to wrap/proxy port access for Cockpit pages, astheir JavaScript cannot talk to them directly due to Cockpit's strict[Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP).See the [xhr-proxy example](../examples/xhr-proxy) how to wrap a TCP HTTPport, or the [gtk-broadway example](../examples/gtk-broadway) for a morecomplex wrapping of a stream socket.When loading through cockpit-ws any URL that does not begin with anapplication will be handled by the shell (shell/index.html by default)using the default application `cockpit`.Direct to machine urls======================Cockpit-ws supports logging in directly to a remote machine, without firstauthenticating on the machine that cockpit-ws is running on. A `cockpit-beiboot`processes is spawned that connects via SSH to the remote machine and allrequests are proxied via that connection.To use this feature the application name MUST begin with an `=` forexample `/cockpit+=machine/socket` will attempt to open a socket on`machine` `/cockpit+machine/socket` will attempt to open a socketon localhost.When loading through cockpit-ws any URL that does not begin with anapplication will be handled by the shell (shell/index.html by default)using the default application `cockpit`.In addition any url that begins with `/=` will attempt to loadthe shell from the specified machine. For example a URL of`/=machine/system` will attempt to load `shell/index.html`from `machine` using the application `cockpit+machine`.