Skip to content
This repository has been archived by the owner on Apr 6, 2023. It is now read-only.

Coapp service engine interface

fearthecowboy edited this page Aug 9, 2011 · 18 revisions

Interface for CoApp's Service Engine

Connecting to the engine

  • via named pipe, either over an async bidirectional pipe, or two pipes for WSH
// sample connection via jscript scripting language
  • uses url-encoding syntax for messages (both send and receive):
name-of-message?someparameter=value&someotherparameter=value2

Policy Location:

All policies will be found in Computer Configuration\Administrative Templates\Control Panel\CoApp (TODO: verify, unsure)

All policy values will be stored in the registry under HKLM\Software\CoApp\PackageManager\Policies

Messages accepted by the service

START-SESSION

This message must be the first message passed on the pipe; any other message will not be accepted and no error will be posted--the service will simply disconnect the pipe instance.

This message identifies the client program and instance, and allows the client application to reconnect to the service in the event of a disconnection during a session. A client giving the same values will force the disconnection of the old client (if still connected) in favor of the new client.

Security Information

When a client reconnects to the same session, it must have the same user token. Any attempt to reconnect to an existing session with a different token will result in disconnection from the service.

Policy
Name Default Users Description
Connect Everyone Allows access to communicate with the CoApp service

Parameters

Name Type Required Description
client string yes the name of the client program connecting to the service
id string yes a unique "session id" for the client application.
async boolean no set this to false (any other value assumes true) to require the engine to create a new pipe with which communicate back to the client. The name of this pipe will be \\.\pipe\CoAppInstaller-$ID$ where $ID$ is the required unique session id`

Response Messages

See: session-started

Sample :

start-session?client=test-script&id=123912931923913&async=false

find-package

Returns basic information about packages based on the information given.

Security Information

This function is accessible provided the client has the appropriate policy requirements.

This function is read-only, accesses information regarding installed packages, but can cause the engine to request the fulfillment of feeds from the client-which may require the client to access the network and write files.

Policy
Name Default Users Description
EnumeratePackages Everyone Allows access to query the system for installed packages

Parameters

Name Type Required Description
canonical-name string no The canonical-name of the package for which data is being requested
name string no The common name of the package (ie, "Ruby")
version formatted version-string (NNNNN.NNNNN.NNNNN.NNNNN) no the version of the package requested
public-key-token 16digit-hex-string no the public key token of the certificate of the package
arch one of {x86,x64,any,arm,all} no the architecture of the package. all means all that are valid for this machine.
dependencies boolean no If specified true, will return the package information for all the dependencies recursively
installed tri-state {true,false,all} no Filter for packages that are installed or not, use all to accept both
active tri-state {true,false,all} no Filter on packages that are the current active version (or only version) or not, use all to accept both
required tri-state {true,false,all} no Filter on packages that are either user requested or the dependency of a user requested package, use all to accept both
blocked tri-state {true,false,all} no Filter on packages the user has requested be frozen (not upgradable or removeable), use all to accept both
latest boolean no If specified true will only return the latest version of a given package (subject to other criteria)
index integer no Sends results at a given index (can be used to page the result set)
max-results integer no Sends a maximum number of results(can be used to page the result set)
location string no scope results to a given feed location. May contain wildcards
force-scan boolean no forces feeds to be re-scanned
recursive boolean no recursively scans feeds that support such operations (ie, directories)

Response Messages

See: found-package

Sample :

msgname?param=xxx

//msgname

//description

Security Information

//securityinfo

Policy
Name Default Users Description
//name Everyone //desc

Parameters

Name Type Required Description
//// string yes //desc

Sample :

msgname?param=xxx
Clone this wiki locally