@studiometa/forge-core 0.4.5 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/executors/daemons/get-log.d.ts +7 -0
- package/dist/executors/daemons/get-log.d.ts.map +1 -0
- package/dist/executors/daemons/index.d.ts +2 -1
- package/dist/executors/daemons/index.d.ts.map +1 -1
- package/dist/executors/daemons/types.d.ts +7 -0
- package/dist/executors/daemons/types.d.ts.map +1 -1
- package/dist/executors/services/index.d.ts +5 -0
- package/dist/executors/services/index.d.ts.map +1 -0
- package/dist/executors/services/list.d.ts +17 -0
- package/dist/executors/services/list.d.ts.map +1 -0
- package/dist/executors/services/restart.d.ts +11 -0
- package/dist/executors/services/restart.d.ts.map +1 -0
- package/dist/executors/services/types.d.ts +39 -0
- package/dist/executors/services/types.d.ts.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +111 -2
- package/dist/index.js.map +1 -1
- package/dist/routes.d.ts +6 -0
- package/dist/routes.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/constants.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* All supported resources.
|
|
3
3
|
* Single source of truth — MCP schema and handlers derive from this.
|
|
4
4
|
*/
|
|
5
|
-
export declare const RESOURCES: readonly ["servers", "sites", "deployments", "certificates", "databases", "database-users", "daemons", "env", "nginx", "firewall-rules", "ssh-keys", "security-rules", "redirect-rules", "nginx-templates", "monitors", "recipes", "backups", "commands", "scheduled-jobs", "user", "batch"];
|
|
5
|
+
export declare const RESOURCES: readonly ["servers", "sites", "deployments", "certificates", "databases", "database-users", "daemons", "env", "nginx", "firewall-rules", "ssh-keys", "security-rules", "redirect-rules", "nginx-templates", "monitors", "recipes", "backups", "commands", "scheduled-jobs", "services", "user", "batch"];
|
|
6
6
|
export type Resource = (typeof RESOURCES)[number];
|
|
7
7
|
/**
|
|
8
8
|
* All supported actions.
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,SAAS,YACpB,SAAS,EACT,OAAO,EACP,aAAa,EACb,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,OAAO,CACC,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,OAAO,YAClB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,KAAK,EACL,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,CACD,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,SAAS,YACpB,SAAS,EACT,OAAO,EACP,aAAa,EACb,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,MAAM,EACN,OAAO,CACC,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,OAAO,YAClB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,KAAK,EACL,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,CACD,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExecutorContext, ExecutorResult } from "../../context.ts";
|
|
2
|
+
import type { GetDaemonLogOptions } from "./types.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Get the log output for a daemon (background process).
|
|
5
|
+
*/
|
|
6
|
+
export declare function getDaemonLog(options: GetDaemonLogOptions, ctx: ExecutorContext): Promise<ExecutorResult<string>>;
|
|
7
|
+
//# sourceMappingURL=get-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-log.d.ts","sourceRoot":"","sources":["../../../src/executors/daemons/get-log.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,EAC5B,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAUjC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { createDaemon } from "./create.ts";
|
|
2
2
|
export { deleteDaemon } from "./delete.ts";
|
|
3
3
|
export { getDaemon } from "./get.ts";
|
|
4
|
+
export { getDaemonLog } from "./get-log.ts";
|
|
4
5
|
export { listDaemons } from "./list.ts";
|
|
5
6
|
export { restartDaemon } from "./restart.ts";
|
|
6
7
|
export { updateDaemon } from "./update.ts";
|
|
7
|
-
export type { CreateDaemonOptions, DeleteDaemonOptions, GetDaemonOptions, ListDaemonsOptions, RestartDaemonOptions, UpdateDaemonOptions, } from "./types.ts";
|
|
8
|
+
export type { CreateDaemonOptions, DeleteDaemonOptions, GetDaemonLogOptions, GetDaemonOptions, ListDaemonsOptions, RestartDaemonOptions, UpdateDaemonOptions, } from "./types.ts";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/executors/daemons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/executors/daemons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
|
@@ -42,4 +42,11 @@ export interface RestartDaemonOptions {
|
|
|
42
42
|
server_id: string;
|
|
43
43
|
id: string;
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Options for getting a daemon log.
|
|
47
|
+
*/
|
|
48
|
+
export interface GetDaemonLogOptions {
|
|
49
|
+
server_id: string;
|
|
50
|
+
id: string;
|
|
51
|
+
}
|
|
45
52
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executors/daemons/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executors/daemons/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { listServices } from "./list.ts";
|
|
2
|
+
export { restartService } from "./restart.ts";
|
|
3
|
+
export { RESTARTABLE_SERVICES } from "./types.ts";
|
|
4
|
+
export type { ListServicesOptions, RestartableService, RestartServiceOptions, ServiceStatus, } from "./types.ts";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/executors/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,GACd,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ExecutorContext, ExecutorResult } from "../../context.ts";
|
|
2
|
+
import type { ListServicesOptions, ServiceStatus } from "./types.ts";
|
|
3
|
+
/**
|
|
4
|
+
* List services on a server with a derived availability flag.
|
|
5
|
+
*
|
|
6
|
+
* The v2 API has no GET endpoint for services, so availability is inferred from
|
|
7
|
+
* the server object attributes. This `available` flag is a documented heuristic:
|
|
8
|
+
*
|
|
9
|
+
* - nginx → always available
|
|
10
|
+
* - php → available when `php_version` is set (detail = php_version)
|
|
11
|
+
* - mysql → available when `database_type` starts with "mysql"/"mariadb"
|
|
12
|
+
* - postgres → available when `database_type` starts with "postgres"
|
|
13
|
+
* - redis → available when `redis_status` is non-null
|
|
14
|
+
* - supervisor → always available
|
|
15
|
+
*/
|
|
16
|
+
export declare function listServices(options: ListServicesOptions, ctx: ExecutorContext): Promise<ExecutorResult<ServiceStatus[]>>;
|
|
17
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/executors/services/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,EAC5B,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAmC1C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ExecutorContext, ExecutorResult } from "../../context.ts";
|
|
2
|
+
import { type RestartServiceOptions } from "./types.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Restart a service on a server.
|
|
5
|
+
*
|
|
6
|
+
* Maps the user verb "restart" to the API action "reboot". The v2 API restarts
|
|
7
|
+
* a service via POST /servers/{server}/services/{service}/actions with body
|
|
8
|
+
* `{ action: "reboot" }`. The php service additionally requires a `version`.
|
|
9
|
+
*/
|
|
10
|
+
export declare function restartService(options: RestartServiceOptions, ctx: ExecutorContext): Promise<ExecutorResult<void>>;
|
|
11
|
+
//# sourceMappingURL=restart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restart.d.ts","sourceRoot":"","sources":["../../../src/executors/services/restart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGxE,OAAO,EAAwB,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,EAC9B,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CA0B/B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Option and result types for service executors.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The six restartable services exposed by the Forge v2 API.
|
|
6
|
+
*
|
|
7
|
+
* There is no GET endpoint for services — availability is inferred from the
|
|
8
|
+
* server object (see `listServices`).
|
|
9
|
+
*/
|
|
10
|
+
export declare const RESTARTABLE_SERVICES: readonly ["nginx", "php", "mysql", "postgres", "redis", "supervisor"];
|
|
11
|
+
export type RestartableService = (typeof RESTARTABLE_SERVICES)[number];
|
|
12
|
+
/**
|
|
13
|
+
* Options for restarting a service on a server.
|
|
14
|
+
*/
|
|
15
|
+
export interface RestartServiceOptions {
|
|
16
|
+
server_id: string;
|
|
17
|
+
/** One of the six restartable services. */
|
|
18
|
+
service: string;
|
|
19
|
+
/** PHP version (e.g. "php83") — required when restarting the php service. */
|
|
20
|
+
version?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Options for listing services on a server.
|
|
24
|
+
*/
|
|
25
|
+
export interface ListServicesOptions {
|
|
26
|
+
server_id: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A single service availability row.
|
|
30
|
+
*
|
|
31
|
+
* `available` is a documented heuristic derived from the server attributes,
|
|
32
|
+
* since the API has no services GET endpoint.
|
|
33
|
+
*/
|
|
34
|
+
export interface ServiceStatus {
|
|
35
|
+
service: string;
|
|
36
|
+
available: boolean;
|
|
37
|
+
detail: string | null;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/executors/services/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,YAC/B,OAAO,EACP,KAAK,EACL,OAAO,EACP,UAAU,EACV,OAAO,EACP,YAAY,CACJ,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,8 +20,8 @@ export { createDatabase, deleteDatabase, getDatabase, listDatabases, } from "./e
|
|
|
20
20
|
export type { CreateDatabaseOptions, DeleteDatabaseOptions, GetDatabaseOptions, ListDatabasesOptions, } from "./executors/databases/index.ts";
|
|
21
21
|
export { createDatabaseUser, deleteDatabaseUser, getDatabaseUser, listDatabaseUsers, updateDatabaseUser, } from "./executors/database-users/index.ts";
|
|
22
22
|
export type { CreateDatabaseUserOptions, DeleteDatabaseUserOptions, GetDatabaseUserOptions, ListDatabaseUsersOptions, UpdateDatabaseUserOptions, } from "./executors/database-users/index.ts";
|
|
23
|
-
export { createDaemon, deleteDaemon, getDaemon, listDaemons, restartDaemon, updateDaemon, } from "./executors/daemons/index.ts";
|
|
24
|
-
export type { CreateDaemonOptions, DeleteDaemonOptions, GetDaemonOptions, ListDaemonsOptions, RestartDaemonOptions, UpdateDaemonOptions, } from "./executors/daemons/index.ts";
|
|
23
|
+
export { createDaemon, deleteDaemon, getDaemon, getDaemonLog, listDaemons, restartDaemon, updateDaemon, } from "./executors/daemons/index.ts";
|
|
24
|
+
export type { CreateDaemonOptions, DeleteDaemonOptions, GetDaemonLogOptions, GetDaemonOptions, ListDaemonsOptions, RestartDaemonOptions, UpdateDaemonOptions, } from "./executors/daemons/index.ts";
|
|
25
25
|
export { createFirewallRule, deleteFirewallRule, getFirewallRule, listFirewallRules, } from "./executors/firewall-rules/index.ts";
|
|
26
26
|
export type { CreateFirewallRuleOptions, DeleteFirewallRuleOptions, GetFirewallRuleOptions, ListFirewallRulesOptions, } from "./executors/firewall-rules/index.ts";
|
|
27
27
|
export { createSshKey, deleteSshKey, getSshKey, listSshKeys } from "./executors/ssh-keys/index.ts";
|
|
@@ -46,6 +46,8 @@ export { createCommand, getCommand, listCommands } from "./executors/commands/in
|
|
|
46
46
|
export type { CreateCommandOptions, GetCommandOptions, ListCommandsOptions, } from "./executors/commands/index.ts";
|
|
47
47
|
export { createScheduledJob, deleteScheduledJob, getScheduledJob, listScheduledJobs, } from "./executors/scheduled-jobs/index.ts";
|
|
48
48
|
export type { CreateScheduledJobOptions, DeleteScheduledJobOptions, GetScheduledJobOptions, ListScheduledJobsOptions, } from "./executors/scheduled-jobs/index.ts";
|
|
49
|
+
export { listServices, restartService, RESTARTABLE_SERVICES } from "./executors/services/index.ts";
|
|
50
|
+
export type { ListServicesOptions, RestartableService, RestartServiceOptions, ServiceStatus, } from "./executors/services/index.ts";
|
|
49
51
|
export { getUser } from "./executors/user/index.ts";
|
|
50
52
|
export type { GetUserOptions } from "./executors/user/index.ts";
|
|
51
53
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { createWriteStream, mkdirSync } from "node:fs";
|
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import pino from "pino";
|
|
5
|
-
import { BackgroundProcessAttributesSchema, BackupConfigAttributesSchema, CertificateAttributesSchema, CommandAttributesSchema, DatabaseAttributesSchema, DatabaseUserAttributesSchema, DeploymentAttributesSchema, DeploymentOutputAttributesSchema, DeploymentScriptAttributesSchema, EnvironmentAttributesSchema, FirewallRuleAttributesSchema, MonitorAttributesSchema, NginxTemplateAttributesSchema, RecipeAttributesSchema, RedirectRuleAttributesSchema, ScheduledJobAttributesSchema, SecurityRuleAttributesSchema, ServerAttributesSchema, SiteAttributesSchema, SshKeyAttributesSchema, UserAttributesSchema, jsonApiDocumentSchema, jsonApiListDocumentSchema, unwrapDocument, unwrapListDocument } from "@studiometa/forge-api";
|
|
5
|
+
import { BackgroundProcessAttributesSchema, BackgroundProcessLogAttributesSchema, BackupConfigAttributesSchema, CertificateAttributesSchema, CommandAttributesSchema, DatabaseAttributesSchema, DatabaseUserAttributesSchema, DeploymentAttributesSchema, DeploymentOutputAttributesSchema, DeploymentScriptAttributesSchema, EnvironmentAttributesSchema, FirewallRuleAttributesSchema, MonitorAttributesSchema, NginxTemplateAttributesSchema, RecipeAttributesSchema, RedirectRuleAttributesSchema, ScheduledJobAttributesSchema, SecurityRuleAttributesSchema, ServerAttributesSchema, SiteAttributesSchema, SshKeyAttributesSchema, UserAttributesSchema, jsonApiDocumentSchema, jsonApiListDocumentSchema, unwrapDocument, unwrapListDocument } from "@studiometa/forge-api";
|
|
6
6
|
//#region src/constants.ts
|
|
7
7
|
/**
|
|
8
8
|
* All supported resources.
|
|
@@ -28,6 +28,7 @@ var RESOURCES = [
|
|
|
28
28
|
"backups",
|
|
29
29
|
"commands",
|
|
30
30
|
"scheduled-jobs",
|
|
31
|
+
"services",
|
|
31
32
|
"user",
|
|
32
33
|
"batch"
|
|
33
34
|
];
|
|
@@ -643,6 +644,10 @@ var ROUTES = {
|
|
|
643
644
|
path: "/orgs/:org/servers/:server_id/sites/:site_id/scheduled-jobs/:id/output"
|
|
644
645
|
}
|
|
645
646
|
},
|
|
647
|
+
services: { action: {
|
|
648
|
+
method: "POST",
|
|
649
|
+
path: "/orgs/:org/servers/:server_id/services/:service/actions"
|
|
650
|
+
} },
|
|
646
651
|
user: { get: {
|
|
647
652
|
method: "GET",
|
|
648
653
|
path: "/user"
|
|
@@ -1187,6 +1192,17 @@ async function getDaemon(options, ctx) {
|
|
|
1187
1192
|
}, { schema: jsonApiDocumentSchema(BackgroundProcessAttributesSchema) })) };
|
|
1188
1193
|
}
|
|
1189
1194
|
//#endregion
|
|
1195
|
+
//#region src/executors/daemons/get-log.ts
|
|
1196
|
+
/**
|
|
1197
|
+
* Get the log output for a daemon (background process).
|
|
1198
|
+
*/
|
|
1199
|
+
async function getDaemonLog(options, ctx) {
|
|
1200
|
+
return { data: unwrapDocument(await request(ROUTES.daemons.log, ctx, {
|
|
1201
|
+
server_id: options.server_id,
|
|
1202
|
+
id: options.id
|
|
1203
|
+
}, { schema: jsonApiDocumentSchema(BackgroundProcessLogAttributesSchema) })).content };
|
|
1204
|
+
}
|
|
1205
|
+
//#endregion
|
|
1190
1206
|
//#region src/executors/daemons/list.ts
|
|
1191
1207
|
/**
|
|
1192
1208
|
* List daemons on a server.
|
|
@@ -1768,6 +1784,99 @@ async function listScheduledJobs(options, ctx) {
|
|
|
1768
1784
|
return { data: unwrapListDocument(await request(route, ctx, params, { schema: jsonApiListDocumentSchema(ScheduledJobAttributesSchema) })) };
|
|
1769
1785
|
}
|
|
1770
1786
|
//#endregion
|
|
1787
|
+
//#region src/executors/services/list.ts
|
|
1788
|
+
/**
|
|
1789
|
+
* List services on a server with a derived availability flag.
|
|
1790
|
+
*
|
|
1791
|
+
* The v2 API has no GET endpoint for services, so availability is inferred from
|
|
1792
|
+
* the server object attributes. This `available` flag is a documented heuristic:
|
|
1793
|
+
*
|
|
1794
|
+
* - nginx → always available
|
|
1795
|
+
* - php → available when `php_version` is set (detail = php_version)
|
|
1796
|
+
* - mysql → available when `database_type` starts with "mysql"/"mariadb"
|
|
1797
|
+
* - postgres → available when `database_type` starts with "postgres"
|
|
1798
|
+
* - redis → available when `redis_status` is non-null
|
|
1799
|
+
* - supervisor → always available
|
|
1800
|
+
*/
|
|
1801
|
+
async function listServices(options, ctx) {
|
|
1802
|
+
const { data: server } = await getServer({ server_id: options.server_id }, ctx);
|
|
1803
|
+
const databaseType = server.database_type ?? "";
|
|
1804
|
+
const isMysql = databaseType.startsWith("mysql") || databaseType.startsWith("mariadb");
|
|
1805
|
+
const isPostgres = databaseType.startsWith("postgres");
|
|
1806
|
+
return { data: [
|
|
1807
|
+
{
|
|
1808
|
+
service: "nginx",
|
|
1809
|
+
available: true,
|
|
1810
|
+
detail: null
|
|
1811
|
+
},
|
|
1812
|
+
{
|
|
1813
|
+
service: "php",
|
|
1814
|
+
available: server.php_version !== null,
|
|
1815
|
+
detail: server.php_version
|
|
1816
|
+
},
|
|
1817
|
+
{
|
|
1818
|
+
service: "mysql",
|
|
1819
|
+
available: isMysql,
|
|
1820
|
+
detail: isMysql ? server.database_type : null
|
|
1821
|
+
},
|
|
1822
|
+
{
|
|
1823
|
+
service: "postgres",
|
|
1824
|
+
available: isPostgres,
|
|
1825
|
+
detail: isPostgres ? server.database_type : null
|
|
1826
|
+
},
|
|
1827
|
+
{
|
|
1828
|
+
service: "redis",
|
|
1829
|
+
available: server.redis_status !== null,
|
|
1830
|
+
detail: server.redis_status
|
|
1831
|
+
},
|
|
1832
|
+
{
|
|
1833
|
+
service: "supervisor",
|
|
1834
|
+
available: true,
|
|
1835
|
+
detail: null
|
|
1836
|
+
}
|
|
1837
|
+
] };
|
|
1838
|
+
}
|
|
1839
|
+
//#endregion
|
|
1840
|
+
//#region src/executors/services/types.ts
|
|
1841
|
+
/**
|
|
1842
|
+
* Option and result types for service executors.
|
|
1843
|
+
*/
|
|
1844
|
+
/**
|
|
1845
|
+
* The six restartable services exposed by the Forge v2 API.
|
|
1846
|
+
*
|
|
1847
|
+
* There is no GET endpoint for services — availability is inferred from the
|
|
1848
|
+
* server object (see `listServices`).
|
|
1849
|
+
*/
|
|
1850
|
+
var RESTARTABLE_SERVICES = [
|
|
1851
|
+
"nginx",
|
|
1852
|
+
"php",
|
|
1853
|
+
"mysql",
|
|
1854
|
+
"postgres",
|
|
1855
|
+
"redis",
|
|
1856
|
+
"supervisor"
|
|
1857
|
+
];
|
|
1858
|
+
//#endregion
|
|
1859
|
+
//#region src/executors/services/restart.ts
|
|
1860
|
+
/**
|
|
1861
|
+
* Restart a service on a server.
|
|
1862
|
+
*
|
|
1863
|
+
* Maps the user verb "restart" to the API action "reboot". The v2 API restarts
|
|
1864
|
+
* a service via POST /servers/{server}/services/{service}/actions with body
|
|
1865
|
+
* `{ action: "reboot" }`. The php service additionally requires a `version`.
|
|
1866
|
+
*/
|
|
1867
|
+
async function restartService(options, ctx) {
|
|
1868
|
+
if (!RESTARTABLE_SERVICES.includes(options.service)) throw new Error(`Invalid service "${options.service}". Valid services: ${RESTARTABLE_SERVICES.join(", ")}.`);
|
|
1869
|
+
if (options.service === "php" && !options.version) throw new Error("The \"php\" service requires a version (e.g. \"php83\") to restart.");
|
|
1870
|
+
await request(ROUTES.services.action, ctx, {
|
|
1871
|
+
server_id: options.server_id,
|
|
1872
|
+
service: options.service
|
|
1873
|
+
}, { body: {
|
|
1874
|
+
action: "reboot",
|
|
1875
|
+
...options.version ? { version: options.version } : {}
|
|
1876
|
+
} });
|
|
1877
|
+
return { data: void 0 };
|
|
1878
|
+
}
|
|
1879
|
+
//#endregion
|
|
1771
1880
|
//#region src/executors/user/get.ts
|
|
1772
1881
|
/**
|
|
1773
1882
|
* Get the currently authenticated user.
|
|
@@ -1776,6 +1885,6 @@ async function getUser(_options, ctx) {
|
|
|
1776
1885
|
return { data: unwrapDocument(await request(ROUTES.user.get, ctx, {}, { schema: jsonApiDocumentSchema(UserAttributesSchema) })) };
|
|
1777
1886
|
}
|
|
1778
1887
|
//#endregion
|
|
1779
|
-
export { ACTIONS, RESOURCES, activateCertificate, createAuditLogger, createBackupConfig, createCertificate, createCommand, createDaemon, createDatabase, createDatabaseUser, createFirewallRule, createMonitor, createNginxTemplate, createRecipe, createRedirectRule, createScheduledJob, createSecurityRule, createServer, createSite, createSshKey, createTestExecutorContext, deleteBackupConfig, deleteCertificate, deleteDaemon, deleteDatabase, deleteDatabaseUser, deleteFirewallRule, deleteMonitor, deleteNginxTemplate, deleteRecipe, deleteRedirectRule, deleteScheduledJob, deleteSecurityRule, deleteServer, deleteSite, deleteSshKey, deploySite, deploySiteAndWait, getAuditLogPath, getBackupConfig, getCertificate, getCommand, getDaemon, getDatabase, getDatabaseUser, getDeploymentLog, getDeploymentScript, getEnv, getFirewallRule, getMonitor, getNginxConfig, getNginxTemplate, getRecipe, getRedirectRule, getScheduledJob, getSecurityRule, getServer, getSite, getSshKey, getUser, listBackupConfigs, listCommands, listDaemons, listDatabaseUsers, listDatabases, listDeployments, listFirewallRules, listMonitors, listNginxTemplates, listRecipes, listRedirectRules, listScheduledJobs, listSecurityRules, listServers, listSites, listSshKeys, matchByName, mockDocument, mockListDocument, mockResource, rebootServer, resolveServers, resolveSites, restartDaemon, runRecipe, sanitizeArgs, updateBackupConfig, updateDaemon, updateDatabaseUser, updateDeploymentScript, updateEnv, updateNginxConfig, updateNginxTemplate, updateRecipe, updateSecurityRule, updateSite };
|
|
1888
|
+
export { ACTIONS, RESOURCES, RESTARTABLE_SERVICES, activateCertificate, createAuditLogger, createBackupConfig, createCertificate, createCommand, createDaemon, createDatabase, createDatabaseUser, createFirewallRule, createMonitor, createNginxTemplate, createRecipe, createRedirectRule, createScheduledJob, createSecurityRule, createServer, createSite, createSshKey, createTestExecutorContext, deleteBackupConfig, deleteCertificate, deleteDaemon, deleteDatabase, deleteDatabaseUser, deleteFirewallRule, deleteMonitor, deleteNginxTemplate, deleteRecipe, deleteRedirectRule, deleteScheduledJob, deleteSecurityRule, deleteServer, deleteSite, deleteSshKey, deploySite, deploySiteAndWait, getAuditLogPath, getBackupConfig, getCertificate, getCommand, getDaemon, getDaemonLog, getDatabase, getDatabaseUser, getDeploymentLog, getDeploymentScript, getEnv, getFirewallRule, getMonitor, getNginxConfig, getNginxTemplate, getRecipe, getRedirectRule, getScheduledJob, getSecurityRule, getServer, getSite, getSshKey, getUser, listBackupConfigs, listCommands, listDaemons, listDatabaseUsers, listDatabases, listDeployments, listFirewallRules, listMonitors, listNginxTemplates, listRecipes, listRedirectRules, listScheduledJobs, listSecurityRules, listServers, listServices, listSites, listSshKeys, matchByName, mockDocument, mockListDocument, mockResource, rebootServer, resolveServers, resolveSites, restartDaemon, restartService, runRecipe, sanitizeArgs, updateBackupConfig, updateDaemon, updateDatabaseUser, updateDeploymentScript, updateEnv, updateNginxConfig, updateNginxTemplate, updateRecipe, updateSecurityRule, updateSite };
|
|
1780
1889
|
|
|
1781
1890
|
//# sourceMappingURL=index.js.map
|