@launchdarkly/mcp-server 0.6.1 → 0.7.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.
Files changed (192) hide show
  1. package/FUNCTIONS.md +3 -3
  2. package/README.md +21 -13
  3. package/bin/mcp-server.js +1499 -339
  4. package/bin/mcp-server.js.map +41 -25
  5. package/dist/commonjs/funcs/auditLogListEntries.d.ts +21 -0
  6. package/dist/commonjs/funcs/auditLogListEntries.d.ts.map +1 -0
  7. package/dist/commonjs/funcs/auditLogListEntries.js +128 -0
  8. package/dist/commonjs/funcs/auditLogListEntries.js.map +1 -0
  9. package/dist/commonjs/lib/config.d.ts +2 -2
  10. package/dist/commonjs/lib/config.js +2 -2
  11. package/dist/commonjs/mcp-server/cli/start/command.d.ts.map +1 -1
  12. package/dist/commonjs/mcp-server/cli/start/command.js +12 -0
  13. package/dist/commonjs/mcp-server/cli/start/command.js.map +1 -1
  14. package/dist/commonjs/mcp-server/cli/start/impl.d.ts +2 -0
  15. package/dist/commonjs/mcp-server/cli/start/impl.d.ts.map +1 -1
  16. package/dist/commonjs/mcp-server/cli/start/impl.js +60 -20
  17. package/dist/commonjs/mcp-server/cli/start/impl.js.map +1 -1
  18. package/dist/commonjs/mcp-server/cli/start/sse-security.d.ts +5 -0
  19. package/dist/commonjs/mcp-server/cli/start/sse-security.d.ts.map +1 -0
  20. package/dist/commonjs/mcp-server/cli/start/sse-security.js +26 -0
  21. package/dist/commonjs/mcp-server/cli/start/sse-security.js.map +1 -0
  22. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  23. package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
  24. package/dist/commonjs/mcp-server/server.js +3 -1
  25. package/dist/commonjs/mcp-server/server.js.map +1 -1
  26. package/dist/commonjs/mcp-server/tools/auditLogListEntries.d.ts +8 -0
  27. package/dist/commonjs/mcp-server/tools/auditLogListEntries.d.ts.map +1 -0
  28. package/dist/commonjs/mcp-server/tools/auditLogListEntries.js +64 -0
  29. package/dist/commonjs/mcp-server/tools/auditLogListEntries.js.map +1 -0
  30. package/dist/commonjs/models/components/auditlogentrylistingrep.d.ts +93 -0
  31. package/dist/commonjs/models/components/auditlogentrylistingrep.d.ts.map +1 -0
  32. package/dist/commonjs/models/components/auditlogentrylistingrep.js +113 -0
  33. package/dist/commonjs/models/components/auditlogentrylistingrep.js.map +1 -0
  34. package/dist/commonjs/models/components/auditlogentrylistingrepcollection.d.ts +31 -0
  35. package/dist/commonjs/models/components/auditlogentrylistingrepcollection.d.ts.map +1 -0
  36. package/dist/commonjs/models/components/auditlogentrylistingrepcollection.js +71 -0
  37. package/dist/commonjs/models/components/auditlogentrylistingrepcollection.js.map +1 -0
  38. package/dist/commonjs/models/components/authorizedappdatarep.d.ts +42 -0
  39. package/dist/commonjs/models/components/authorizedappdatarep.d.ts.map +1 -0
  40. package/dist/commonjs/models/components/authorizedappdatarep.js +78 -0
  41. package/dist/commonjs/models/components/authorizedappdatarep.js.map +1 -0
  42. package/dist/commonjs/models/components/index.d.ts +9 -0
  43. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  44. package/dist/commonjs/models/components/index.js +9 -0
  45. package/dist/commonjs/models/components/index.js.map +1 -1
  46. package/dist/commonjs/models/components/memberdatarep.d.ts +42 -0
  47. package/dist/commonjs/models/components/memberdatarep.d.ts.map +1 -0
  48. package/dist/commonjs/models/components/memberdatarep.js +78 -0
  49. package/dist/commonjs/models/components/memberdatarep.js.map +1 -0
  50. package/dist/commonjs/models/components/parentresourcerep.d.ts +32 -0
  51. package/dist/commonjs/models/components/parentresourcerep.d.ts.map +1 -0
  52. package/dist/commonjs/models/components/parentresourcerep.js +72 -0
  53. package/dist/commonjs/models/components/parentresourcerep.js.map +1 -0
  54. package/dist/commonjs/models/components/resourceaccess.d.ts +19 -0
  55. package/dist/commonjs/models/components/resourceaccess.d.ts.map +1 -0
  56. package/dist/commonjs/models/components/resourceaccess.js +60 -0
  57. package/dist/commonjs/models/components/resourceaccess.js.map +1 -0
  58. package/dist/commonjs/models/components/subjectdatarep.d.ts +32 -0
  59. package/dist/commonjs/models/components/subjectdatarep.d.ts.map +1 -0
  60. package/dist/commonjs/models/components/subjectdatarep.js +72 -0
  61. package/dist/commonjs/models/components/subjectdatarep.js.map +1 -0
  62. package/dist/commonjs/models/components/targetresourcerep.d.ts +32 -0
  63. package/dist/commonjs/models/components/targetresourcerep.d.ts.map +1 -0
  64. package/dist/commonjs/models/components/targetresourcerep.js +72 -0
  65. package/dist/commonjs/models/components/targetresourcerep.js.map +1 -0
  66. package/dist/commonjs/models/components/tokensummary.d.ts +39 -0
  67. package/dist/commonjs/models/components/tokensummary.d.ts.map +1 -0
  68. package/dist/commonjs/models/components/tokensummary.js +78 -0
  69. package/dist/commonjs/models/components/tokensummary.js.map +1 -0
  70. package/dist/commonjs/models/operations/getauditlogentries.d.ts +40 -0
  71. package/dist/commonjs/models/operations/getauditlogentries.d.ts.map +1 -0
  72. package/dist/commonjs/models/operations/getauditlogentries.js +66 -0
  73. package/dist/commonjs/models/operations/getauditlogentries.js.map +1 -0
  74. package/dist/commonjs/models/operations/index.d.ts +1 -0
  75. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  76. package/dist/commonjs/models/operations/index.js +1 -0
  77. package/dist/commonjs/models/operations/index.js.map +1 -1
  78. package/dist/commonjs/sdk/auditlog.d.ts +15 -0
  79. package/dist/commonjs/sdk/auditlog.d.ts.map +1 -0
  80. package/dist/commonjs/sdk/auditlog.js +24 -0
  81. package/dist/commonjs/sdk/auditlog.js.map +1 -0
  82. package/dist/commonjs/sdk/sdk.d.ts +3 -0
  83. package/dist/commonjs/sdk/sdk.d.ts.map +1 -1
  84. package/dist/commonjs/sdk/sdk.js +4 -0
  85. package/dist/commonjs/sdk/sdk.js.map +1 -1
  86. package/dist/esm/funcs/auditLogListEntries.d.ts +21 -0
  87. package/dist/esm/funcs/auditLogListEntries.d.ts.map +1 -0
  88. package/dist/esm/funcs/auditLogListEntries.js +92 -0
  89. package/dist/esm/funcs/auditLogListEntries.js.map +1 -0
  90. package/dist/esm/lib/config.d.ts +2 -2
  91. package/dist/esm/lib/config.js +2 -2
  92. package/dist/esm/mcp-server/cli/start/command.d.ts.map +1 -1
  93. package/dist/esm/mcp-server/cli/start/command.js +12 -0
  94. package/dist/esm/mcp-server/cli/start/command.js.map +1 -1
  95. package/dist/esm/mcp-server/cli/start/impl.d.ts +2 -0
  96. package/dist/esm/mcp-server/cli/start/impl.d.ts.map +1 -1
  97. package/dist/esm/mcp-server/cli/start/impl.js +60 -20
  98. package/dist/esm/mcp-server/cli/start/impl.js.map +1 -1
  99. package/dist/esm/mcp-server/cli/start/sse-security.d.ts +5 -0
  100. package/dist/esm/mcp-server/cli/start/sse-security.d.ts.map +1 -0
  101. package/dist/esm/mcp-server/cli/start/sse-security.js +21 -0
  102. package/dist/esm/mcp-server/cli/start/sse-security.js.map +1 -0
  103. package/dist/esm/mcp-server/mcp-server.js +1 -1
  104. package/dist/esm/mcp-server/server.d.ts.map +1 -1
  105. package/dist/esm/mcp-server/server.js +3 -1
  106. package/dist/esm/mcp-server/server.js.map +1 -1
  107. package/dist/esm/mcp-server/tools/auditLogListEntries.d.ts +8 -0
  108. package/dist/esm/mcp-server/tools/auditLogListEntries.d.ts.map +1 -0
  109. package/dist/esm/mcp-server/tools/auditLogListEntries.js +28 -0
  110. package/dist/esm/mcp-server/tools/auditLogListEntries.js.map +1 -0
  111. package/dist/esm/models/components/auditlogentrylistingrep.d.ts +93 -0
  112. package/dist/esm/models/components/auditlogentrylistingrep.d.ts.map +1 -0
  113. package/dist/esm/models/components/auditlogentrylistingrep.js +75 -0
  114. package/dist/esm/models/components/auditlogentrylistingrep.js.map +1 -0
  115. package/dist/esm/models/components/auditlogentrylistingrepcollection.d.ts +31 -0
  116. package/dist/esm/models/components/auditlogentrylistingrepcollection.d.ts.map +1 -0
  117. package/dist/esm/models/components/auditlogentrylistingrepcollection.js +33 -0
  118. package/dist/esm/models/components/auditlogentrylistingrepcollection.js.map +1 -0
  119. package/dist/esm/models/components/authorizedappdatarep.d.ts +42 -0
  120. package/dist/esm/models/components/authorizedappdatarep.d.ts.map +1 -0
  121. package/dist/esm/models/components/authorizedappdatarep.js +40 -0
  122. package/dist/esm/models/components/authorizedappdatarep.js.map +1 -0
  123. package/dist/esm/models/components/index.d.ts +9 -0
  124. package/dist/esm/models/components/index.d.ts.map +1 -1
  125. package/dist/esm/models/components/index.js +9 -0
  126. package/dist/esm/models/components/index.js.map +1 -1
  127. package/dist/esm/models/components/memberdatarep.d.ts +42 -0
  128. package/dist/esm/models/components/memberdatarep.d.ts.map +1 -0
  129. package/dist/esm/models/components/memberdatarep.js +40 -0
  130. package/dist/esm/models/components/memberdatarep.js.map +1 -0
  131. package/dist/esm/models/components/parentresourcerep.d.ts +32 -0
  132. package/dist/esm/models/components/parentresourcerep.d.ts.map +1 -0
  133. package/dist/esm/models/components/parentresourcerep.js +34 -0
  134. package/dist/esm/models/components/parentresourcerep.js.map +1 -0
  135. package/dist/esm/models/components/resourceaccess.d.ts +19 -0
  136. package/dist/esm/models/components/resourceaccess.d.ts.map +1 -0
  137. package/dist/esm/models/components/resourceaccess.js +22 -0
  138. package/dist/esm/models/components/resourceaccess.js.map +1 -0
  139. package/dist/esm/models/components/subjectdatarep.d.ts +32 -0
  140. package/dist/esm/models/components/subjectdatarep.d.ts.map +1 -0
  141. package/dist/esm/models/components/subjectdatarep.js +34 -0
  142. package/dist/esm/models/components/subjectdatarep.js.map +1 -0
  143. package/dist/esm/models/components/targetresourcerep.d.ts +32 -0
  144. package/dist/esm/models/components/targetresourcerep.d.ts.map +1 -0
  145. package/dist/esm/models/components/targetresourcerep.js +34 -0
  146. package/dist/esm/models/components/targetresourcerep.js.map +1 -0
  147. package/dist/esm/models/components/tokensummary.d.ts +39 -0
  148. package/dist/esm/models/components/tokensummary.d.ts.map +1 -0
  149. package/dist/esm/models/components/tokensummary.js +40 -0
  150. package/dist/esm/models/components/tokensummary.js.map +1 -0
  151. package/dist/esm/models/operations/getauditlogentries.d.ts +40 -0
  152. package/dist/esm/models/operations/getauditlogentries.d.ts.map +1 -0
  153. package/dist/esm/models/operations/getauditlogentries.js +28 -0
  154. package/dist/esm/models/operations/getauditlogentries.js.map +1 -0
  155. package/dist/esm/models/operations/index.d.ts +1 -0
  156. package/dist/esm/models/operations/index.d.ts.map +1 -1
  157. package/dist/esm/models/operations/index.js +1 -0
  158. package/dist/esm/models/operations/index.js.map +1 -1
  159. package/dist/esm/sdk/auditlog.d.ts +15 -0
  160. package/dist/esm/sdk/auditlog.d.ts.map +1 -0
  161. package/dist/esm/sdk/auditlog.js +20 -0
  162. package/dist/esm/sdk/auditlog.js.map +1 -0
  163. package/dist/esm/sdk/sdk.d.ts +3 -0
  164. package/dist/esm/sdk/sdk.d.ts.map +1 -1
  165. package/dist/esm/sdk/sdk.js +4 -0
  166. package/dist/esm/sdk/sdk.js.map +1 -1
  167. package/examples/{codeReferencesListRepositories.example.ts → auditLogListEntries.example.ts} +2 -2
  168. package/jsr.json +1 -1
  169. package/package.json +2 -1
  170. package/src/funcs/auditLogListEntries.ts +192 -0
  171. package/src/lib/config.ts +2 -2
  172. package/src/mcp-server/cli/start/command.ts +14 -0
  173. package/src/mcp-server/cli/start/impl.ts +69 -20
  174. package/src/mcp-server/cli/start/sse-security.ts +31 -0
  175. package/src/mcp-server/mcp-server.ts +1 -1
  176. package/src/mcp-server/server.ts +3 -1
  177. package/src/mcp-server/tools/auditLogListEntries.ts +38 -0
  178. package/src/models/components/auditlogentrylistingrep.ts +210 -0
  179. package/src/models/components/auditlogentrylistingrepcollection.ts +84 -0
  180. package/src/models/components/authorizedappdatarep.ts +96 -0
  181. package/src/models/components/index.ts +9 -0
  182. package/src/models/components/memberdatarep.ts +92 -0
  183. package/src/models/components/parentresourcerep.ts +80 -0
  184. package/src/models/components/resourceaccess.ts +51 -0
  185. package/src/models/components/subjectdatarep.ts +76 -0
  186. package/src/models/components/targetresourcerep.ts +80 -0
  187. package/src/models/components/tokensummary.ts +89 -0
  188. package/src/models/operations/getauditlogentries.ts +82 -0
  189. package/src/models/operations/index.ts +1 -0
  190. package/src/sdk/auditlog.ts +30 -0
  191. package/src/sdk/sdk.ts +6 -0
  192. package/test/sse-security.test.mjs +84 -0
@@ -0,0 +1,76 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
+ import {
11
+ Link,
12
+ Link$inboundSchema,
13
+ Link$Outbound,
14
+ Link$outboundSchema,
15
+ } from "./link.js";
16
+
17
+ export type SubjectDataRep = {
18
+ links?: { [k: string]: Link } | undefined;
19
+ /**
20
+ * The subject's name
21
+ */
22
+ name?: string | undefined;
23
+ /**
24
+ * The subject's avatar
25
+ */
26
+ avatarUrl?: string | undefined;
27
+ };
28
+
29
+ /** @internal */
30
+ export const SubjectDataRep$inboundSchema: z.ZodType<
31
+ SubjectDataRep,
32
+ z.ZodTypeDef,
33
+ unknown
34
+ > = z.object({
35
+ _links: z.record(Link$inboundSchema).optional(),
36
+ name: z.string().optional(),
37
+ avatarUrl: z.string().optional(),
38
+ }).transform((v) => {
39
+ return remap$(v, {
40
+ "_links": "links",
41
+ });
42
+ });
43
+ /** @internal */
44
+ export type SubjectDataRep$Outbound = {
45
+ _links?: { [k: string]: Link$Outbound } | undefined;
46
+ name?: string | undefined;
47
+ avatarUrl?: string | undefined;
48
+ };
49
+
50
+ /** @internal */
51
+ export const SubjectDataRep$outboundSchema: z.ZodType<
52
+ SubjectDataRep$Outbound,
53
+ z.ZodTypeDef,
54
+ SubjectDataRep
55
+ > = z.object({
56
+ links: z.record(Link$outboundSchema).optional(),
57
+ name: z.string().optional(),
58
+ avatarUrl: z.string().optional(),
59
+ }).transform((v) => {
60
+ return remap$(v, {
61
+ links: "_links",
62
+ });
63
+ });
64
+
65
+ export function subjectDataRepToJSON(subjectDataRep: SubjectDataRep): string {
66
+ return JSON.stringify(SubjectDataRep$outboundSchema.parse(subjectDataRep));
67
+ }
68
+ export function subjectDataRepFromJSON(
69
+ jsonString: string,
70
+ ): SafeParseResult<SubjectDataRep, SDKValidationError> {
71
+ return safeParse(
72
+ jsonString,
73
+ (x) => SubjectDataRep$inboundSchema.parse(JSON.parse(x)),
74
+ `Failed to parse 'SubjectDataRep' from JSON`,
75
+ );
76
+ }
@@ -0,0 +1,80 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
+ import {
11
+ Link,
12
+ Link$inboundSchema,
13
+ Link$Outbound,
14
+ Link$outboundSchema,
15
+ } from "./link.js";
16
+
17
+ export type TargetResourceRep = {
18
+ links?: { [k: string]: Link } | undefined;
19
+ /**
20
+ * The name of the resource
21
+ */
22
+ name?: string | undefined;
23
+ /**
24
+ * The resource specifier
25
+ */
26
+ resources?: Array<string> | undefined;
27
+ };
28
+
29
+ /** @internal */
30
+ export const TargetResourceRep$inboundSchema: z.ZodType<
31
+ TargetResourceRep,
32
+ z.ZodTypeDef,
33
+ unknown
34
+ > = z.object({
35
+ _links: z.record(Link$inboundSchema).optional(),
36
+ name: z.string().optional(),
37
+ resources: z.array(z.string()).optional(),
38
+ }).transform((v) => {
39
+ return remap$(v, {
40
+ "_links": "links",
41
+ });
42
+ });
43
+ /** @internal */
44
+ export type TargetResourceRep$Outbound = {
45
+ _links?: { [k: string]: Link$Outbound } | undefined;
46
+ name?: string | undefined;
47
+ resources?: Array<string> | undefined;
48
+ };
49
+
50
+ /** @internal */
51
+ export const TargetResourceRep$outboundSchema: z.ZodType<
52
+ TargetResourceRep$Outbound,
53
+ z.ZodTypeDef,
54
+ TargetResourceRep
55
+ > = z.object({
56
+ links: z.record(Link$outboundSchema).optional(),
57
+ name: z.string().optional(),
58
+ resources: z.array(z.string()).optional(),
59
+ }).transform((v) => {
60
+ return remap$(v, {
61
+ links: "_links",
62
+ });
63
+ });
64
+
65
+ export function targetResourceRepToJSON(
66
+ targetResourceRep: TargetResourceRep,
67
+ ): string {
68
+ return JSON.stringify(
69
+ TargetResourceRep$outboundSchema.parse(targetResourceRep),
70
+ );
71
+ }
72
+ export function targetResourceRepFromJSON(
73
+ jsonString: string,
74
+ ): SafeParseResult<TargetResourceRep, SDKValidationError> {
75
+ return safeParse(
76
+ jsonString,
77
+ (x) => TargetResourceRep$inboundSchema.parse(JSON.parse(x)),
78
+ `Failed to parse 'TargetResourceRep' from JSON`,
79
+ );
80
+ }
@@ -0,0 +1,89 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
+ import {
11
+ Link,
12
+ Link$inboundSchema,
13
+ Link$Outbound,
14
+ Link$outboundSchema,
15
+ } from "./link.js";
16
+
17
+ export type TokenSummary = {
18
+ links?: { [k: string]: Link } | undefined;
19
+ id?: string | undefined;
20
+ /**
21
+ * The name of the token
22
+ */
23
+ name?: string | undefined;
24
+ /**
25
+ * The last few characters of the token
26
+ */
27
+ ending?: string | undefined;
28
+ /**
29
+ * Whether this is a service token
30
+ */
31
+ serviceToken?: boolean | undefined;
32
+ };
33
+
34
+ /** @internal */
35
+ export const TokenSummary$inboundSchema: z.ZodType<
36
+ TokenSummary,
37
+ z.ZodTypeDef,
38
+ unknown
39
+ > = z.object({
40
+ _links: z.record(Link$inboundSchema).optional(),
41
+ _id: z.string().optional(),
42
+ name: z.string().optional(),
43
+ ending: z.string().optional(),
44
+ serviceToken: z.boolean().optional(),
45
+ }).transform((v) => {
46
+ return remap$(v, {
47
+ "_links": "links",
48
+ "_id": "id",
49
+ });
50
+ });
51
+ /** @internal */
52
+ export type TokenSummary$Outbound = {
53
+ _links?: { [k: string]: Link$Outbound } | undefined;
54
+ _id?: string | undefined;
55
+ name?: string | undefined;
56
+ ending?: string | undefined;
57
+ serviceToken?: boolean | undefined;
58
+ };
59
+
60
+ /** @internal */
61
+ export const TokenSummary$outboundSchema: z.ZodType<
62
+ TokenSummary$Outbound,
63
+ z.ZodTypeDef,
64
+ TokenSummary
65
+ > = z.object({
66
+ links: z.record(Link$outboundSchema).optional(),
67
+ id: z.string().optional(),
68
+ name: z.string().optional(),
69
+ ending: z.string().optional(),
70
+ serviceToken: z.boolean().optional(),
71
+ }).transform((v) => {
72
+ return remap$(v, {
73
+ links: "_links",
74
+ id: "_id",
75
+ });
76
+ });
77
+
78
+ export function tokenSummaryToJSON(tokenSummary: TokenSummary): string {
79
+ return JSON.stringify(TokenSummary$outboundSchema.parse(tokenSummary));
80
+ }
81
+ export function tokenSummaryFromJSON(
82
+ jsonString: string,
83
+ ): SafeParseResult<TokenSummary, SDKValidationError> {
84
+ return safeParse(
85
+ jsonString,
86
+ (x) => TokenSummary$inboundSchema.parse(JSON.parse(x)),
87
+ `Failed to parse 'TokenSummary' from JSON`,
88
+ );
89
+ }
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { safeParse } from "../../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../../types/fp.js";
8
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
9
+
10
+ export type GetAuditLogEntriesRequest = {
11
+ /**
12
+ * A timestamp filter, expressed as a Unix epoch time in milliseconds. All entries this returns occurred before the timestamp.
13
+ */
14
+ before?: number | undefined;
15
+ /**
16
+ * A timestamp filter, expressed as a Unix epoch time in milliseconds. All entries this returns occurred after the timestamp.
17
+ */
18
+ after?: number | undefined;
19
+ /**
20
+ * Text to search for. You can search for the full or partial name of the resource.
21
+ */
22
+ q?: string | undefined;
23
+ /**
24
+ * A limit on the number of audit log entries that return. Set between 1 and 20. The default is 10.
25
+ */
26
+ limit?: number | undefined;
27
+ /**
28
+ * A resource specifier that lets you filter audit log listings by resource
29
+ */
30
+ spec?: string | undefined;
31
+ };
32
+
33
+ /** @internal */
34
+ export const GetAuditLogEntriesRequest$inboundSchema: z.ZodType<
35
+ GetAuditLogEntriesRequest,
36
+ z.ZodTypeDef,
37
+ unknown
38
+ > = z.object({
39
+ before: z.number().int().optional(),
40
+ after: z.number().int().optional(),
41
+ q: z.string().optional(),
42
+ limit: z.number().int().optional(),
43
+ spec: z.string().optional(),
44
+ });
45
+ /** @internal */
46
+ export type GetAuditLogEntriesRequest$Outbound = {
47
+ before?: number | undefined;
48
+ after?: number | undefined;
49
+ q?: string | undefined;
50
+ limit?: number | undefined;
51
+ spec?: string | undefined;
52
+ };
53
+
54
+ /** @internal */
55
+ export const GetAuditLogEntriesRequest$outboundSchema: z.ZodType<
56
+ GetAuditLogEntriesRequest$Outbound,
57
+ z.ZodTypeDef,
58
+ GetAuditLogEntriesRequest
59
+ > = z.object({
60
+ before: z.number().int().optional(),
61
+ after: z.number().int().optional(),
62
+ q: z.string().optional(),
63
+ limit: z.number().int().optional(),
64
+ spec: z.string().optional(),
65
+ });
66
+
67
+ export function getAuditLogEntriesRequestToJSON(
68
+ getAuditLogEntriesRequest: GetAuditLogEntriesRequest,
69
+ ): string {
70
+ return JSON.stringify(
71
+ GetAuditLogEntriesRequest$outboundSchema.parse(getAuditLogEntriesRequest),
72
+ );
73
+ }
74
+ export function getAuditLogEntriesRequestFromJSON(
75
+ jsonString: string,
76
+ ): SafeParseResult<GetAuditLogEntriesRequest, SDKValidationError> {
77
+ return safeParse(
78
+ jsonString,
79
+ (x) => GetAuditLogEntriesRequest$inboundSchema.parse(JSON.parse(x)),
80
+ `Failed to parse 'GetAuditLogEntriesRequest' from JSON`,
81
+ );
82
+ }
@@ -9,6 +9,7 @@ export * from "./getaiconfig.js";
9
9
  export * from "./getaiconfigs.js";
10
10
  export * from "./getaiconfigtargeting.js";
11
11
  export * from "./getaiconfigvariation.js";
12
+ export * from "./getauditlogentries.js";
12
13
  export * from "./getenvironmentsbyproject.js";
13
14
  export * from "./getfeatureflag.js";
14
15
  export * from "./getfeatureflags.js";
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { auditLogListEntries } from "../funcs/auditLogListEntries.js";
6
+ import { ClientSDK, RequestOptions } from "../lib/sdks.js";
7
+ import * as components from "../models/components/index.js";
8
+ import * as operations from "../models/operations/index.js";
9
+ import { unwrapAsync } from "../types/fp.js";
10
+
11
+ export class AuditLog extends ClientSDK {
12
+ /**
13
+ * List audit log entries
14
+ *
15
+ * @remarks
16
+ * Get a list of all audit log entries. The query parameters let you restrict the results that return by date ranges, resource specifiers, or a full-text search query.
17
+ *
18
+ * LaunchDarkly uses a resource specifier syntax to name resources or collections of resources. To learn more, read [About the resource specifier syntax](https://launchdarkly.com/docs/home/account/role-resources#about-the-resource-specifier-syntax).
19
+ */
20
+ async listEntries(
21
+ request: operations.GetAuditLogEntriesRequest,
22
+ options?: RequestOptions,
23
+ ): Promise<components.AuditLogEntryListingRepCollection> {
24
+ return unwrapAsync(auditLogListEntries(
25
+ this,
26
+ request,
27
+ options,
28
+ ));
29
+ }
30
+ }
package/src/sdk/sdk.ts CHANGED
@@ -4,11 +4,17 @@
4
4
 
5
5
  import { ClientSDK } from "../lib/sdks.js";
6
6
  import { AiConfigs } from "./aiconfigs.js";
7
+ import { AuditLog } from "./auditlog.js";
7
8
  import { CodeReferences } from "./codereferences.js";
8
9
  import { Environments } from "./environments.js";
9
10
  import { FeatureFlags } from "./featureflags.js";
10
11
 
11
12
  export class LaunchDarkly extends ClientSDK {
13
+ private _auditLog?: AuditLog;
14
+ get auditLog(): AuditLog {
15
+ return (this._auditLog ??= new AuditLog(this._options));
16
+ }
17
+
12
18
  private _codeReferences?: CodeReferences;
13
19
  get codeReferences(): CodeReferences {
14
20
  return (this._codeReferences ??= new CodeReferences(this._options));
@@ -0,0 +1,84 @@
1
+ import assert from "node:assert/strict";
2
+ import process from "node:process";
3
+ import { after, before, describe, test } from "node:test";
4
+ import express from "express";
5
+ import { main } from "../dist/esm/mcp-server/cli/start/impl.js";
6
+ import {
7
+ assertSafeSSEBind,
8
+ requireBearerToken,
9
+ } from "../dist/esm/mcp-server/cli/start/sse-security.js";
10
+
11
+ const TOKEN = "0123456789abcdef";
12
+
13
+ describe("assertSafeSSEBind", () => {
14
+ for (const host of ["0.0.0.0", "::", "192.168.1.10", "example.com"]) {
15
+ test(`refuses ${host} without a token`, () => {
16
+ assert.throws(
17
+ () => assertSafeSSEBind(host, undefined),
18
+ /--auth-token is required/,
19
+ );
20
+ });
21
+
22
+ test(`allows ${host} with a token`, () => {
23
+ assert.doesNotThrow(() => assertSafeSSEBind(host, TOKEN));
24
+ });
25
+ }
26
+
27
+ for (const host of ["127.0.0.1", "localhost", "::1"]) {
28
+ test(`allows loopback ${host} without a token`, () => {
29
+ assert.doesNotThrow(() => assertSafeSSEBind(host, undefined));
30
+ });
31
+ }
32
+ });
33
+
34
+ test("start --transport sse refuses a non-loopback host without a token", async () => {
35
+ await assert.rejects(
36
+ main.call({ process }, {
37
+ transport: "sse",
38
+ host: "0.0.0.0",
39
+ port: 0,
40
+ "log-level": "error",
41
+ }),
42
+ /--auth-token is required/,
43
+ );
44
+ });
45
+
46
+ describe("requireBearerToken", () => {
47
+ let server;
48
+ let url;
49
+
50
+ before(async () => {
51
+ const app = express();
52
+ app.use(requireBearerToken(TOKEN));
53
+ app.get("/", (_req, res) => res.send("ok"));
54
+ await new Promise((resolve) => {
55
+ server = app.listen(0, "127.0.0.1", resolve);
56
+ });
57
+ url = `http://127.0.0.1:${server.address().port}/`;
58
+ });
59
+
60
+ after(() => new Promise((resolve) => server.close(resolve)));
61
+
62
+ const cases = [
63
+ ["a missing header", undefined],
64
+ ["a wrong token of the same length", "Bearer fedcba9876543210"],
65
+ ["a token prefix", `Bearer ${TOKEN.slice(0, -1)}`],
66
+ ["the token without the Bearer scheme", TOKEN],
67
+ ];
68
+ for (const [name, header] of cases) {
69
+ test(`returns 401 for ${name}`, async () => {
70
+ const res = await fetch(url, {
71
+ headers: header === undefined ? {} : { Authorization: header },
72
+ });
73
+ assert.equal(res.status, 401);
74
+ });
75
+ }
76
+
77
+ test("passes the request through for the right token", async () => {
78
+ const res = await fetch(url, {
79
+ headers: { Authorization: `Bearer ${TOKEN}` },
80
+ });
81
+ assert.equal(res.status, 200);
82
+ assert.equal(await res.text(), "ok");
83
+ });
84
+ });