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

Service Request Messages

virmitio edited this page Sep 15, 2011 · 7 revisions

Messages accepted by the service

Message: 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: Service-Response-Messages

session-started

Sample :

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

Message: find-packages

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: Service-Response-Messages

found-package

no-packages-found

operation-requires-permission

message-argument-error

require-remote-file

Sample :

msgname?param=xxx

Message get-package-details

Gets the cosmetic and contextual information for a given package.

Security Information

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

This function is read-only and does not modify the system.

Policy

No specific policy is required.

Parameters

Name Type Required Description
canonical-name string yes The canonical-name of the package for which data is being requested

Response Messages

See: Service-Response-Messages

package-details

unknown-package

message-argument-error

Sample :

Would return the package details (if known) for the requested ruby package:

get-package-details?canonical-name=ruby-1.9.2.290-x86-0da32de74420310f

Message: install-package

Installs a package given a canonical name, including any required dependent packages.

As well, this can determine if a newer version of a package is available and install it.

Security Information

This function is accessible provided the client has the appropriate policy requirements--the required policy changes depending if the operation is an upgrade or new install of a package.

This function may request the client download files from remote locations and write them to the requisite location.

Policy
Name Default Users Description
InstallPackage Administrators Allows a new package to be installed
UpdatePackage Everyone Allows a newer version of an package that is currently installed to be installed

Parameters

Name Type Required Description
canonical-name string yes The canonical-name of the package requested to install.
auto-upgrade tristate {true, false, fail} no if specified true the engine will attempt to locate the latest version of the package possible to install. If specified false, will not attempt to locate a newer version.If specified fail, will fail on a newer package being available.
force boolean no forces the installation of a package even if the dependencies are not able to be satisfied.

Response Messages

See: Service-Response-Messages

operation-requires-permission

unknown-package

message-argument-error

installing-package

installed-package

failed-install-package

package-is-blocked

require-remote-file

signature-validation

Sample :

Would install the given ruby package (or a more recent available version)

install-package?canonical-name=canonical-name=ruby-1.9.2.290-x86-0da32de74420310f&auto-upgrade=true

Message: recognize-file

Given a file or location, asks the engine to recognize it and that it is available.

This is most often given either before installing a package (to make the service aware of it) or at the completion of downloading a remote file.

Security Information

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

This function is read-only and does not modify the system, it simply makes the service aware of the presence of a file.

This does change the transient internal-state of the package manager, and if the given file fulfills an outstanding request, this may cause the engine to continue a previously paused task.

Policy

No specific policy is required.

Parameters

Name Type Required Description
local-location string yes the file location of a given file.
remote-location string no the location the file was downloaded from.
canonical-name string * This is required if notifying the service about a previously requested file. Otherwise, this should be omitted.

Response Messages

See: Service-Response-Messages

message-argument-error

unable-to-recognize-file

Sample :

Would notify the engine of a file at c:\apps\.cache\coapp.org\packages.atom.xml that was downloaded from http://coapp.org/repository/packages.atom.xml

recognize-file?location=c%3A%5Capps%5C.cache%5Ccoapp.org%5Cpackages.atom.xml&remote-location=http%3A%2F%2Fcoapp.org%2Frepository%2Fpackages.atom.xml

Message: unable-to-acquire

Tells the service that the client is unable to satisfy a remote file request.

Security Information

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

This function is read-only and does not modify the system.

This does change the transient internal-state of the package manager, and may cause the engine to continue (or abort) a previously paused task.

Policy

No specific policy is required.

Parameters

Name Type Required Description
canonical-name string yes The package that has failed to be acquired.

Response Messages

See: Service-Response-Messages

message-argument-error

Sample :

Would tell the service that it was unable to get the file from the given URL:

unable-to-acquire?remote-location=http%3A%2F%2Fcoapp.org%2Frepository%2Fpackages.atom.xml

Message: remove-package

Removes a given package from the system

Security Information

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

This does not ensure that other packages are still functional if a required package is removed, nor does it remove unneccessary dependent packages (the client should query for not-required packages, and remove those if desired.)

Policy
Name Default Users Description
RemovePackage Administrators Allows a package to be removed

Parameters

Name Type Required Description
canonical-name string yes The canonical-name of the package requested to remove.

Response Messages

See: Service-Response-Messages

operation-requires-permission

failed-remove-package

unknown-package

message-argument-error

package-is-blocked

Sample :

remove-package?canonical-name=canonical-name=ruby-1.9.2.290-x86-0da32de74420310f&auto-upgrade=true

Message: set-package

Sets a state on a given package

Security Information

This function is accessible provided the client has the appropriate policy requirements--the required policy changes depending on the status change requested.

Policy
Name Default Users Description
ChangeActivePackage Administrators Allows a user to change which version of a package is the active (default) one
ChangeRequiredState Administrators Allows a user to change whether a given package is required (user requested)
ChangeBlockedState Administrators Allows a user to change whether a given package is blocked from being upgraded

Parameters

Name Type Required Description
canonical-name string yes The canonical-name of the package requested change the state of.
active bool no if specified true, this version of the package will become the active version
required bool no if specified true, this sets the package to the user requested state (shouldn't be deleted unless the user requests it)
blocked bool no if specified true, this marks the package to block upgrade requests.

Response Messages

See: Service-Response-Messages

operation-requires-permission

unknown-package

message-argument-error

Sample :

Would set the Ruby package to be not upgradable.

set-package?canonical-name=ruby-1.9.2.290-x86-0da32de74420310f&blocked=true

Message: verify-file-signature

Verifies that a given file is signed with a certificate that chains up to the local machine's trusted publishers.

Security Information

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

This function is read-only and does not modify the system.

Policy

No specific policy is required.

Parameters

Name Type Required Description
filename string yes The local filename of the file (msi, exe, etc) to verify.

Response Messages

See: Service-Response-Messages

file-not-found

message-argument-error

signature-validation

Sample :

Would verify the file c:\apps\.cache\coapp.org\foo-1.2.2.2-any.msi is properly signed.

verify-file-signature?filename=c%3A%5Capps%5C.cache%5Ccoapp.org%5Cfoo-1.2.2.2-any.msi

Message: add-feed

Adds a feed to the list of feeds where packages can be discovered.

Security Information

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

System feeds have a different permission from session feeds.

Either way, this causes a change in the state of the engine.

Policy
Name Default Users Description
EditSystemFeeds Administrators Allows users to edit remembered feeds for the system
EditSessionFeeds Everyone Allows users to edit remembered feeds for just the session

Parameters

Name Type Required Description
location string yes the URL or file/directory location of the feed
session string no if specified true this only affects the current session.

Response Messages

See: Service-Response-Messages

operation-requires-permission

message-argument-error

require-remote-file

feed-added

Sample :

add-feed?location=http%3A%2F%2Fcoapp.org%2Frepository%2Fpackages.atom.xml&session=true

Message: remove-feed

Removes a feed to the list of feeds where packages can be discovered.

Security Information

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

System feeds have a different permission from session feeds.

Either way, this causes a change in the state of the engine (transient or permanent).

Policy
Name Default Users Description
EditSystemFeeds Administrators Allows users to edit remembered feeds for the system
EditSessionFeeds Everyone Allows users to edit remembered feeds for just the session

Parameters

Name Type Required Description
location string yes the URL or file/directory location of the feed
session string no if specified true this only affects the current session.

Response Messages

See: Service-Response-Messages

operation-requires-permission

message-argument-error

Sample :

remove-feed?location=http%3A%2F%2Fcoapp.org%2Frepository%2Fpackages.atom.xml&session=true

Message: find-feeds

Asks the server for the package feeds active in this session.

Security Information

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

Policy

No specific policies are required

Parameters

Name Type Required Description
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)

Response Messages

See: Service-Response-Messages

found-feed

no-feeds-found

message-argument-error

Sample :

find-feeds

Message: suppress-feed

Blocks a feed from being used for the current session.

A subsequent add-feed for the same feed will cancel out the suppress-feed.

Security Information

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

System feeds have a different permission from session feeds.

Either way, this causes a change in the transient state of the engine.

Policy
Name Default Users Description
EditSystemFeeds Administrators Allows users to edit remembered feeds for the system
EditSessionFeeds Everyone Allows users to edit remembered feeds for just the session

Parameters

Name Type Required Description
location string yes the feed location that the client wishes to suppress

Response Messages

See: Service-Response-Messages

feed-suppressed

message-argument-error

Sample :

suppress-feed?location=XXXX
Clone this wiki locally