From 61334c402d7fa99587bb8b2d92574eb93cb28c28 Mon Sep 17 00:00:00 2001 From: estebanmathia <74156507+estebanmathia@users.noreply.github.com> Date: Thu, 11 Apr 2024 16:52:59 +0200 Subject: [PATCH 1/5] addOn Kexa --- Kexa/models/export/kexa/config.model.ts | 7 +++++ .../exportation/kexaExportation.service.ts | 29 +++++++++++++++++++ Kexa/services/addOn/save/kexaSave.service.ts | 24 +++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 Kexa/models/export/kexa/config.model.ts create mode 100644 Kexa/services/addOn/exportation/kexaExportation.service.ts create mode 100644 Kexa/services/addOn/save/kexaSave.service.ts diff --git a/Kexa/models/export/kexa/config.model.ts b/Kexa/models/export/kexa/config.model.ts new file mode 100644 index 00000000..33f8190d --- /dev/null +++ b/Kexa/models/export/kexa/config.model.ts @@ -0,0 +1,7 @@ +import { SaveConfig } from "../config.models"; + +export interface KexaSaveConfig extends SaveConfig { + type: "kexa"; + name: string; + token: string; +} \ No newline at end of file diff --git a/Kexa/services/addOn/exportation/kexaExportation.service.ts b/Kexa/services/addOn/exportation/kexaExportation.service.ts new file mode 100644 index 00000000..65ca0c36 --- /dev/null +++ b/Kexa/services/addOn/exportation/kexaExportation.service.ts @@ -0,0 +1,29 @@ +import { getEnvVar } from "../../manageVarEnvironnement.service"; +import { getContext, getNewLogger } from "../../logger.service"; +import { ProviderResource } from "../../../models/providerResource.models"; +import { getConfig } from "../../../helpers/loaderConfig"; +import { KexaSaveConfig } from "../../../models/export/kexa/config.model"; + +const axios = require('axios'); +const logger = getNewLogger("KexaExportationLogger"); +const context = getContext(); +//const addOnPropertyToSend: { [key: string]: Function; } = loadAddOnsCustomUtility("display", "propertyToSend"); + +export async function save(save: KexaSaveConfig, resources: ProviderResource): Promise{ + if(!save.name) throw new Error("name is required"); + let name = (await getEnvVar(save.name))??save.name; + let token = (await getEnvVar(save.token))??save.token; + logger.info(`Exportation to Kexa SaaS`); + context?.log(`Exportation to Kexa SaaS`); + const config = getConfig(); + let configSend:any = {}; + Object.keys(resources).forEach((providerName) => { + configSend[providerName] = config[providerName]??[]; + }); + await axios.post(`https://api.kexa.io/api/job/exportation`, {resources: resources, configSend, save}, { + headers: { + User: name, + Authorization: token + } + }); +} \ No newline at end of file diff --git a/Kexa/services/addOn/save/kexaSave.service.ts b/Kexa/services/addOn/save/kexaSave.service.ts new file mode 100644 index 00000000..97a94c87 --- /dev/null +++ b/Kexa/services/addOn/save/kexaSave.service.ts @@ -0,0 +1,24 @@ +import { ResultScan } from "../../../models/resultScan.models"; +import { getEnvVar } from "../../manageVarEnvironnement.service"; +import { getContext, getNewLogger } from "../../logger.service"; +import { loadAddOnsCustomUtility } from "../../addOn.service"; +import { KexaSaveConfig } from "../../../models/export/kexa/config.model"; + +const axios = require('axios'); +const logger = getNewLogger("KexaSaveLogger"); +const context = getContext(); +//const addOnPropertyToSend: { [key: string]: Function; } = loadAddOnsCustomUtility("display", "propertyToSend"); + +export async function save(save: KexaSaveConfig, result: ResultScan[][]): Promise{ + if(!save.name) throw new Error("name is required"); + let name = (await getEnvVar(save.name))??save.name; + let token = (await getEnvVar(save.token))??save.token; + logger.info(`Saving to Kexa SaaS`); + context?.log(`Saving to Kexa SaaS`); + await axios.post(`https://api.kexa.io/api/job/save`, {result: result, save}, { + headers: { + User: name, + Authorization: token + } + }); +} \ No newline at end of file From b4b3808331ebd942dfda0ac6872858385a276d6e Mon Sep 17 00:00:00 2001 From: Esteban Mathia Date: Tue, 23 Apr 2024 13:35:36 +0200 Subject: [PATCH 2/5] update documentation + var for endpoint Kexa SaaS --- .../exportation/kexaExportation.service.ts | 4 +- Kexa/services/addOn/save/kexaSave.service.ts | 2 +- Kexa/services/exportation.service.ts | 2 +- config/demo/kexa.default.json | 29 ++++++++++++++ documentation/Documentation-Kexa.md | 12 +++--- documentation/save/AzureBlobStorage.md | 6 +-- documentation/save/Kexa.md | 39 +++++++++++++++++++ documentation/save/MongoDB.md | 4 +- documentation/save/MySQL.md | 4 +- 9 files changed, 85 insertions(+), 17 deletions(-) create mode 100644 config/demo/kexa.default.json create mode 100644 documentation/save/Kexa.md diff --git a/Kexa/services/addOn/exportation/kexaExportation.service.ts b/Kexa/services/addOn/exportation/kexaExportation.service.ts index 65ca0c36..8bd38e4f 100644 --- a/Kexa/services/addOn/exportation/kexaExportation.service.ts +++ b/Kexa/services/addOn/exportation/kexaExportation.service.ts @@ -9,7 +9,7 @@ const logger = getNewLogger("KexaExportationLogger"); const context = getContext(); //const addOnPropertyToSend: { [key: string]: Function; } = loadAddOnsCustomUtility("display", "propertyToSend"); -export async function save(save: KexaSaveConfig, resources: ProviderResource): Promise{ +export async function exportation(save: KexaSaveConfig, resources: ProviderResource): Promise{ if(!save.name) throw new Error("name is required"); let name = (await getEnvVar(save.name))??save.name; let token = (await getEnvVar(save.token))??save.token; @@ -20,7 +20,7 @@ export async function save(save: KexaSaveConfig, resources: ProviderResource): P Object.keys(resources).forEach((providerName) => { configSend[providerName] = config[providerName]??[]; }); - await axios.post(`https://api.kexa.io/api/job/exportation`, {resources: resources, configSend, save}, { + await axios.post((process.env.DOMAINEKEXA??`https://api.kexa.io`) + '/api/job/exportation', {resources: resources, configSend, save}, { headers: { User: name, Authorization: token diff --git a/Kexa/services/addOn/save/kexaSave.service.ts b/Kexa/services/addOn/save/kexaSave.service.ts index 97a94c87..a8e3eb1f 100644 --- a/Kexa/services/addOn/save/kexaSave.service.ts +++ b/Kexa/services/addOn/save/kexaSave.service.ts @@ -15,7 +15,7 @@ export async function save(save: KexaSaveConfig, result: ResultScan[][]): Promis let token = (await getEnvVar(save.token))??save.token; logger.info(`Saving to Kexa SaaS`); context?.log(`Saving to Kexa SaaS`); - await axios.post(`https://api.kexa.io/api/job/save`, {result: result, save}, { + await axios.post((process.env.DOMAINEKEXA??`https://api.kexa.io`) + `/api/job/save`, {result: result, save}, { headers: { User: name, Authorization: token diff --git a/Kexa/services/exportation.service.ts b/Kexa/services/exportation.service.ts index 18c1a771..c6ef3871 100644 --- a/Kexa/services/exportation.service.ts +++ b/Kexa/services/exportation.service.ts @@ -13,7 +13,7 @@ const context = getContext(); export async function exportationData(resources: ProviderResource): Promise { if(!configuration.export) return []; const addOnExportation: { [key: string]: Function; } = loadAddOnsCustomUtility("exportation", "exportation", configuration.export.map((save: SaveConfig) => save.type)); - if(!Array.isArray(configuration.save)) configuration.save = [configuration.save]; + if(!Array.isArray(configuration.export)) configuration.export = [configuration.export]; let promises = Promise.all(configuration.export.map(async (save: SaveConfig) => { if(addOnExportation[save.type]){ try{ diff --git a/config/demo/kexa.default.json b/config/demo/kexa.default.json new file mode 100644 index 00000000..de50ce8d --- /dev/null +++ b/config/demo/kexa.default.json @@ -0,0 +1,29 @@ +{ + "azure": [ + { + "name": "Project A", + "prefix": "PROJECTA-", + "description": "First subscription (0) : Project A subscription", + "rules": [ + "Name of my rule" + ] + }, + { + "name": "Project B", + "prefix": "PROJECTB-", + "description": "Second subscription (1) : Project B subscription", + "rules": [ + "Name of my rule", + "Another rules" + ] + } + ], + "save": [ + { + "type": "kexa", + "name": "name of the token or the name of the var environment where the real name is stored", + "token": "token for kexa or the name of the var environment where the token is stored: the format is uuid4", + "description": "example of save for kexa" + } + ] +} \ No newline at end of file diff --git a/documentation/Documentation-Kexa.md b/documentation/Documentation-Kexa.md index cea9df88..60250f1a 100644 --- a/documentation/Documentation-Kexa.md +++ b/documentation/Documentation-Kexa.md @@ -1248,15 +1248,15 @@ However if you want to run kexa with a special config or rules, you can perform - set your own configuration: -```shell -docker run -d -v Absolute/Path/to/config:/app/config kexa -``` + ```shell + docker run -d -v Absolute/Path/to/config:/app/config kexa + ``` - set your own rules: -```shell -docker run -d -v Absolute/Path/to/rules:/app/kexa/rules kexa -``` + ```shell + docker run -d -v Absolute/Path/to/rules:/app/kexa/rules kexa + ```
diff --git a/documentation/save/AzureBlobStorage.md b/documentation/save/AzureBlobStorage.md index bb506fd3..ad76ec90 100644 --- a/documentation/save/AzureBlobStorage.md +++ b/documentation/save/AzureBlobStorage.md @@ -1,5 +1,5 @@
- + Logo @@ -17,7 +17,7 @@ ### Default.json -For each of your blob storage, no key is mandatory in the original sense of the term execpt: +For each of your blob storage, no key is mandatory in the original sense of the term except: - "containerName": it's refer to the name of your container where you want to store the data @@ -37,4 +37,4 @@ Example config for each identification you can use: ### Environment -urlName can be use to refer to a specific value in your environnement with his name as value. \ No newline at end of file +urlName can be use to refer to a specific value in your environnement with his name as value. diff --git a/documentation/save/Kexa.md b/documentation/save/Kexa.md new file mode 100644 index 00000000..1a467559 --- /dev/null +++ b/documentation/save/Kexa.md @@ -0,0 +1,39 @@ +
+ + Logo + + +#

Kexa SaaS

+ +

+
+ Report Bug + ยท + Request Feature +

+
+ +## Configuration + +### Prerequire + +Create a token in the [web site](https://saas.kexa.io). + +### Default.json + +Keys mandatory: + +- name: the name of the key you generated in the Kexa portal +- token: the token himself + +Example config for each identification you can use: +![example config for kexa](../../config/demo/kexa.default.json) + +### Environment + +"name" and "token" can be use to refer to a specific value in your environnement with his name as value. + +### Utility + +By saving or exporting your data from your kexa to the SaaS service, you can use all the viewing tools available to you. +The data sent using this method is in no way processed by anyone other than yourself. diff --git a/documentation/save/MongoDB.md b/documentation/save/MongoDB.md index 31dd0a44..0c0d17cc 100644 --- a/documentation/save/MongoDB.md +++ b/documentation/save/MongoDB.md @@ -1,5 +1,5 @@
- + Logo @@ -23,7 +23,7 @@ For each of your database, keys mandatory: - "collectionName": name of the collection where to store the data. If it's not exist we create it. Example config for each identification you can use: -![example config for azure](../../config/demo/mongoDB.default.json) +![example config for mongo](../../config/demo/mongoDB.default.json) ### Environment diff --git a/documentation/save/MySQL.md b/documentation/save/MySQL.md index 25ce2689..8c50aa4f 100644 --- a/documentation/save/MySQL.md +++ b/documentation/save/MySQL.md @@ -1,5 +1,5 @@
- + Logo @@ -26,7 +26,7 @@ For each of your database, keys mandatory: - "urlName": uri connection to access (with database in the uri) Example config for each identification you can use: -![example config for azure](../../config/demo/mongoDB.default.json) +![example config for mySQL](../../config/demo/mySQL.default.json) ### Environment From d3d1bf981e936d95381161e0c0e49037e4d8107b Mon Sep 17 00:00:00 2001 From: Esteban Mathia Date: Wed, 24 Apr 2024 16:50:12 +0200 Subject: [PATCH 3/5] fix docker file + tempo lock add Kexa SaaS export --- Dockerfile | 11 ++++------- Kexa/main.ts | 2 +- .../addOn/exportation/kexaExportation.service.ts | 1 + Kexa/services/addOn/save/kexaSave.service.ts | 1 + Kexa/services/analyse.service.ts | 4 +++- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 322f93f1..3bcb1793 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,17 +17,14 @@ ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable COPY . /app WORKDIR /app - -FROM base AS prod-deps -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile +RUN pnpm install --frozen-lockfile FROM base AS build -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile ENV NODE_OPTIONS=--max-old-space-size=16384 RUN pnpm run build -FROM base -COPY --from=prod-deps /app/node_modules /app/node_modules +FROM base AS release COPY --from=build /app/build /app/build EXPOSE 8000 -CMD [ "pnpm", "start:nobuild" ] \ No newline at end of file +#CMD ["sleep","infinity"] +CMD [ "pnpm", "run", "start:nobuild" ] \ No newline at end of file diff --git a/Kexa/main.ts b/Kexa/main.ts index 4ffc6c55..362b0a10 100644 --- a/Kexa/main.ts +++ b/Kexa/main.ts @@ -40,7 +40,7 @@ export async function main() { logger.info("___________________________________-= running Kexa scan =-_________________________________________"); logger.info("___________________________________________________________________________________________________"); await displayVersionAndLatest(logger); - let settings = await gatheringRules(await getEnvVar("RULESDIRECTORY")??"./Kexa/rules"); + let settings = await gatheringRules(await getEnvVar("RULESDIRECTORY")??"https://github.com/4urcloud/Kexa_Rules"); let allPromises = []; if(settings.length != 0){ let resources = await loadAddOns(settings); diff --git a/Kexa/services/addOn/exportation/kexaExportation.service.ts b/Kexa/services/addOn/exportation/kexaExportation.service.ts index 8bd38e4f..1b8cc5b4 100644 --- a/Kexa/services/addOn/exportation/kexaExportation.service.ts +++ b/Kexa/services/addOn/exportation/kexaExportation.service.ts @@ -10,6 +10,7 @@ const context = getContext(); //const addOnPropertyToSend: { [key: string]: Function; } = loadAddOnsCustomUtility("display", "propertyToSend"); export async function exportation(save: KexaSaveConfig, resources: ProviderResource): Promise{ + throw new Error("Not implemented"); if(!save.name) throw new Error("name is required"); let name = (await getEnvVar(save.name))??save.name; let token = (await getEnvVar(save.token))??save.token; diff --git a/Kexa/services/addOn/save/kexaSave.service.ts b/Kexa/services/addOn/save/kexaSave.service.ts index a8e3eb1f..749673f0 100644 --- a/Kexa/services/addOn/save/kexaSave.service.ts +++ b/Kexa/services/addOn/save/kexaSave.service.ts @@ -10,6 +10,7 @@ const context = getContext(); //const addOnPropertyToSend: { [key: string]: Function; } = loadAddOnsCustomUtility("display", "propertyToSend"); export async function save(save: KexaSaveConfig, result: ResultScan[][]): Promise{ + throw new Error("Not implemented"); if(!save.name) throw new Error("name is required"); let name = (await getEnvVar(save.name))??save.name; let token = (await getEnvVar(save.token))??save.token; diff --git a/Kexa/services/analyse.service.ts b/Kexa/services/analyse.service.ts index eec6608a..07d22d59 100644 --- a/Kexa/services/analyse.service.ts +++ b/Kexa/services/analyse.service.ts @@ -36,6 +36,7 @@ const varEnvMin = { const config = getConfig(); const levelAlert = ["info", "warning", "error", "critical"]; const defaultRulesDirectory = "./rules"; +const secondDefaultRulesDirectory = "./Kexa/rules"; let headers: any; // Analyze list @@ -49,7 +50,8 @@ export async function gatheringRules(rulesDirectory:string, getAll:boolean=false await gatheringDistantRules(rulesDirectory); rulesDirectory = defaultRulesDirectory; } - const paths = fs.readdirSync(rulesDirectory, { withFileTypes: true}); + let paths = fs.readdirSync(rulesDirectory, { withFileTypes: true}); + if(paths.length === 0) paths = fs.readdirSync(secondDefaultRulesDirectory, { withFileTypes: true}); logger.debug("listing rules files."); let settingFileList = new Array; headers = require('../../config/headers.json'); From 57f13764b0e92467b4cce8b823afcbb3aa22f3a2 Mon Sep 17 00:00:00 2001 From: estebanmathia Date: Wed, 24 Apr 2024 15:04:57 +0000 Subject: [PATCH 4/5] add info extract from addon --- CHANGELOG.md | 43 +++++++++++++++++++ Kexa/services/addOn/awsGathering.service.ts | 32 ++++++++++++++ .../addOn/imports/azurePackage.import.ts | 1 + .../scripts/awsPackageInstall.script.sh | 18 +++++--- .../scripts/azurePackageInstall.script.sh | 18 +++++--- VERSION | 2 +- package.json | 2 +- 7 files changed, 104 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42e771ed..1e4bbc8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1448,3 +1448,46 @@ package-lock.json was changed package.json was changed +## 1.14.0-devestebanexportsaasaddon.15.d3d1bf9 + +### Files added: 5 + +Kexa/models/export/kexa/config.model.ts was added + +Kexa/services/addOn/exportation/kexaExportation.service.ts was added + +Kexa/services/addOn/save/kexaSave.service.ts was added + +config/demo/kexa.default.json was added + +documentation/save/Kexa.md was added + +### Files changed: 13 + +Kexa/models/export/kexa/config.model.ts was changed + +Kexa/services/addOn/exportation/kexaExportation.service.ts was changed + +Kexa/services/addOn/save/kexaSave.service.ts was changed + +config/demo/kexa.default.json was changed + +documentation/save/Kexa.md was changed + +Dockerfile was changed + +Kexa/main.ts was changed + +Kexa/services/analyse.service.ts was changed + +Kexa/services/exportation.service.ts was changed + +documentation/Documentation-Kexa.md was changed + +documentation/save/AzureBlobStorage.md was changed + +documentation/save/MongoDB.md was changed + +documentation/save/MySQL.md was changed + + diff --git a/Kexa/services/addOn/awsGathering.service.ts b/Kexa/services/addOn/awsGathering.service.ts index 0cc57c0b..a44fad72 100644 --- a/Kexa/services/addOn/awsGathering.service.ts +++ b/Kexa/services/addOn/awsGathering.service.ts @@ -78,6 +78,7 @@ * - EC2Client.LocalGatewayVirtualInterfaces * - EC2Client.LocalGateways * - EC2Client.LockedSnapshots + * - EC2Client.MacHosts * - EC2Client.ManagedPrefixLists * - EC2Client.MovingAddresses * - EC2Client.NatGateways @@ -168,6 +169,7 @@ * - EC2Client.GroupsForCapacityReservation * - EC2Client.HostReservationPurchasePreview * - EC2Client.ImageBlockPublicAccessState + * - EC2Client.InstanceMetadataDefaults * - EC2Client.InstanceTypesFromInstanceRequirements * - EC2Client.InstanceUefiData * - EC2Client.IpamAddressHistory @@ -264,6 +266,7 @@ * - DynamoDBClient.TableReplicaAutoScaling * - DynamoDBClient.TimeToLive * - DynamoDBClient.Item + * - DynamoDBClient.ResourcePolicy * - DynamoDBClient.Backups * - DynamoDBClient.ContributorInsights * - DynamoDBClient.Exports @@ -803,8 +806,10 @@ * - CloudFormationClient.AccountLimits * - CloudFormationClient.ChangeSet * - CloudFormationClient.ChangeSetHooks + * - CloudFormationClient.GeneratedTemplate * - CloudFormationClient.OrganizationsAccess * - CloudFormationClient.Publisher + * - CloudFormationClient.ResourceScan * - CloudFormationClient.StackDriftDetectionStatus * - CloudFormationClient.StackEvents * - CloudFormationClient.StackInstance @@ -816,15 +821,21 @@ * - CloudFormationClient.Stacks * - CloudFormationClient.Type * - CloudFormationClient.TypeRegistration + * - CloudFormationClient.GeneratedTemplate * - CloudFormationClient.StackPolicy * - CloudFormationClient.Template * - CloudFormationClient.TemplateSummary * - CloudFormationClient.ChangeSets * - CloudFormationClient.Exports + * - CloudFormationClient.GeneratedTemplates * - CloudFormationClient.Imports + * - CloudFormationClient.ResourceScanRelatedResources + * - CloudFormationClient.ResourceScanResources + * - CloudFormationClient.ResourceScans * - CloudFormationClient.StackInstanceResourceDrifts * - CloudFormationClient.StackInstances * - CloudFormationClient.StackResources + * - CloudFormationClient.StackSetAutoDeploymentTargets * - CloudFormationClient.StackSetOperationResults * - CloudFormationClient.StackSetOperations * - CloudFormationClient.StackSets @@ -973,6 +984,7 @@ * - RDSClient.DBProxyTargets * - RDSClient.DBRecommendations * - RDSClient.DBSecurityGroups + * - RDSClient.DBShardGroups * - RDSClient.DBSnapshotAttributes * - RDSClient.DBSnapshotTenantDatabases * - RDSClient.DBSnapshots @@ -1004,6 +1016,7 @@ * - CodeBuildClient.Builds * - CodeBuildClient.BuildsForProject * - CodeBuildClient.CuratedEnvironmentImages + * - CodeBuildClient.Fleets * - CodeBuildClient.Projects * - CodeBuildClient.ReportGroups * - CodeBuildClient.Reports @@ -1301,21 +1314,27 @@ * - OpenSearchClient.VpcEndpointsForDomain * - CodeartifactClient.Domain * - CodeartifactClient.Package + * - CodeartifactClient.PackageGroup * - CodeartifactClient.PackageVersion * - CodeartifactClient.Repository + * - CodeartifactClient.AssociatedPackageGroup * - CodeartifactClient.AuthorizationToken * - CodeartifactClient.DomainPermissionsPolicy * - CodeartifactClient.PackageVersionAsset * - CodeartifactClient.PackageVersionReadme * - CodeartifactClient.RepositoryEndpoint * - CodeartifactClient.RepositoryPermissionsPolicy + * - CodeartifactClient.AllowedRepositoriesForGroup + * - CodeartifactClient.AssociatedPackages * - CodeartifactClient.Domains + * - CodeartifactClient.PackageGroups * - CodeartifactClient.PackageVersionAssets * - CodeartifactClient.PackageVersionDependencies * - CodeartifactClient.PackageVersions * - CodeartifactClient.Packages * - CodeartifactClient.Repositories * - CodeartifactClient.RepositoriesInDomain + * - CodeartifactClient.SubPackageGroups * - CodeartifactClient.TagsForResource * - ApiGatewayManagementApiClient.Connection * - GlueClient.Blueprint @@ -1495,6 +1514,7 @@ * - RedshiftClient.ReservedNodeExchangeConfigurationOptions * - RedshiftClient.ReservedNodeExchangeOfferings * - RedshiftClient.ResourcePolicy + * - RedshiftClient.Recommendations * - MediaConvertClient.Endpoints * - MediaConvertClient.Job * - MediaConvertClient.JobTemplate @@ -1539,6 +1559,7 @@ * - CloudTrailClient.EventDataStores * - CloudTrailClient.ImportFailures * - CloudTrailClient.Imports + * - CloudTrailClient.InsightsMetricData * - CloudTrailClient.PublicKeys * - CloudTrailClient.Queries * - CloudTrailClient.Tags @@ -1654,12 +1675,14 @@ * - KinesisVideoClient.TagsForStream * - IvsClient.Channel * - IvsClient.PlaybackKeyPair + * - IvsClient.PlaybackRestrictionPolicy * - IvsClient.RecordingConfiguration * - IvsClient.Stream * - IvsClient.StreamKey * - IvsClient.StreamSession * - IvsClient.Channels * - IvsClient.PlaybackKeyPairs + * - IvsClient.PlaybackRestrictionPolicies * - IvsClient.RecordingConfigurations * - IvsClient.StreamKeys * - IvsClient.StreamSessions @@ -1672,6 +1695,7 @@ * - AppSyncClient.DomainName * - AppSyncClient.Function * - AppSyncClient.GraphqlApi + * - AppSyncClient.GraphqlApiEnvironmentVariables * - AppSyncClient.IntrospectionSchema * - AppSyncClient.Resolver * - AppSyncClient.SchemaCreationStatus @@ -2348,6 +2372,7 @@ * - CostExplorerClient.Anomalies * - CostExplorerClient.AnomalyMonitors * - CostExplorerClient.AnomalySubscriptions + * - CostExplorerClient.ApproximateUsageRecords * - CostExplorerClient.CostAndUsage * - CostExplorerClient.CostAndUsageWithResources * - CostExplorerClient.CostCategories @@ -2364,6 +2389,7 @@ * - CostExplorerClient.SavingsPlansUtilizationDetails * - CostExplorerClient.Tags * - CostExplorerClient.UsageForecast + * - CostExplorerClient.CostAllocationTagBackfillHistory * - CostExplorerClient.CostAllocationTags * - CostExplorerClient.CostCategoryDefinitions * - CostExplorerClient.SavingsPlansPurchaseRecommendationGeneration @@ -3005,6 +3031,7 @@ * - LightsailClient.RelationalDatabaseSnapshot * - LightsailClient.RelationalDatabaseSnapshots * - LightsailClient.RelationalDatabases + * - LightsailClient.SetupHistory * - LightsailClient.StaticIp * - LightsailClient.StaticIps * - NeptuneClient.DBClusterEndpoints @@ -3338,12 +3365,14 @@ * - AmplifyUIBuilderClient.CodegenJobs * - AmplifyUIBuilderClient.Components * - AmplifyUIBuilderClient.Forms + * - AmplifyUIBuilderClient.TagsForResource * - AmplifyUIBuilderClient.Themes * - KafkaConnectClient.Connector * - KafkaConnectClient.CustomPlugin * - KafkaConnectClient.WorkerConfiguration * - KafkaConnectClient.Connectors * - KafkaConnectClient.CustomPlugins + * - KafkaConnectClient.TagsForResource * - KafkaConnectClient.WorkerConfigurations * - PanoramaClient.ApplicationInstance * - PanoramaClient.ApplicationInstanceDetails @@ -3552,6 +3581,7 @@ * - ApplicationCostProfilerClient.ReportDefinition * - ApplicationCostProfilerClient.ReportDefinitions * - KeyspacesClient.Keyspace + * - KeyspacesClient.TableAutoScalingSettings * - KeyspacesClient.Table * - KeyspacesClient.Keyspaces * - KeyspacesClient.Tables @@ -4659,6 +4689,8 @@ * - IoTWirelessClient.EventConfigurationByResourceTypes * - IoTWirelessClient.FuotaTask * - IoTWirelessClient.LogLevelsByResourceTypes + * - IoTWirelessClient.MetricConfiguration + * - IoTWirelessClient.Metrics * - IoTWirelessClient.MulticastGroup * - IoTWirelessClient.MulticastGroupSession * - IoTWirelessClient.NetworkAnalyzerConfiguration diff --git a/Kexa/services/addOn/imports/azurePackage.import.ts b/Kexa/services/addOn/imports/azurePackage.import.ts index 02222671..5648bed6 100644 --- a/Kexa/services/addOn/imports/azurePackage.import.ts +++ b/Kexa/services/addOn/imports/azurePackage.import.ts @@ -1,4 +1,5 @@ // This file was auto-generated by updateCapability.service.ts + import * as armresources from '@azure/arm-resources'; import * as armsubscriptions from '@azure/arm-subscriptions'; import * as armsql from '@azure/arm-sql'; diff --git a/Kexa/services/addOn/imports/scripts/awsPackageInstall.script.sh b/Kexa/services/addOn/imports/scripts/awsPackageInstall.script.sh index e16315fd..43484bdf 100644 --- a/Kexa/services/addOn/imports/scripts/awsPackageInstall.script.sh +++ b/Kexa/services/addOn/imports/scripts/awsPackageInstall.script.sh @@ -266,8 +266,16 @@ packages=( '@aws-sdk/client-commander' ) -for pkg in "${packages[@]}" -do - npm install "$pkg" || echo "Failed to install $pkg" - echo "done for $pkg" -done \ No newline at end of file +# for pkg in "${packages[@]}" +# do +# npm install "$pkg" || echo "Failed to install $pkg" +# echo "done for $pkg" +# done + +package_string="" +for package in "${packages[@]}"; do + package_string+=" $package" +done + +# Install packages using npm +npm install $package_string \ No newline at end of file diff --git a/Kexa/services/addOn/imports/scripts/azurePackageInstall.script.sh b/Kexa/services/addOn/imports/scripts/azurePackageInstall.script.sh index 084f6c02..8b5f3385 100644 --- a/Kexa/services/addOn/imports/scripts/azurePackageInstall.script.sh +++ b/Kexa/services/addOn/imports/scripts/azurePackageInstall.script.sh @@ -163,8 +163,16 @@ packages=( '@azure/arm-scvmm' ) -for pkg in "${packages[@]}" -do - npm install "$pkg" || echo "Failed to install $pkg" - echo "done for $pkg" -done \ No newline at end of file +# for pkg in "${packages[@]}" +# do +# npm install "$pkg" || echo "Failed to install $pkg" +# echo "done for $pkg" +# done + +package_string="" +for package in "${packages[@]}"; do + package_string+=" $package" +done + +# Install packages using npm +npm install $package_string \ No newline at end of file diff --git a/VERSION b/VERSION index f38e6b49..e757f2d6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.14.0-SNAPSHOT.11.a6d1c0e +1.14.0-devestebanexportsaasaddon.15.d3d1bf9 diff --git a/package.json b/package.json index 437a72e3..c2e07216 100644 --- a/package.json +++ b/package.json @@ -523,7 +523,7 @@ "typescript": "^4.9.5" }, "name": "Kexa", - "version": "1.14.0-SNAPSHOT.11.a6d1c0e", + "version": "1.14.0-devestebanexportsaasaddon.15.d3d1bf9", "main": "./build/index.js", "scripts": { "postinstall": "node-config-ts", From a762325405263c263f1ca44a192f08c61e3fec77 Mon Sep 17 00:00:00 2001 From: estebanmathia Date: Wed, 24 Apr 2024 15:19:44 +0000 Subject: [PATCH 5/5] add info extract from addon --- CHANGELOG.md | 48 +++++++++++++++++++++++++++++++++++++++++++++++- VERSION | 2 +- package.json | 2 +- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 902af871..ff376f4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1626,4 +1626,50 @@ package.json was changed Kexa/services/analyse.service.ts was changed -documentation/Documentation-Kexa.md was changed \ No newline at end of file +documentation/Documentation-Kexa.md was changed## 1.14.0-devestebanexportsaasaddon.38.b0f21a8 + +### Files added: 5 + +Kexa/models/export/kexa/config.model.ts was added + +Kexa/services/addOn/exportation/kexaExportation.service.ts was added + +Kexa/services/addOn/save/kexaSave.service.ts was added + +config/demo/kexa.default.json was added + +documentation/save/Kexa.md was added + +### Files changed: 15 + +Kexa/models/export/kexa/config.model.ts was changed + +Kexa/services/addOn/exportation/kexaExportation.service.ts was changed + +Kexa/services/addOn/save/kexaSave.service.ts was changed + +config/demo/kexa.default.json was changed + +documentation/save/Kexa.md was changed + +CHANGELOG.md was changed + +Dockerfile was changed + +Kexa/main.ts was changed + +Kexa/services/analyse.service.ts was changed + +Kexa/services/exportation.service.ts was changed + +VERSION was changed + +documentation/Documentation-Kexa.md was changed + +documentation/save/AzureBlobStorage.md was changed + +documentation/save/MongoDB.md was changed + +documentation/save/MySQL.md was changed + + diff --git a/VERSION b/VERSION index b9a26a5f..105ad93a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.14.0-SNAPSHOT.32.8960e5d \ No newline at end of file +1.14.0-devestebanexportsaasaddon.38.b0f21a8 diff --git a/package.json b/package.json index dc43ae15..f01672f9 100644 --- a/package.json +++ b/package.json @@ -523,7 +523,7 @@ "typescript": "^4.9.5" }, "name": "Kexa", - "version": "1.14.0-SNAPSHOT.32.8960e5d", + "version": "1.14.0-devestebanexportsaasaddon.38.b0f21a8", "main": "./build/index.js", "scripts": { "postinstall": "node-config-ts",