ps/Modules/Alkami.PowerShell.Choco/Private/VariableDeclarations.ps1
2023-05-30 22:51:22 -07:00

155 lines
5.3 KiB
PowerShell

[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', '')]
param()
[HashTable[]]$installedChocolateyPackages = @();
[HashTable[]]$chocolateySources = @();
# Microservice Tiers
$_MicroserviceTiers = @( @(
"Alkami.Services.Subscriptions.Host",
"Alkami.MicroServices.Broker.Host"
), @(
"Alkami.MicroServices.Forms.Service.Host",
"Alkami.MicroServices.Authorization.Service.Host",
"Alkami.MicroServices.Security.Service.Host",
"Alkami.MicroServices.UserInterface.Service.Host",
"Alkami.MicroServices.Audit.Service.Host",
"Alkami.MicroServices.Contacts.Service.Host",
"Alkami.MicroServices.Holidays.Service.Host",
"Alkami.MicroServices.Images.Service.Host",
"Alkami.MicroServices.Notifications.Service.Host",
"Alkami.MicroServices.Settings.Service.Host",
"Alkami.MicroServices.SiteText.Service.Host",
"Alkami.MicroServices.Transactions.Service.Host",
"Alkami.MicroServices.EventManagement.Service.Host",
"Alkami.MS.DataEngineSettings.Service.Host",
"Alkami.MS.MessageSubscriptions.Host"
)
);
# Define infrastructure microservices that must be running on each server.
$_InfrastructureMicroservices = @(
"Alkami.Services.Subscriptions.Host",
"Alkami.MicroServices.Broker.Host",
"Alkami.MicroServices.Features.Beacon.Host",
"newrelic-dotnet"
)
# Define microservices that need to run on every single FAB server.
# This is different from infrastructure microservices because they are not deployed to web/app servers.
$_FullScaleMicroservicesAllowList = @(
"Alkami.MicroServices.Authorization.Service.Host",
"Alkami.MicroServices.Accounts.Service.Host",
"Alkami.MicroServices.Transactions.Service.Host",
"Alkami.MicroServices.Security.Service.Host",
"Alkami.MicroServices.Settings.Service.Host"
)
$_FullScaleMicroservicesAllowList += $_InfrastructureMicroServices
# Defines packages to be summarily considered microservices.
$_MicroserviceAllowList = @(
"*.MicroServices.*",
"*.MS.*",
"*.MicroService.*",
"*.Services.*",
"fake.Alkami.MicroServices.SymConnectMultiplexer.Service.Host"
)
# Defines packages to be excluded from microservices.
$_MicroserviceDenyList = @()
# Define packages to be summarily considered Web Tier packages.
$_WebAllowList = @(
"Alkami.OpenSource.License.Listing",
"Alkami.Utilities.WebToolKit.Snippets.Runtime",
"DS.Repository.Common",
"DS.Repository.MicroserviceClient",
"DSFCU.MessageRepository.Implementation",
"DS.CopyRequest.Widget",
"Patelco.Widget.OpenAccountLegacy"
)
# Define packages to be summarily considered App Tier packages.
$_AppAllowList = @(
"Alkami.CoreDashboard",
"Alkami.Security.RPSTS",
"Alkami.VisaAuthorizationsConverter",
"Alkami.App.Providers.Core.ESB.OCCU",
"Alkami.App.Providers.eStatements.SandiaLabs",
"Alkami.App.Providers.eStatements.SandiaLabsSso",
"Achieva.App.Provider.Rewards",
"Alkami.App.Providers.SymConnectMultiplexer",
"Alkami.Utilities.NagViewer",
"Alkami.Console.Dynamodb.Migrater",
"Alkami.MicroServiceTester",
"Alkami.Tools.Deconversion",
"Alkami.Broker.Testing.Console"
)
# Define packages to be placed on the App Tier in FAB Environments Only
$_AppAllowListFabOnly = @(
"*Sym*",
"Alkami.MicroServices.RemoteDepositProviders.ProfitStars.Onus.Service.Host"
)
# Define nuspec tags for Web Tier packages.
$_WebNuspecTags = @("Widget","AdminWidget","Admin","WebApplication","WebExtension", "Repository", "Module", "Modules", "Website", "Snippet");
# Define nuspec tags for App Tier packages.
$_AppNuspecTags = @("Provider","FileProcessing");
# Define installer packages that must be installed prior to other packages.
$_InstallerPackages = @(
"*Choco.Installer*",
"*Alkami.Installer*",
"Alkami.TI.TechnicalImplementations",
"chocolatey",
"Carbon",
"Pester"
)
# Define PowerShell module/cmdlet packages.
$_PowerShellModulePackages = @(
"Alkami.PowerShell.*",
"Alkami.DevOps.*",
"Alkami.Ops.*",
"SRE.MigrationUtility"
)
# Define packages that must only be installed in upgrade-mode.
$_UpgradePackages = @(
"chocolatey",
"Carbon",
"debugdiagnostic",
"Pester",
"Alkami.Installer.*",
"Alkami.PowerShell.*",
"Alkami.DevOps.*",
"Alkami.Ops.*",
"Alkami.CoreDashboard",
"Alkami.EagleEye",
"newrelic-dotnet"
)
# Define package dependencies that signify database usage / dbms user requirements.
$_DbmsDependencies = @(
"Alkami.MicroServices.Choco.Installer.Database",
"Alkami.MicroServices.Choco.Installer.MasterDatabase"
)
# Define package dependencies that signify that a package is a microservice.
$_MicroDependencies = @(
"Alkami.MicroServices.Choco.Installer.Logic",
"Alkami.MicroServices.Choco.Installer.Database",
"Alkami.MicroServices.Choco.Installer.MasterDatabase"
)
# "Legacy" WebApplications - these need to sort higher than others in the same tier
# because they live in `Get-OrbPath` and other packages might try to install into
# one of their subfolders; these packages need to install prior to others
# in the same tier
$_ComponentizedWebApplications = @(
"Alkami.Security.RPSTS",
"Alkami.App.Service.Scheduler.Host",
"Alkami.App.Providers.SymConnectMultiplexer"
)