mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-30 07:05:24 +00:00
feat(plugins): publish host.created when a host is added (#1668)
Plugins that keep an inventory of hosts had no way to hear about a new
one short of polling. Core now publishes host.created with the same
{ hostId, userId } payload as host.updated wherever a host row is
created: the host create route, ctx.hosts.create, JSON and SSH config
bulk import, database file import, and sync writing a host it did not
have yet.
This commit is contained in:
1 parent
893e7e5a4b
commit
16f2f509f2
12 files changed
+185
-6
No files matched your search
@@ -22,6 +22,7 @@ import {
|
||||
import { FieldCrypto } from "../utils/field-crypto.js";
|
||||
import { syncLogger } from "../utils/logger.js";
|
||||
import { getPluginRuntime } from "../plugins/index.js";
|
||||
import { pluginEvents, TOPICS } from "../plugins/events.js";
|
||||
import { singletonSyncId } from "./wire.js";
|
||||
import { parseDefaultOverrides } from "../../types/host-defaults.js";
|
||||
import {
|
||||
@@ -174,7 +175,7 @@ export function registerCoreSyncEntities(): void {
|
||||
)
|
||||
: {},
|
||||
}),
|
||||
afterWrite: async ({ id, userId, wire, resolveId }) => {
|
||||
afterWrite: async ({ id, userId, wire, created, resolveId }) => {
|
||||
if (id === null) return;
|
||||
// The server owns host defaults: it keeps what the host set itself
|
||||
// and resolves the rest. A desktop takes the server's values as sent.
|
||||
@@ -195,6 +196,9 @@ export function registerCoreSyncEntities(): void {
|
||||
const { SharedHostSecretsManager } =
|
||||
await import("../utils/shared-host-secrets-manager.js");
|
||||
await SharedHostSecretsManager.getInstance().resyncHost(id);
|
||||
if (created) {
|
||||
pluginEvents.emit(TOPICS.hostCreated, { hostId: id, userId });
|
||||
}
|
||||
},
|
||||
remove: async (row, userId) => {
|
||||
const { deleteOwnedHost } = await import("../hosts/delete-host.js");
|
||||
|
||||
Reference in new issue
Block a user