| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package app |
| |
| import ( |
| "signature" |
| |
| "v.io/v23/security" |
| "v.io/x/ref/services/wspr/internal/principal" |
| ) |
| |
| type Controller interface { |
| // Serve instructs WSPR to start listening for calls on behalf |
| // of a javascript server. |
| Serve(name string, serverId uint32, serverOpts []RpcServerOption) error |
| // Stop instructs WSPR to stop listening for calls for the |
| // given javascript server. |
| Stop(serverId uint32) error |
| // AddName adds a published name to an existing server. |
| AddName(serverId uint32, name string) error |
| // RemoveName removes a published name from an existing server. |
| RemoveName(serverId uint32, name string) error |
| |
| // UnlinkBlessings removes the given blessings from the blessings store. |
| UnlinkBlessings(handle principal.BlessingsHandle) error |
| // BlessingsDebugString gets a string useful for debugging blessings. |
| BlessingsDebugString(handle principal.BlessingsHandle) (string | error) |
| // Bless binds extensions of blessings held by this principal to |
| // another principal (represented by its public key). |
| Bless(publicKey string, handle principal.BlessingsHandle, extension string, caveat []security.Caveat) (publicKeyOut string, handleOut principal.BlessingsHandle | error) |
| // BlessSelf creates a blessing with the provided name for this principal. |
| BlessSelf(name string, caveats []security.Caveat) (publicKeyOut string, handleOut principal.BlessingsHandle | error) |
| // PutToBlessingStore puts the specified blessing to the blessing store under the provided pattern. |
| PutToBlessingStore(handle principal.BlessingsHandle, pattern security.BlessingPattern) (?principal.JsBlessings | error) |
| // AddToRoots adds the provided blessing as a root. |
| AddToRoots(handle principal.BlessingsHandle) error |
| |
| // RemoteBlessings fetches the remote blessings for a given name and method. |
| RemoteBlessings(name, method string) ([]string | error) |
| // Signature fetches the signature for a given name. |
| Signature(name string) ([]signature.Interface | error) |
| |
| // GetDefaultBlessings fetches the default blessings for the principal of the controller. |
| GetDefaultBlessings() (?principal.JsBlessings | error) |
| } |