desktop/src/common/constants/constants.ts (194 lines of code) (raw):
/* eslint-disable @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match */
export const badHttpCodeMaxRetryCount = 5;
export const FileSourceTypes = {
Job: "job",
Pool: "pool",
Blob: "blob",
};
export const forms = {
validation: {
minLength: {
container: 3,
},
maxLength: {
id: 64,
displayName: 1024,
applicationName: 64,
version: 64,
fileGroup: 55,
container: 63,
},
regex: {
id: /^[\w\_-]+$/i,
appVersion: /^[a-zA-Z0-9_-][a-zA-Z0-9_.-]*$/i,
appFilename: /\.zip$/i,
certificateFileName: /(\.pfx|\.cer)$/i,
fileGroup: /^(?!.*--)[a-z0-9-]+$/,
batchAccount: /^[0-9a-z]*$/,
},
range: {
retry: { min: -1, max: 100 },
priority: { min: -1000, max: 1000 },
},
},
};
export const SavedDataFilename = {
sshPublicKeys: "data/ssh-pub-keys.json",
};
export const UserSpecificStoreKeys = {
accountFavorites: "account-favorites",
};
export const localStorageKey = {
/**
* LocalStorage key for storing the current user information
*/
currentUser: "current_user",
/**
* List of subsciption id to the multi select in the account list
*/
accountSubscriptionFilter: "account_subscription_filter",
/**
* Subscriptions cached
*/
subscriptions: "subscriptions",
/**
* Subscriptions cached
*/
batchAccounts: "batchAccounts",
/**
* Last batch account selected.
*/
selectedAccountId: "selected-account-id",
/**
* Where the proxy settings are stored
*/
proxySettings: "proxy_settings",
/**
* Save the latest azure environemnt used
*/
azureEnvironment: "azure_environment",
/**
* Last selected storage account
*/
lastStorageAccount: "last_storage_account",
/**
* Telemetry enabled
*/
telemetryEnabled: "telemetry_enabled",
/**
* Save a randomly generated machine id
*/
machineId: "machine_id",
nodeConnectLastSSHPublicKey: "node-connect.last-ssh-public-key",
};
export const ApiVersion = {
arm: "2020-01-01",
armClassicStorage: "2016-11-01",
armStorage: "2016-12-01",
armBatch: "2019-08-01",
compute: {
default: "2019-03-01",
skus: "2019-04-01",
},
commerce: "2016-08-31-preview",
authorization: "2017-05-01",
monitor: "2017-05-01-preview",
network: "2017-10-01",
classicNetwork: "2015-12-01",
consumption: "2018-10-01",
batchService: "2023-05-01.17.0",
costManagement: "2019-01-01",
};
export const providersApiVersion: { [resourceProvider: string]: string } = {
"microsoft.batch": ApiVersion.armBatch,
"microsoft.classicstorage": ApiVersion.armClassicStorage,
"microsoft.storage": ApiVersion.armStorage,
"microsoft.compute": ApiVersion.compute.default,
"microsoft.compute/skus": ApiVersion.compute.skus,
"microsoft.commerce": ApiVersion.commerce,
"microsoft.authorization": ApiVersion.authorization,
"microsoft.insights": ApiVersion.monitor,
"microsoft.network": ApiVersion.network,
"microsoft.classicnetwork": ApiVersion.classicNetwork,
"microsoft.consumption": ApiVersion.consumption,
"microsoft.costmanagement": ApiVersion.costManagement,
};
export const ExternalLinks = {
supportRequest: "https://portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade/newsupportrequest",
setupStorageAccount: "https://portal.azure.com/#resource{0}/storageAccount",
license: "https://azure.github.io/BatchExplorer/EULA.html",
privacyStatement: "https://privacy.microsoft.com/en-us/privacystatement",
italyAccessibility: "https://www.microsoft.com/it-it/accessibility/accessibilita/dichiarazioni",
submitIssue: "https://github.com/Azure/BatchExplorer/issues",
subscriptionUrl: "https://portal.azure.com/#resource/subscriptions/{0}/overview",
costManagementUrl: "https://ms.portal.azure.com/#resource/subscriptions/{0}/costByResource",
resourceGroupUrl: "https://portal.azure.com/#resource/subscriptions/{0}/resourceGroups/{1}/overview",
};
export const ODataFields = {
state: "state",
result: "executionInfo/result",
taskExitCode: "executionInfo/exitCode",
};
export const Environment = {
prod: "production" as Environment,
dev: "developement" as Environment,
test: "test" as Environment,
};
export const ServiceUrl = {
githubRaw: "https://raw.githubusercontent.com",
github: "https://github.com",
};
export const ResourceUrl = {
batch: "https://batch.core.windows.net/",
arm: "https://management.core.windows.net/",
appInsights: "https://api.applicationinsights.io",
msGraph: "https://graph.microsoft.com",
};
export const APIErrorCodes = {
containerNotFound: "ContainerNotFound",
operationInvalidForCurrentState: "OperationInvalidForCurrentState",
authenticationFailed: "AuthenticationFailed",
accountNotEnabledForAutoStorage: "AccountNotEnabledForAutoStorage",
};
export const MetadataInternalKey = {
tags: "_bl_tags",
};
export const PollRate = {
entity: 10000,
batchApplication: 60000,
};
/**
* Maximum number of tasks the recent tasks attribute can have.
*/
export const nodeRecentTaskLimit = 10;
export const LowPriDiscount = {
windows: 0.40, // 60%
linux: 0.20, // 80%
};
export const AAD = {
/**
* Minimum number of milliseconds the token should have left before we refresh
* 2 minutes
*/
refreshMargin: 1000 * 120,
};
export const IpcEvent = {
AAD: {
accessTokenData: "AAD_ACCESS_TOKEN_DATA",
clearTenantAuth: "AAD_CLEAR_TENANT_AUTH"
},
launchApplication: "LAUNCH_APPLICATION",
login: "LOGIN",
logout: "LOGOUT",
userAuthSelectRequest: "USER_AUTH_SELECT",
userAuthSelectResponse:
(requestId: string) => `USER_AUTH_SELECT_${requestId}`,
sendTelemetry: "SEND_TELEMETRY",
log: "SEND_LOG",
storageBlob: {
listContainers: "STORAGE_BLOB_LIST_CONTAINERS",
getContainerProperties: "STORAGE_BLOB_GET_CONTAINER_PROPERTIES",
deleteContainer: "STORAGE_BLOB_GET_DELETE_CONTAINER",
createContainer: "STORAGE_BLOB_CREATE_CONTAINER",
listBlobs: "STORAGE_BLOB_LIST_BLOBS",
getBlobProperties: "STORAGE_BLOB_GET_BLOB_PROPERTIES",
getBlobContent: "STORAGE_BLOB_GET_BLOB_CONTENT",
generateSasUrl: "STORAGE_BLOB_GENERATE_SAS_URL",
downloadBlob: "STORAGE_BLOB_DOWNLOAD_BLOB",
uploadFile: "STORAGE_BLOB_UPLOAD_FILE",
deleteBlob: "STORAGE_BLOB_DELETE_BLOB",
}
};
export const ExternalApplication = {
terminal: "TERMINAL",
};
export const legacyProtocolName = "ms-batchlabs";
export const customProtocolName = "ms-batch-explorer";
/**
* Name of events that needs to be passed between rendered and main
*/
export const rendererEvents = {
batchExplorerLink: "batchExplorer-link",
navigateTo: "navigate-to",
};
export const isRenderer = (process && process.type === "renderer");
export const legacyFileGroupPrefix = "fgrp-";
export const ListPageSizes = {
default: 50,
};
export const KnownQueryParameters = {
useAutoPool: "auto-pool",
inputParameter: "input-parameter",
assetContainer: "asset-container",
assetPaths: "asset-paths",
outputs: "outputs",
};
const cdn = "https://batchexplorer.azureedge.net";
export const AutoUpdateUrls = {
stable: `${cdn}/stable`,
insider: `${cdn}/insider`,
testing: `${cdn}/test`,
};
/**
* All telemetry event should be here to keep track of it
*/
export const TelemetryEvents = {
applicationStart: "Application start",
disableTelemetry: "Disable telemetry",
};