2023-02-24 04:02:09 +00:00
|
|
|
import { Controller, Get, Post, UseGuards } from '@nestjs/common';
|
2021-07-26 17:14:14 +00:00
|
|
|
import { MetadataService } from '@services/metadata.service';
|
|
|
|
|
import { JwtAuthGuard } from '../modules/auth/jwt-auth.guard';
|
|
|
|
|
|
|
|
|
|
@Controller('metadata')
|
|
|
|
|
export class MetadataController {
|
|
|
|
|
constructor(private metadataService: MetadataService) {}
|
|
|
|
|
|
|
|
|
|
@UseGuards(JwtAuthGuard)
|
|
|
|
|
@Post('skip_version')
|
|
|
|
|
async skipVersion() {
|
|
|
|
|
const metadata = await this.metadataService.getMetaData();
|
|
|
|
|
const data = metadata.data;
|
|
|
|
|
|
|
|
|
|
await this.metadataService.updateMetaData({
|
2021-09-21 13:48:28 +00:00
|
|
|
ignored_version: data['latest_version'],
|
|
|
|
|
version_ignored: true,
|
2021-07-26 17:14:14 +00:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Get()
|
2023-02-24 04:02:09 +00:00
|
|
|
async getMetadata() {
|
2021-07-26 17:14:14 +00:00
|
|
|
const metadata = await this.metadataService.getMetaData();
|
|
|
|
|
const data = metadata.data;
|
|
|
|
|
let latestVersion = data['latest_version'];
|
|
|
|
|
let versionIgnored = data['version_ignored'] || false;
|
2024-02-06 09:21:47 +00:00
|
|
|
const instanceId = metadata['id'];
|
2021-07-26 17:14:14 +00:00
|
|
|
const onboarded = data['onboarded'];
|
|
|
|
|
|
2022-03-23 14:23:40 +00:00
|
|
|
if (process.env.NODE_ENV == 'production') {
|
2023-04-27 08:24:28 +00:00
|
|
|
if (
|
|
|
|
|
process.env.CHECK_FOR_UPDATES === '1' ||
|
|
|
|
|
process.env.CHECK_FOR_UPDATES === 'true' ||
|
|
|
|
|
!process.env.CHECK_FOR_UPDATES
|
|
|
|
|
) {
|
2022-03-23 14:23:40 +00:00
|
|
|
const result = await this.metadataService.checkForUpdates(metadata);
|
2022-02-17 16:19:53 +00:00
|
|
|
latestVersion = result.latestVersion;
|
|
|
|
|
versionIgnored = false;
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-27 06:54:01 +00:00
|
|
|
if (process.env.DISABLE_TOOLJET_TELEMETRY !== 'true') {
|
2023-01-09 12:03:50 +00:00
|
|
|
void this.metadataService.sendTelemetryData(metadata);
|
2022-02-17 16:19:53 +00:00
|
|
|
}
|
2021-07-26 17:14:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return {
|
2024-02-06 09:21:47 +00:00
|
|
|
instance_id: instanceId,
|
2022-03-23 14:23:40 +00:00
|
|
|
installed_version: globalThis.TOOLJET_VERSION,
|
2021-07-26 17:14:14 +00:00
|
|
|
latest_version: latestVersion,
|
|
|
|
|
onboarded: onboarded,
|
2021-09-21 13:48:28 +00:00
|
|
|
version_ignored: versionIgnored,
|
|
|
|
|
};
|
2021-07-26 17:14:14 +00:00
|
|
|
}
|
|
|
|
|
}
|