update agent
This commit is contained in:
@@ -10,6 +10,7 @@ const EMAIL_CONFIRMATION_EXPIRES_MS = Number(process.env.EMAIL_CONFIRMATION_EXPI
|
||||
|
||||
let emailConfirmationSchemaPromise;
|
||||
let applicationOpenUrlSchemaPromise;
|
||||
let packageTypeSchemaPromise;
|
||||
|
||||
function padDatePart(value) {
|
||||
return String(value).padStart(2, '0');
|
||||
@@ -326,6 +327,37 @@ LEFT JOIN dbo.PackageVersions AS pv
|
||||
return applicationOpenUrlSchemaPromise;
|
||||
}
|
||||
|
||||
async function ensurePackageTypeSchema() {
|
||||
if (!packageTypeSchemaPromise) {
|
||||
packageTypeSchemaPromise = getPool().then((pool) => pool.request().query(`
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM sys.check_constraints
|
||||
WHERE name = N'CK_Packages_PackageType'
|
||||
AND parent_object_id = OBJECT_ID(N'dbo.Packages')
|
||||
AND definition NOT LIKE N'%apt%'
|
||||
)
|
||||
BEGIN
|
||||
ALTER TABLE dbo.Packages DROP CONSTRAINT CK_Packages_PackageType;
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM sys.check_constraints
|
||||
WHERE name = N'CK_Packages_PackageType'
|
||||
AND parent_object_id = OBJECT_ID(N'dbo.Packages')
|
||||
)
|
||||
BEGIN
|
||||
ALTER TABLE dbo.Packages WITH CHECK
|
||||
ADD CONSTRAINT CK_Packages_PackageType
|
||||
CHECK (PackageType IN (N'deb', N'apt', N'docker'));
|
||||
END;
|
||||
`));
|
||||
}
|
||||
|
||||
return packageTypeSchemaPromise;
|
||||
}
|
||||
|
||||
function normalizePackageStatus(isActive) {
|
||||
return isActive ? 'Active' : 'Archived';
|
||||
}
|
||||
@@ -850,6 +882,7 @@ async function deleteUser(userId) {
|
||||
}
|
||||
|
||||
async function listPackages() {
|
||||
await ensurePackageTypeSchema();
|
||||
const pool = await getPool();
|
||||
const result = await pool.request().query(`
|
||||
SELECT *
|
||||
@@ -996,7 +1029,10 @@ async function getApplicationById(id) {
|
||||
}
|
||||
|
||||
async function getApplicationManifest(appCode, version, baseUrl) {
|
||||
await ensureApplicationOpenUrlSchema();
|
||||
await Promise.all([
|
||||
ensureApplicationOpenUrlSchema(),
|
||||
ensurePackageTypeSchema()
|
||||
]);
|
||||
const pool = await getPool();
|
||||
const appResult = await pool.request()
|
||||
.input('AppCode', sql.NVarChar(100), String(appCode || '').trim())
|
||||
@@ -1048,6 +1084,17 @@ async function getApplicationManifest(appCode, version, baseUrl) {
|
||||
const components = componentResult.recordset.map((row) => {
|
||||
const installOrder = Number(row.InstallOrder || 10);
|
||||
|
||||
if (row.PackageType === 'apt') {
|
||||
return {
|
||||
componentId: row.PackageCode,
|
||||
type: 'apt',
|
||||
installOrder,
|
||||
required: true,
|
||||
packageName: row.PackageCode,
|
||||
version: row.Version || undefined
|
||||
};
|
||||
}
|
||||
|
||||
if (row.PackageType === 'docker') {
|
||||
return {
|
||||
componentId: row.PackageCode,
|
||||
@@ -1167,6 +1214,7 @@ async function getPackageVersionDownload(packageVersionId) {
|
||||
}
|
||||
|
||||
async function createPackageWithVersion(input) {
|
||||
await ensurePackageTypeSchema();
|
||||
const pool = await getPool();
|
||||
const transaction = new sql.Transaction(pool);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user