threadforge 0.1.0
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/LICENSE +21 -0
- package/README.md +152 -0
- package/bin/forge.js +1050 -0
- package/bin/host-commands.js +344 -0
- package/bin/platform-commands.js +570 -0
- package/package.json +71 -0
- package/shared/auth.js +475 -0
- package/src/core/DirectMessageBus.js +364 -0
- package/src/core/EndpointResolver.js +247 -0
- package/src/core/ForgeContext.js +2227 -0
- package/src/core/ForgeHost.js +122 -0
- package/src/core/ForgePlatform.js +145 -0
- package/src/core/Ingress.js +768 -0
- package/src/core/Interceptors.js +420 -0
- package/src/core/MessageBus.js +310 -0
- package/src/core/Prometheus.js +305 -0
- package/src/core/RequestContext.js +413 -0
- package/src/core/RoutingStrategy.js +316 -0
- package/src/core/Supervisor.js +1306 -0
- package/src/core/ThreadAllocator.js +196 -0
- package/src/core/WorkerChannelManager.js +879 -0
- package/src/core/config.js +624 -0
- package/src/core/host-config.js +311 -0
- package/src/core/network-utils.js +166 -0
- package/src/core/platform-config.js +308 -0
- package/src/decorators/ServiceProxy.js +899 -0
- package/src/decorators/index.js +571 -0
- package/src/deploy/NginxGenerator.js +865 -0
- package/src/deploy/PlatformManifestGenerator.js +96 -0
- package/src/deploy/RouteManifestGenerator.js +112 -0
- package/src/deploy/index.js +984 -0
- package/src/frontend/FrontendDevLifecycle.js +65 -0
- package/src/frontend/FrontendPluginOrchestrator.js +187 -0
- package/src/frontend/SiteResolver.js +63 -0
- package/src/frontend/StaticMountRegistry.js +90 -0
- package/src/frontend/index.js +5 -0
- package/src/frontend/plugins/index.js +2 -0
- package/src/frontend/plugins/viteFrontend.js +79 -0
- package/src/frontend/types.js +35 -0
- package/src/index.js +56 -0
- package/src/internals.js +31 -0
- package/src/plugins/PluginManager.js +537 -0
- package/src/plugins/ScopedPostgres.js +192 -0
- package/src/plugins/ScopedRedis.js +142 -0
- package/src/plugins/index.js +1729 -0
- package/src/registry/ServiceRegistry.js +796 -0
- package/src/scaling/ScaleAdvisor.js +442 -0
- package/src/services/Service.js +195 -0
- package/src/services/worker-bootstrap.js +676 -0
- package/src/templates/auth-service.js +65 -0
- package/src/templates/identity-service.js +75 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Service Template
|
|
3
|
+
*
|
|
4
|
+
* Manages tokens and session validation for Platform Mode.
|
|
5
|
+
* All handlers are stubs — implement them for your deployment.
|
|
6
|
+
*
|
|
7
|
+
* Routes:
|
|
8
|
+
* POST /token - Issue a new token
|
|
9
|
+
* POST /token/validate - Validate a token
|
|
10
|
+
* POST /token/revoke - Revoke a token
|
|
11
|
+
* POST /token/refresh - Refresh a token
|
|
12
|
+
*
|
|
13
|
+
* Exposed (IPC):
|
|
14
|
+
* validateToken, issueToken, revokeToken
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { Service } from "../services/Service.js";
|
|
18
|
+
|
|
19
|
+
export default class AuthService extends Service {
|
|
20
|
+
static contract = {
|
|
21
|
+
expose: ["validateToken", "issueToken", "revokeToken"],
|
|
22
|
+
routes: [
|
|
23
|
+
{ method: "POST", path: "/token", handler: "issueTokenRoute" },
|
|
24
|
+
{ method: "POST", path: "/token/validate", handler: "validateTokenRoute" },
|
|
25
|
+
{ method: "POST", path: "/token/revoke", handler: "revokeTokenRoute" },
|
|
26
|
+
{ method: "POST", path: "/token/refresh", handler: "refreshTokenRoute" },
|
|
27
|
+
],
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
async onStart(ctx) {
|
|
31
|
+
ctx.logger.info("Auth service ready (stub — implement handlers)");
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// ── HTTP Route Handlers ──
|
|
35
|
+
|
|
36
|
+
async issueTokenRoute(_body) {
|
|
37
|
+
return { error: "Not implemented" };
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
async validateTokenRoute(_body) {
|
|
41
|
+
return { error: "Not implemented" };
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async revokeTokenRoute(_body) {
|
|
45
|
+
return { error: "Not implemented" };
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async refreshTokenRoute(_body) {
|
|
49
|
+
return { error: "Not implemented" };
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// ── IPC Exposed Methods ──
|
|
53
|
+
|
|
54
|
+
async validateToken(_token) {
|
|
55
|
+
return { error: "Not implemented" };
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async issueToken(_payload) {
|
|
59
|
+
return { error: "Not implemented" };
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async revokeToken(_token) {
|
|
63
|
+
return { error: "Not implemented" };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Service Template
|
|
3
|
+
*
|
|
4
|
+
* Manages users, registration, and membership for Platform Mode.
|
|
5
|
+
* All handlers are stubs — implement them for your deployment.
|
|
6
|
+
*
|
|
7
|
+
* Routes:
|
|
8
|
+
* POST /login - Authenticate a user
|
|
9
|
+
* POST /register - Register a new user
|
|
10
|
+
* GET /users/:id - Get user by ID
|
|
11
|
+
* GET /users - List users (admin)
|
|
12
|
+
* POST /users/:id/membership - Manage app membership
|
|
13
|
+
*
|
|
14
|
+
* Exposed (IPC):
|
|
15
|
+
* getUser, getUserByEmail, createUser, listMembers
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { Service } from "../services/Service.js";
|
|
19
|
+
|
|
20
|
+
export default class IdentityService extends Service {
|
|
21
|
+
static contract = {
|
|
22
|
+
expose: ["getUser", "getUserByEmail", "createUser", "listMembers"],
|
|
23
|
+
routes: [
|
|
24
|
+
{ method: "POST", path: "/login", handler: "login" },
|
|
25
|
+
{ method: "POST", path: "/register", handler: "register" },
|
|
26
|
+
{ method: "GET", path: "/users/:id", handler: "getUserRoute" },
|
|
27
|
+
{ method: "GET", path: "/users", handler: "listUsersRoute" },
|
|
28
|
+
{ method: "POST", path: "/users/:id/membership", handler: "manageMembership" },
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
async onStart(ctx) {
|
|
33
|
+
ctx.logger.info("Identity service ready (stub — implement handlers)");
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// ── HTTP Route Handlers ──
|
|
37
|
+
|
|
38
|
+
async login(_body) {
|
|
39
|
+
return { error: "Not implemented" };
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async register(_body) {
|
|
43
|
+
return { error: "Not implemented" };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async getUserRoute(_body, params) {
|
|
47
|
+
return this.getUser(params.id);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async listUsersRoute() {
|
|
51
|
+
return { error: "Not implemented" };
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async manageMembership(_body, params) {
|
|
55
|
+
return { error: "Not implemented", userId: params.id };
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// ── IPC Exposed Methods ──
|
|
59
|
+
|
|
60
|
+
async getUser(_userId) {
|
|
61
|
+
return { error: "Not implemented" };
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async getUserByEmail(_email) {
|
|
65
|
+
return { error: "Not implemented" };
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async createUser(_data) {
|
|
69
|
+
return { error: "Not implemented" };
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
async listMembers(_appId) {
|
|
73
|
+
return { error: "Not implemented" };
|
|
74
|
+
}
|
|
75
|
+
}
|