mirror of
https://github.com/ershisan99/coolify.git
synced 2026-01-27 05:02:10 +00:00
50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import { getTeam, getUserDetails } from '$lib/common';
|
|
import * as db from '$lib/database';
|
|
import { ErrorHandler } from '$lib/database';
|
|
import { dockerInstance } from '$lib/docker';
|
|
import type { RequestHandler } from '@sveltejs/kit';
|
|
import jsonwebtoken from 'jsonwebtoken';
|
|
|
|
export const get: RequestHandler = async (event) => {
|
|
const { status, body, teamId } = await getUserDetails(event, false);
|
|
if (status === 401) return { status, body };
|
|
|
|
const { id } = event.params;
|
|
try {
|
|
const secrets = await db.listSecrets(id);
|
|
const applicationSecrets = secrets.filter((secret) => !secret.isPRMRSecret);
|
|
const PRMRSecrets = secrets.filter((secret) => secret.isPRMRSecret);
|
|
const destinationDocker = await db.getDestinationByApplicationId({ id, teamId });
|
|
const docker = dockerInstance({ destinationDocker });
|
|
const listContainers = await docker.engine.listContainers({
|
|
filters: { network: [destinationDocker.network] }
|
|
});
|
|
const containers = listContainers.filter((container) => {
|
|
return (
|
|
container.Labels['coolify.configuration'] &&
|
|
container.Labels['coolify.type'] === 'standalone-application'
|
|
);
|
|
});
|
|
const jsonContainers = containers
|
|
.map((container) =>
|
|
JSON.parse(Buffer.from(container.Labels['coolify.configuration'], 'base64').toString())
|
|
)
|
|
.filter((container) => {
|
|
return (
|
|
container.type !== 'manual' &&
|
|
container.type !== 'webhook_commit' &&
|
|
container.applicationId === id
|
|
);
|
|
});
|
|
return {
|
|
body: {
|
|
containers: jsonContainers,
|
|
applicationSecrets,
|
|
PRMRSecrets
|
|
}
|
|
};
|
|
} catch (error) {
|
|
return ErrorHandler(error);
|
|
}
|
|
};
|