@robinmordasiewicz/f5xc-auth 1.4.0 → 1.5.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 +1 -1
- package/README.md +32 -107
- package/package.json +11 -2
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,131 +1,56 @@
|
|
|
1
|
-
#
|
|
1
|
+
# f5xc-auth
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@robinmordasiewicz/f5xc-auth)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
Authentication library for F5 Distributed Cloud with XDG-compliant profile management.
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
### 1. [@robinmordasiewicz/f5xc-auth](./packages/f5xc-auth/)
|
|
10
|
-
|
|
11
|
-
Shared authentication library for F5 Distributed Cloud MCP servers. Provides XDG-compliant profile management and credential handling.
|
|
12
|
-
|
|
13
|
-
- **NPM**: `@robinmordasiewicz/f5xc-auth`
|
|
14
|
-
- **Features**: API token, P12 certificate, cert/key authentication, profile management, URL normalization
|
|
15
|
-
- **Directory**: `packages/f5xc-auth/`
|
|
16
|
-
|
|
17
|
-
### 2. [@robinmordasiewicz/f5xc-api-mcp](./packages/f5xc-api-mcp/)
|
|
18
|
-
|
|
19
|
-
MCP (Model Context Protocol) server that exposes F5 Distributed Cloud APIs to AI assistants. Enables natural language interaction with F5XC infrastructure through Claude, VS Code, and other MCP-compatible tools.
|
|
20
|
-
|
|
21
|
-
- **NPM**: `@robinmordasiewicz/f5xc-api-mcp`
|
|
22
|
-
- **Features**: 1500+ API tools, domain-based documentation, dual-mode operation (docs + execution), curl examples
|
|
23
|
-
- **Directory**: `packages/f5xc-api-mcp/`
|
|
24
|
-
|
|
25
|
-
### 3. [Terraform Provider for F5 Distributed Cloud](./packages/terraform-provider/)
|
|
26
|
-
|
|
27
|
-
Community Terraform provider for F5 Distributed Cloud (version 3.0.0 - clean break release).
|
|
28
|
-
|
|
29
|
-
- **Registry**: `robinmordasiewicz/f5xc`
|
|
30
|
-
- **Features**: API v2 based, 98+ resources available, import support, pre-release clean break
|
|
31
|
-
- **Directory**: `packages/terraform-provider/`
|
|
32
|
-
- **Language**: Go
|
|
33
|
-
|
|
34
|
-
## Getting Started
|
|
35
|
-
|
|
36
|
-
### Prerequisites
|
|
37
|
-
|
|
38
|
-
- Node.js >= 18.0.0
|
|
39
|
-
- npm >= 7.0.0 (for workspace support)
|
|
40
|
-
- Go >= 1.22 (for Terraform provider development)
|
|
41
|
-
|
|
42
|
-
### Installation
|
|
43
|
-
|
|
44
|
-
Clone the repository:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
git clone https://github.com/robinmordasiewicz/f5xc.git
|
|
48
|
-
cd f5xc
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Install dependencies for all packages:
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
npm install
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Development
|
|
58
|
-
|
|
59
|
-
Run tests across all packages:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
npm test
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Build all packages:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
npm run build
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Lint all packages:
|
|
8
|
+
## Installation
|
|
72
9
|
|
|
73
10
|
```bash
|
|
74
|
-
npm
|
|
11
|
+
npm install @robinmordasiewicz/f5xc-auth
|
|
75
12
|
```
|
|
76
13
|
|
|
77
|
-
|
|
14
|
+
## Quick Start
|
|
78
15
|
|
|
79
|
-
|
|
16
|
+
```typescript
|
|
17
|
+
import { HttpClient, ProfileManager } from '@robinmordasiewicz/f5xc-auth';
|
|
80
18
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
npm install
|
|
84
|
-
npm run build
|
|
85
|
-
npm test
|
|
86
|
-
```
|
|
19
|
+
// Load profile
|
|
20
|
+
const profile = await ProfileManager.load('my-profile');
|
|
87
21
|
|
|
88
|
-
|
|
22
|
+
// Create authenticated HTTP client
|
|
23
|
+
const client = await HttpClient.create(profile);
|
|
89
24
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
f5xc/
|
|
94
|
-
├── packages/
|
|
95
|
-
│ ├── f5xc-auth/ # Core authentication library (TypeScript)
|
|
96
|
-
│ ├── f5xc-api-mcp/ # MCP server wrapper (TypeScript)
|
|
97
|
-
│ └── terraform-provider/ # Terraform provider (Go)
|
|
98
|
-
├── package.json # Workspace root configuration
|
|
99
|
-
├── README.md # This file
|
|
100
|
-
└── .github/ # GitHub workflows
|
|
25
|
+
// Make API call
|
|
26
|
+
const response = await client.get('/api/v1/namespace');
|
|
101
27
|
```
|
|
102
28
|
|
|
103
|
-
##
|
|
29
|
+
## Features
|
|
104
30
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
31
|
+
- **Multiple auth methods** - API tokens, P12 certificates, cert/key pairs
|
|
32
|
+
- **XDG-compliant storage** - Profiles in `~/.config/f5xc/profiles/`
|
|
33
|
+
- **Environment override** - Use env vars for CI/CD contexts
|
|
34
|
+
- **URL normalization** - Automatic tenant URL handling
|
|
35
|
+
- **Pre-configured HTTP** - Axios client with auth and retry logic
|
|
36
|
+
- **TypeScript** - Full type safety and IntelliSense support
|
|
108
37
|
|
|
109
38
|
## Documentation
|
|
110
39
|
|
|
111
|
-
|
|
112
|
-
- [f5xc-api-mcp Documentation](./packages/f5xc-api-mcp/)
|
|
113
|
-
- [Terraform Provider Documentation](./packages/terraform-provider/)
|
|
40
|
+
Full documentation: **https://robinmordasiewicz.github.io/f5xc-auth/**
|
|
114
41
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
42
|
+
- [Authentication Guide](https://robinmordasiewicz.github.io/f5xc-auth/authentication/)
|
|
43
|
+
- [API Reference](https://robinmordasiewicz.github.io/f5xc-auth/api/)
|
|
44
|
+
- [Examples](https://robinmordasiewicz.github.io/f5xc-auth/examples/)
|
|
118
45
|
|
|
119
|
-
##
|
|
46
|
+
## Requirements
|
|
120
47
|
|
|
121
|
-
|
|
48
|
+
Node.js >= 18
|
|
122
49
|
|
|
123
|
-
##
|
|
50
|
+
## Contributing
|
|
124
51
|
|
|
125
|
-
|
|
126
|
-
- **F5 Distributed Cloud Docs**: https://docs.cloud.f5.com/
|
|
127
|
-
- **Terraform Registry**: https://registry.terraform.io/providers/robinmordasiewicz/f5xc/
|
|
52
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for development guidelines and automated release process.
|
|
128
53
|
|
|
129
|
-
##
|
|
54
|
+
## License
|
|
130
55
|
|
|
131
|
-
|
|
56
|
+
MIT - see [LICENSE](./LICENSE)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robinmordasiewicz/f5xc-auth",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Shared authentication library for F5 Distributed Cloud MCP servers - XDG-compliant profile management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -54,12 +54,21 @@
|
|
|
54
54
|
"axios": "^1.7.0",
|
|
55
55
|
"yaml": "^2.7.0"
|
|
56
56
|
},
|
|
57
|
+
"overrides": {
|
|
58
|
+
"glob": ">=10.5.0",
|
|
59
|
+
"tar": ">=7.5.3",
|
|
60
|
+
"undici": ">=6.23.0",
|
|
61
|
+
"diff": ">=8.0.3",
|
|
62
|
+
"semantic-release": {
|
|
63
|
+
"@semantic-release/npm": "$@semantic-release/npm"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
57
66
|
"devDependencies": {
|
|
58
67
|
"@semantic-release/changelog": "^6.0.3",
|
|
59
68
|
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
60
69
|
"@semantic-release/git": "^10.0.1",
|
|
61
70
|
"@semantic-release/github": "^11.0.0",
|
|
62
|
-
"@semantic-release/npm": "^
|
|
71
|
+
"@semantic-release/npm": "^13.1.3",
|
|
63
72
|
"@semantic-release/release-notes-generator": "^14.0.1",
|
|
64
73
|
"@types/node": "^22.10.0",
|
|
65
74
|
"@vitest/coverage-v8": "^4.0.16",
|