feat(server): add defaultAutoRotateIntervalDays to instance settings schema and API
This commit is contained in:
@@ -215,6 +215,12 @@ export function runMigrations(db: Database.Database): void {
|
|||||||
{ name: 'federation_relay_ttl_days', type: 'INTEGER NOT NULL DEFAULT 30' },
|
{ name: 'federation_relay_ttl_days', type: 'INTEGER NOT NULL DEFAULT 30' },
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'instance_settings',
|
||||||
|
columns: [
|
||||||
|
{ name: 'default_auto_rotate_interval_days', type: 'INTEGER NOT NULL DEFAULT 90' },
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'federation_peers',
|
name: 'federation_peers',
|
||||||
columns: [
|
columns: [
|
||||||
|
|||||||
@@ -274,6 +274,7 @@ export const instanceSettings = sqliteTable('instance_settings', {
|
|||||||
maxUploadSizeBytes: integer('max_upload_size_bytes'),
|
maxUploadSizeBytes: integer('max_upload_size_bytes'),
|
||||||
federationRelayEnabled: integer('federation_relay_enabled').notNull().default(1),
|
federationRelayEnabled: integer('federation_relay_enabled').notNull().default(1),
|
||||||
federationRelayTtlDays: integer('federation_relay_ttl_days').notNull().default(30),
|
federationRelayTtlDays: integer('federation_relay_ttl_days').notNull().default(30),
|
||||||
|
defaultAutoRotateIntervalDays: integer('default_auto_rotate_interval_days').notNull().default(90),
|
||||||
updatedAt: integer('updated_at').notNull(),
|
updatedAt: integer('updated_at').notNull(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -191,6 +191,7 @@ export async function settingsRoutes(app: FastifyInstance): Promise<void> {
|
|||||||
maxUploadSizeMb: Math.round(maxUploadBytes / (1024 * 1024)),
|
maxUploadSizeMb: Math.round(maxUploadBytes / (1024 * 1024)),
|
||||||
federationRelayEnabled: row.federationRelayEnabled === 1,
|
federationRelayEnabled: row.federationRelayEnabled === 1,
|
||||||
federationRelayTtlDays: row.federationRelayTtlDays,
|
federationRelayTtlDays: row.federationRelayTtlDays,
|
||||||
|
defaultAutoRotateIntervalDays: row.defaultAutoRotateIntervalDays,
|
||||||
};
|
};
|
||||||
|
|
||||||
return reply.code(200).send(response);
|
return reply.code(200).send(response);
|
||||||
@@ -249,6 +250,14 @@ export async function settingsRoutes(app: FastifyInstance): Promise<void> {
|
|||||||
updateData.federationRelayTtlDays = ttl;
|
updateData.federationRelayTtlDays = ttl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (body.defaultAutoRotateIntervalDays !== undefined) {
|
||||||
|
const interval = Number(body.defaultAutoRotateIntervalDays);
|
||||||
|
if (isNaN(interval) || !Number.isInteger(interval) || interval < 1 || interval > 365) {
|
||||||
|
return reply.code(400).send({ error: 'defaultAutoRotateIntervalDays must be an integer between 1 and 365', statusCode: 400 });
|
||||||
|
}
|
||||||
|
updateData.defaultAutoRotateIntervalDays = interval;
|
||||||
|
}
|
||||||
|
|
||||||
db.update(schema.instanceSettings).set(updateData).where(eq(schema.instanceSettings.id, 1)).run();
|
db.update(schema.instanceSettings).set(updateData).where(eq(schema.instanceSettings.id, 1)).run();
|
||||||
|
|
||||||
const updatedRow = db.select().from(schema.instanceSettings).where(eq(schema.instanceSettings.id, 1)).get();
|
const updatedRow = db.select().from(schema.instanceSettings).where(eq(schema.instanceSettings.id, 1)).get();
|
||||||
@@ -267,6 +276,7 @@ export async function settingsRoutes(app: FastifyInstance): Promise<void> {
|
|||||||
maxUploadSizeMb: Math.round(updatedMaxUploadBytes / (1024 * 1024)),
|
maxUploadSizeMb: Math.round(updatedMaxUploadBytes / (1024 * 1024)),
|
||||||
federationRelayEnabled: updatedRow.federationRelayEnabled === 1,
|
federationRelayEnabled: updatedRow.federationRelayEnabled === 1,
|
||||||
federationRelayTtlDays: updatedRow.federationRelayTtlDays,
|
federationRelayTtlDays: updatedRow.federationRelayTtlDays,
|
||||||
|
defaultAutoRotateIntervalDays: updatedRow.defaultAutoRotateIntervalDays,
|
||||||
};
|
};
|
||||||
|
|
||||||
return reply.code(200).send(response);
|
return reply.code(200).send(response);
|
||||||
|
|||||||
Reference in New Issue
Block a user