docs: implement Phase 2 - API documentation with TypeDoc
Set up TypeDoc to auto-generate comprehensive API reference documentation from TypeScript source code. Changes: - Installed typedoc and typedoc-plugin-markdown (v0.2.0 plugins) - Created typedoc.json configuration with 9 entry points - Added docs:api and docs:watch npm scripts - Fixed test file imports (validateNamespace → isValidNamespace) - Updated tsconfig.json to exclude test files from compilation - Generated markdown API documentation in docs/api-reference/generated/ Generated API documentation: - 9 modules documented (lib/, hooks/, types/) - lib/crypto - 14 encryption/certificate functions - lib/controller - 5 Kubernetes API functions - lib/validators - 6 validation functions - lib/retry - Exponential backoff utilities - lib/rbac - RBAC permission checking - types - Result types, branded types, interfaces - hooks/useSealedSecretEncryption - Encryption React hook - hooks/usePermissions - RBAC React hooks - hooks/useControllerHealth - Health monitoring hook Benefits: - Auto-generated from TypeScript source (stays in sync) - Markdown format for easy integration - Type signatures and JSDoc included - Function parameters and return types documented - Links between related types and functions Phase 2 deliverables (2-3 days estimated, completed in 1 session): ✅ TypeDoc installed and configured ✅ Entry points identified for all core modules ✅ API documentation generated (9 modules, 40+ functions) ✅ npm scripts added for docs generation ✅ Test files excluded from documentation Next: Phase 3 - User tutorials and guides Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
[**Headlamp Sealed Secrets API v0.2.0**](../../README.md)
|
||||
|
||||
***
|
||||
|
||||
[Headlamp Sealed Secrets API](../../README.md) / lib/rbac
|
||||
|
||||
# lib/rbac
|
||||
|
||||
## Interfaces
|
||||
|
||||
- [ResourcePermissions](interfaces/ResourcePermissions.md)
|
||||
|
||||
## Functions
|
||||
|
||||
- [checkSealedSecretPermissions](functions/checkSealedSecretPermissions.md)
|
||||
- [canDecryptSecrets](functions/canDecryptSecrets.md)
|
||||
- [canViewSealingKeys](functions/canViewSealingKeys.md)
|
||||
- [checkMultiNamespacePermissions](functions/checkMultiNamespacePermissions.md)
|
||||
@@ -0,0 +1,27 @@
|
||||
[**Headlamp Sealed Secrets API v0.2.0**](../../../README.md)
|
||||
|
||||
***
|
||||
|
||||
[Headlamp Sealed Secrets API](../../../README.md) / [lib/rbac](../README.md) / canDecryptSecrets
|
||||
|
||||
# Function: canDecryptSecrets()
|
||||
|
||||
> **canDecryptSecrets**(`namespace`): `Promise`\<`boolean`\>
|
||||
|
||||
Defined in: [src/lib/rbac.ts:65](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L65)
|
||||
|
||||
Check if user can decrypt secrets (requires get permission on Secrets)
|
||||
|
||||
## Parameters
|
||||
|
||||
### namespace
|
||||
|
||||
`string`
|
||||
|
||||
Namespace to check Secret permissions in
|
||||
|
||||
## Returns
|
||||
|
||||
`Promise`\<`boolean`\>
|
||||
|
||||
true if user has permission to get Secrets
|
||||
@@ -0,0 +1,27 @@
|
||||
[**Headlamp Sealed Secrets API v0.2.0**](../../../README.md)
|
||||
|
||||
***
|
||||
|
||||
[Headlamp Sealed Secrets API](../../../README.md) / [lib/rbac](../README.md) / canViewSealingKeys
|
||||
|
||||
# Function: canViewSealingKeys()
|
||||
|
||||
> **canViewSealingKeys**(`controllerNamespace`): `Promise`\<`boolean`\>
|
||||
|
||||
Defined in: [src/lib/rbac.ts:79](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L79)
|
||||
|
||||
Check if user can view sealing keys (requires get permission on Secrets in controller namespace)
|
||||
|
||||
## Parameters
|
||||
|
||||
### controllerNamespace
|
||||
|
||||
`string`
|
||||
|
||||
Namespace where sealed-secrets controller is running
|
||||
|
||||
## Returns
|
||||
|
||||
`Promise`\<`boolean`\>
|
||||
|
||||
true if user has permission to get Secrets in controller namespace
|
||||
@@ -0,0 +1,30 @@
|
||||
[**Headlamp Sealed Secrets API v0.2.0**](../../../README.md)
|
||||
|
||||
***
|
||||
|
||||
[Headlamp Sealed Secrets API](../../../README.md) / [lib/rbac](../README.md) / checkMultiNamespacePermissions
|
||||
|
||||
# Function: checkMultiNamespacePermissions()
|
||||
|
||||
> **checkMultiNamespacePermissions**(`namespaces`): [`AsyncResult`](../../../types/type-aliases/AsyncResult.md)\<`Record`\<`string`, [`ResourcePermissions`](../interfaces/ResourcePermissions.md)\>, `string`\>
|
||||
|
||||
Defined in: [src/lib/rbac.ts:143](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L143)
|
||||
|
||||
Check permissions for multiple namespaces
|
||||
|
||||
Useful for multi-namespace views to determine which namespaces the user
|
||||
can interact with.
|
||||
|
||||
## Parameters
|
||||
|
||||
### namespaces
|
||||
|
||||
`string`[]
|
||||
|
||||
Array of namespace names to check
|
||||
|
||||
## Returns
|
||||
|
||||
[`AsyncResult`](../../../types/type-aliases/AsyncResult.md)\<`Record`\<`string`, [`ResourcePermissions`](../interfaces/ResourcePermissions.md)\>, `string`\>
|
||||
|
||||
Map of namespace to permissions
|
||||
@@ -0,0 +1,30 @@
|
||||
[**Headlamp Sealed Secrets API v0.2.0**](../../../README.md)
|
||||
|
||||
***
|
||||
|
||||
[Headlamp Sealed Secrets API](../../../README.md) / [lib/rbac](../README.md) / checkSealedSecretPermissions
|
||||
|
||||
# Function: checkSealedSecretPermissions()
|
||||
|
||||
> **checkSealedSecretPermissions**(`namespace?`): [`AsyncResult`](../../../types/type-aliases/AsyncResult.md)\<[`ResourcePermissions`](../interfaces/ResourcePermissions.md), `string`\>
|
||||
|
||||
Defined in: [src/lib/rbac.ts:35](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L35)
|
||||
|
||||
Check user permissions for SealedSecrets in a namespace
|
||||
|
||||
Uses Kubernetes SelfSubjectAccessReview API to verify what the current
|
||||
user is allowed to do with SealedSecret resources.
|
||||
|
||||
## Parameters
|
||||
|
||||
### namespace?
|
||||
|
||||
`string`
|
||||
|
||||
Optional namespace to check (cluster-wide if omitted)
|
||||
|
||||
## Returns
|
||||
|
||||
[`AsyncResult`](../../../types/type-aliases/AsyncResult.md)\<[`ResourcePermissions`](../interfaces/ResourcePermissions.md), `string`\>
|
||||
|
||||
Result containing permission flags or error message
|
||||
@@ -0,0 +1,61 @@
|
||||
[**Headlamp Sealed Secrets API v0.2.0**](../../../README.md)
|
||||
|
||||
***
|
||||
|
||||
[Headlamp Sealed Secrets API](../../../README.md) / [lib/rbac](../README.md) / ResourcePermissions
|
||||
|
||||
# Interface: ResourcePermissions
|
||||
|
||||
Defined in: [src/lib/rbac.ts:13](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L13)
|
||||
|
||||
Resource permissions for a specific resource type
|
||||
|
||||
## Properties
|
||||
|
||||
### canCreate
|
||||
|
||||
> **canCreate**: `boolean`
|
||||
|
||||
Defined in: [src/lib/rbac.ts:15](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L15)
|
||||
|
||||
Can create new resources
|
||||
|
||||
***
|
||||
|
||||
### canRead
|
||||
|
||||
> **canRead**: `boolean`
|
||||
|
||||
Defined in: [src/lib/rbac.ts:17](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L17)
|
||||
|
||||
Can read/get individual resources
|
||||
|
||||
***
|
||||
|
||||
### canUpdate
|
||||
|
||||
> **canUpdate**: `boolean`
|
||||
|
||||
Defined in: [src/lib/rbac.ts:19](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L19)
|
||||
|
||||
Can update/patch existing resources
|
||||
|
||||
***
|
||||
|
||||
### canDelete
|
||||
|
||||
> **canDelete**: `boolean`
|
||||
|
||||
Defined in: [src/lib/rbac.ts:21](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L21)
|
||||
|
||||
Can delete resources
|
||||
|
||||
***
|
||||
|
||||
### canList
|
||||
|
||||
> **canList**: `boolean`
|
||||
|
||||
Defined in: [src/lib/rbac.ts:23](https://github.com/cpfarhood/headlamp-sealed-secrets-plugin/blob/bdf19cd3bf5a2d679b7ba949108fe9df1843c5f4/headlamp-sealed-secrets/src/lib/rbac.ts#L23)
|
||||
|
||||
Can list resources
|
||||
Reference in New Issue
Block a user