mindspace: version runtime contracts and audit packages
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
export const MINDSPACE_SERVER_ADAPTER_CONTRACT_VERSION = 2;
|
||||
|
||||
export const MINDSPACE_SERVER_ADAPTER_REQUIRED_CAPABILITIES = Object.freeze([
|
||||
'chat-save-authority',
|
||||
'public-finish-authority',
|
||||
'workspace-publication-delivery-authority',
|
||||
'scoped-workspace-tools',
|
||||
]);
|
||||
|
||||
export const MINDSPACE_SERVER_ADAPTER_BINDINGS = Object.freeze({
|
||||
serviceFacade: Object.freeze(['prepareConversationPackageRead']),
|
||||
chatSaveService: Object.freeze([
|
||||
@@ -119,6 +128,66 @@ export const MINDSPACE_SERVER_ADAPTER_BINDING_KEYS = Object.freeze(
|
||||
Object.keys(MINDSPACE_SERVER_ADAPTER_BINDINGS),
|
||||
);
|
||||
|
||||
export const MINDSPACE_SERVER_ADAPTER_REQUIRED_BINDINGS = Object.freeze({
|
||||
chatSaveService: Object.freeze([
|
||||
'createSharedHtml',
|
||||
'materializeWorkspaceHtml',
|
||||
'readWorkspaceHtml',
|
||||
]),
|
||||
conversationArtifactService: Object.freeze([
|
||||
'registerPublicHtmlArtifacts',
|
||||
'registerWorkspaceFileArtifact',
|
||||
]),
|
||||
publicFinishService: Object.freeze([
|
||||
'prepareWechatHtmlDelivery',
|
||||
'syncAfterFinish',
|
||||
]),
|
||||
workspacePublicationDeliveryService: Object.freeze([
|
||||
'resolveWorkspaceRequest',
|
||||
'validateRunDeliverables',
|
||||
]),
|
||||
workspaceToolService: Object.freeze([
|
||||
'readFile',
|
||||
'writeFile',
|
||||
'editFile',
|
||||
'publishPage',
|
||||
'writeBinaryFile',
|
||||
]),
|
||||
});
|
||||
|
||||
export function createMindSpaceServerAdapterContractPayload({
|
||||
adapter = {},
|
||||
serviceMeta = {},
|
||||
env = process.env,
|
||||
} = {}) {
|
||||
return {
|
||||
contractVersion:
|
||||
MINDSPACE_SERVER_ADAPTER_CONTRACT_VERSION,
|
||||
service: 'mindspace-service',
|
||||
adapterKind: adapter.kind ?? null,
|
||||
implementationStatus:
|
||||
adapter.implementationStatus ?? null,
|
||||
buildId:
|
||||
serviceMeta.buildId ??
|
||||
env.MINDSPACE_SERVICE_BUILD_ID ??
|
||||
null,
|
||||
gitSha:
|
||||
serviceMeta.gitSha ??
|
||||
env.MINDSPACE_SERVICE_GIT_SHA ??
|
||||
null,
|
||||
builtAt:
|
||||
serviceMeta.builtAt ??
|
||||
env.MINDSPACE_SERVICE_BUILT_AT ??
|
||||
null,
|
||||
requiredCapabilities:
|
||||
MINDSPACE_SERVER_ADAPTER_REQUIRED_CAPABILITIES,
|
||||
requiredBindings:
|
||||
MINDSPACE_SERVER_ADAPTER_REQUIRED_BINDINGS,
|
||||
bindings: MINDSPACE_SERVER_ADAPTER_BINDINGS,
|
||||
bindingKeys: MINDSPACE_SERVER_ADAPTER_BINDING_KEYS,
|
||||
};
|
||||
}
|
||||
|
||||
export function assertMindSpaceServerAdapterBindingContract(bindingKey, service) {
|
||||
const methods = MINDSPACE_SERVER_ADAPTER_BINDINGS[bindingKey];
|
||||
if (!methods) {
|
||||
|
||||
Reference in New Issue
Block a user