@robinmordasiewicz/f5xc-terraform-mcp 3.5.1 → 3.6.1

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 (111) hide show
  1. package/README.md +104 -283
  2. package/dist/docs/data-sources/bgp.md +2 -2
  3. package/dist/docs/data-sources/discovery.md +2 -2
  4. package/dist/docs/data-sources/fast_acl.md +2 -2
  5. package/dist/docs/data-sources/fast_acl_rule.md +2 -2
  6. package/dist/docs/data-sources/irule.md +2 -2
  7. package/dist/docs/data-sources/log_receiver.md +2 -2
  8. package/dist/docs/data-sources/network_policy.md +2 -2
  9. package/dist/docs/data-sources/route.md +2 -2
  10. package/dist/docs/data-sources/site.md +2 -2
  11. package/dist/docs/resources/address_allocator.md +7 -7
  12. package/dist/docs/resources/advertise_policy.md +57 -57
  13. package/dist/docs/resources/alert_policy.md +40 -40
  14. package/dist/docs/resources/alert_receiver.md +57 -57
  15. package/dist/docs/resources/api_crawler.md +13 -13
  16. package/dist/docs/resources/api_definition.md +11 -11
  17. package/dist/docs/resources/api_discovery.md +4 -4
  18. package/dist/docs/resources/api_testing.md +27 -27
  19. package/dist/docs/resources/apm.md +40 -40
  20. package/dist/docs/resources/app_api_group.md +20 -20
  21. package/dist/docs/resources/app_firewall.md +50 -50
  22. package/dist/docs/resources/app_setting.md +19 -19
  23. package/dist/docs/resources/app_type.md +7 -7
  24. package/dist/docs/resources/authentication.md +29 -29
  25. package/dist/docs/resources/aws_tgw_site.md +140 -140
  26. package/dist/docs/resources/aws_vpc_site.md +174 -174
  27. package/dist/docs/resources/azure_vnet_site.md +245 -245
  28. package/dist/docs/resources/bgp.md +37 -205
  29. package/dist/docs/resources/bgp_asn_set.md +1 -1
  30. package/dist/docs/resources/bgp_routing_policy.md +19 -19
  31. package/dist/docs/resources/bot_defense_app_infrastructure.md +12 -12
  32. package/dist/docs/resources/cdn_cache_rule.md +5 -5
  33. package/dist/docs/resources/cdn_loadbalancer.md +418 -418
  34. package/dist/docs/resources/certificate.md +1 -1
  35. package/dist/docs/resources/certificate_chain.md +1 -1
  36. package/dist/docs/resources/cloud_connect.md +28 -28
  37. package/dist/docs/resources/cloud_credentials.md +35 -35
  38. package/dist/docs/resources/cloud_elastic_ip.md +8 -8
  39. package/dist/docs/resources/cloud_link.md +36 -36
  40. package/dist/docs/resources/cluster.md +86 -86
  41. package/dist/docs/resources/cminstance.md +22 -22
  42. package/dist/docs/resources/code_base_integration.md +24 -24
  43. package/dist/docs/resources/container_registry.md +13 -13
  44. package/dist/docs/resources/crl.md +1 -1
  45. package/dist/docs/resources/data_type.md +16 -16
  46. package/dist/docs/resources/dc_cluster_group.md +4 -4
  47. package/dist/docs/resources/discovery.md +8 -259
  48. package/dist/docs/resources/dns_compliance_checks.md +1 -1
  49. package/dist/docs/resources/dns_domain.md +3 -3
  50. package/dist/docs/resources/endpoint.md +44 -44
  51. package/dist/docs/resources/enhanced_firewall_policy.md +51 -51
  52. package/dist/docs/resources/external_connector.md +42 -42
  53. package/dist/docs/resources/fast_acl.md +60 -166
  54. package/dist/docs/resources/fast_acl_rule.md +28 -28
  55. package/dist/docs/resources/filter_set.md +10 -10
  56. package/dist/docs/resources/fleet.md +160 -160
  57. package/dist/docs/resources/forward_proxy_policy.md +82 -82
  58. package/dist/docs/resources/forwarding_class.md +14 -14
  59. package/dist/docs/resources/gcp_vpc_site.md +152 -152
  60. package/dist/docs/resources/global_log_receiver.md +238 -238
  61. package/dist/docs/resources/healthcheck.md +17 -17
  62. package/dist/docs/resources/http_loadbalancer.md +1003 -1003
  63. package/dist/docs/resources/irule.md +5 -7
  64. package/dist/docs/resources/log_receiver.md +825 -44
  65. package/dist/docs/resources/malicious_user_mitigation.md +10 -10
  66. package/dist/docs/resources/nat_policy.md +86 -86
  67. package/dist/docs/resources/network_connector.md +31 -31
  68. package/dist/docs/resources/network_firewall.md +22 -22
  69. package/dist/docs/resources/network_interface.md +77 -77
  70. package/dist/docs/resources/network_policy.md +38 -217
  71. package/dist/docs/resources/network_policy_rule.md +21 -21
  72. package/dist/docs/resources/network_policy_view.md +65 -65
  73. package/dist/docs/resources/nfv_service.md +76 -76
  74. package/dist/docs/resources/nginx_service_discovery.md +10 -10
  75. package/dist/docs/resources/origin_pool.md +166 -166
  76. package/dist/docs/resources/policer.md +4 -4
  77. package/dist/docs/resources/policy_based_routing.md +28 -28
  78. package/dist/docs/resources/protocol_inspection.md +12 -12
  79. package/dist/docs/resources/protocol_policer.md +14 -14
  80. package/dist/docs/resources/proxy.md +111 -111
  81. package/dist/docs/resources/rate_limiter.md +15 -15
  82. package/dist/docs/resources/rate_limiter_policy.md +56 -56
  83. package/dist/docs/resources/route.md +183 -183
  84. package/dist/docs/resources/secret_management_access.md +68 -68
  85. package/dist/docs/resources/securemesh_site.md +1619 -258
  86. package/dist/docs/resources/segment.md +4 -4
  87. package/dist/docs/resources/sensitive_data_policy.md +9 -9
  88. package/dist/docs/resources/service_policy.md +175 -175
  89. package/dist/docs/resources/service_policy_rule.md +142 -142
  90. package/dist/docs/resources/site.md +381 -303
  91. package/dist/docs/resources/site_mesh_group.md +18 -18
  92. package/dist/docs/resources/subnet.md +17 -17
  93. package/dist/docs/resources/tcp_loadbalancer.md +130 -130
  94. package/dist/docs/resources/tenant_configuration.md +10 -10
  95. package/dist/docs/resources/trusted_ca_list.md +1 -1
  96. package/dist/docs/resources/tunnel.md +36 -36
  97. package/dist/docs/resources/udp_loadbalancer.md +59 -59
  98. package/dist/docs/resources/usb_policy.md +6 -6
  99. package/dist/docs/resources/user_identification.md +16 -16
  100. package/dist/docs/resources/virtual_host.md +225 -225
  101. package/dist/docs/resources/virtual_network.md +14 -14
  102. package/dist/docs/resources/virtual_site.md +3 -3
  103. package/dist/docs/resources/voltstack_site.md +141 -141
  104. package/dist/docs/resources/waf_exclusion_policy.md +17 -17
  105. package/dist/docs/resources/workload.md +327 -327
  106. package/dist/docs/resources/workload_flavor.md +3 -3
  107. package/dist/metadata/resource-metadata.json +1484 -942
  108. package/dist/types.d.ts +11 -0
  109. package/dist/types.d.ts.map +1 -1
  110. package/dist/types.js.map +1 -1
  111. package/package.json +1 -1
package/README.md CHANGED
@@ -1,332 +1,153 @@
1
- # F5 Distributed Cloud Terraform MCP Server
1
+ # MCP Registry
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/@robinmordasiewicz/f5xc-terraform-mcp)](https://www.npmjs.com/package/@robinmordasiewicz/f5xc-terraform-mcp)
4
- [![MIT License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE)
3
+ The MCP registry provides MCP clients with a list of MCP servers, like an app store for MCP servers.
5
4
 
6
- Token-optimized Model Context Protocol (MCP) server for F5 Distributed Cloud Terraform provider documentation, API specifications, and subscription management.
5
+ [**📤 Publish my MCP server**](docs/modelcontextprotocol-io/quickstart.mdx) | [**⚡️ Live API docs**](https://registry.modelcontextprotocol.io/docs) | [**👀 Ecosystem vision**](docs/design/ecosystem-vision.md) | 📖 **[Full documentation](./docs)**
7
6
 
8
- This MCP server exposes tools for AI assistants to interact with the [F5 Distributed Cloud Terraform Provider](https://github.com/robinmordasiewicz/terraform-provider-f5xc), enabling intelligent infrastructure-as-code assistance.
7
+ ## Development Status
9
8
 
10
- ## Features
9
+ **2025-10-24 update**: The Registry API has entered an **API freeze (v0.1)** 🎉. For the next month or more, the API will remain stable with no breaking changes, allowing integrators to confidently implement support. This freeze applies to v0.1 while development continues on v0. We'll use this period to validate the API in real-world integrations and gather feedback to shape v1 for general availability. Thank you to everyone for your contributions and patience—your involvement has been key to getting us here!
11
10
 
12
- - **270+ OpenAPI Specifications** - Complete F5XC API documentation for AI-assisted configuration
13
- - **250+ Terraform Resources** - Full documentation for all provider resources and data sources
14
- - **Token-Optimized Design** - 14 tools consolidated to 7 (~75% token reduction)
15
- - **Subscription Tier Management** - Check feature availability across STANDARD/ADVANCED/PREMIUM tiers
16
- - **Addon Service Workflows** - Manage F5XC service activations
17
- - **Resource Metadata** - Deterministic AI configuration generation with validation rules, defaults, and one-of schemas
11
+ **2025-09-08 update**: The registry has launched in preview 🎉 ([announcement blog post](https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/)). While the system is now more stable, this is still a preview release and breaking changes or data resets may occur. A general availability (GA) release will follow later. We'd love your feedback in [GitHub discussions](https://github.com/modelcontextprotocol/registry/discussions/new?category=ideas) or in the [#registry-dev Discord](https://discord.com/channels/1358869848138059966/1369487942862504016) ([joining details here](https://modelcontextprotocol.io/community/communication)).
18
12
 
19
- ## Installation
13
+ Current key maintainers:
14
+ - **Adam Jones** (Anthropic) [@domdomegg](https://github.com/domdomegg)
15
+ - **Tadas Antanavicius** (PulseMCP) [@tadasant](https://github.com/tadasant)
16
+ - **Toby Padilla** (GitHub) [@toby](https://github.com/toby)
17
+ - **Radoslav (Rado) Dimitrov** (Stacklok) [@rdimitrov](https://github.com/rdimitrov)
20
18
 
21
- ### Global Installation
19
+ ## Contributing
22
20
 
23
- ```bash
24
- npm install -g @robinmordasiewicz/f5xc-terraform-mcp
25
- ```
21
+ We use multiple channels for collaboration - see [modelcontextprotocol.io/community/communication](https://modelcontextprotocol.io/community/communication).
26
22
 
27
- ### Usage with Claude Desktop
23
+ Often (but not always) ideas flow through this pipeline:
28
24
 
29
- Add to your `claude_desktop_config.json`:
25
+ - **[Discord](https://modelcontextprotocol.io/community/communication)** - Real-time community discussions
26
+ - **[Discussions](https://github.com/modelcontextprotocol/registry/discussions)** - Propose and discuss product/technical requirements
27
+ - **[Issues](https://github.com/modelcontextprotocol/registry/issues)** - Track well-scoped technical work
28
+ - **[Pull Requests](https://github.com/modelcontextprotocol/registry/pulls)** - Contribute work towards issues
30
29
 
31
- ```json
32
- {
33
- "mcpServers": {
34
- "f5xc-terraform": {
35
- "command": "npx",
36
- "args": ["-y", "@robinmordasiewicz/f5xc-terraform-mcp"]
37
- }
38
- }
39
- }
40
- ```
30
+ ### Quick start:
41
31
 
42
- ### Manual CLI Usage
32
+ #### Pre-requisites
43
33
 
44
- ```bash
45
- # Run the MCP server
46
- npx @robinmordasiewicz/f5xc-terraform-mcp
34
+ - **Docker**
35
+ - **Go 1.24.x**
36
+ - **ko** - Container image builder for Go ([installation instructions](https://ko.build/install/))
37
+ - **golangci-lint v2.4.0**
47
38
 
48
- # Or install globally and run directly
49
- f5xc-terraform-mcp
50
- ```
39
+ #### Running the server
51
40
 
52
- ## Available Tools
53
-
54
- | Tool | Description |
55
- |------|-------------|
56
- | `f5xc_terraform_discover` | Meta-tool for discovering available tools with optional schema details |
57
- | `f5xc_terraform_docs` | Search, get, or list documentation (resources, data-sources, functions, guides) |
58
- | `f5xc_terraform_api` | Query 270+ OpenAPI specs (search, get, find endpoints, schema definitions) |
59
- | `f5xc_terraform_subscription` | Check subscription tier requirements for resources and properties |
60
- | `f5xc_terraform_addon` | Manage addon services (list, check activation, workflow) |
61
- | `f5xc_terraform_metadata` | Resource metadata for deterministic AI config generation |
62
- | `f5xc_terraform_get_summary` | Get provider summary with documentation and API specs overview |
63
-
64
- ## Tool Details
65
-
66
- ### Documentation Tool (`f5xc_terraform_docs`)
67
-
68
- Search and retrieve Terraform provider documentation.
69
-
70
- ```typescript
71
- // Search for resources
72
- await f5xc_terraform_docs({
73
- operation: "search",
74
- query: "http_loadbalancer",
75
- type: "resource",
76
- limit: 10
77
- });
78
-
79
- // Get specific resource documentation
80
- await f5xc_terraform_docs({
81
- operation: "get",
82
- name: "http_loadbalancer",
83
- type: "resource"
84
- });
85
-
86
- // List all resources
87
- await f5xc_terraform_docs({
88
- operation: "list",
89
- type: "resource"
90
- });
41
+ ```bash
42
+ # Start full development environment
43
+ make dev-compose
91
44
  ```
92
45
 
93
- ### API Specification Tool (`f5xc_terraform_api`)
94
-
95
- Query OpenAPI specifications for API details.
96
-
97
- ```typescript
98
- // Search API specs
99
- await f5xc_terraform_api({
100
- operation: "search",
101
- query: "http_loadbalancer",
102
- limit: 10
103
- });
104
-
105
- // Get full spec with endpoints
106
- await f5xc_terraform_api({
107
- operation: "get",
108
- name: "http_loadbalancer",
109
- include_paths: true,
110
- include_definitions: false
111
- });
112
-
113
- // Find endpoints matching pattern
114
- await f5xc_terraform_api({
115
- operation: "find_endpoints",
116
- pattern: "/namespaces",
117
- method: "GET"
118
- });
119
-
120
- // Get schema definition
121
- await f5xc_terraform_api({
122
- operation: "get_definition",
123
- spec_name: "http_loadbalancer",
124
- definition_name: "HTTPLoadBalancerSpec"
125
- });
126
- ```
46
+ This starts the registry at [`localhost:8080`](http://localhost:8080) with PostgreSQL. The database uses ephemeral storage and is reset each time you restart the containers, ensuring a clean state for development and testing.
127
47
 
128
- ### Subscription Tool (`f5xc_terraform_subscription`)
48
+ **Note:** The registry uses [ko](https://ko.build) to build container images. The `make dev-compose` command automatically builds the registry image with ko and loads it into your local Docker daemon before starting the services.
129
49
 
130
- Check subscription tier requirements.
50
+ By default, the registry seeds from the production API with a filtered subset of servers (to keep startup fast). This ensures your local environment mirrors production behavior and all seed data passes validation. For offline development you can seed from a file without validation with `MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose`.
131
51
 
132
- ```typescript
133
- // Get resource tier requirements
134
- await f5xc_terraform_subscription({
135
- operation: "resource",
136
- resource_name: "http_loadbalancer"
137
- });
52
+ The setup can be configured with environment variables in [docker-compose.yml](./docker-compose.yml) - see [.env.example](./.env.example) for a reference.
138
53
 
139
- // Check if property requires Advanced tier
140
- await f5xc_terraform_subscription({
141
- operation: "property",
142
- resource_name: "http_loadbalancer",
143
- property_path: "enable_malicious_user_detection"
144
- });
145
- ```
54
+ <details>
55
+ <summary>Alternative: Running a pre-built Docker image</summary>
146
56
 
147
- ### Addon Service Tool (`f5xc_terraform_addon`)
57
+ Pre-built Docker images are automatically published to GitHub Container Registry:
148
58
 
149
- Manage F5XC addon services.
150
-
151
- ```typescript
152
- // List available addon services
153
- await f5xc_terraform_addon({
154
- operation: "list"
155
- });
156
-
157
- // Check service activation status
158
- await f5xc_terraform_addon({
159
- operation: "check",
160
- service_name: "wasm"
161
- });
162
-
163
- // Get activation workflow guidance
164
- await f5xc_terraform_addon({
165
- operation: "workflow",
166
- service_name: "security_app_protect"
167
- });
168
- ```
169
-
170
- ### Metadata Tool (`f5xc_terraform_metadata`)
171
-
172
- Get resource metadata for deterministic AI configuration.
173
-
174
- ```typescript
175
- // Get one-of field options
176
- await f5xc_terraform_metadata({
177
- operation: "oneof",
178
- resource: "http_loadbalancer",
179
- attribute: "http_type"
180
- });
181
-
182
- // Get validation patterns
183
- await f5xc_terraform_metadata({
184
- operation: "validation",
185
- pattern: "name"
186
- });
187
-
188
- // Get default values
189
- await f5xc_terraform_metadata({
190
- operation: "defaults",
191
- resource: "namespace"
192
- });
193
-
194
- // Get enums
195
- await f5xc_terraform_metadata({
196
- operation: "enums",
197
- resource: "http_loadbalancer"
198
- });
199
-
200
- // Check attribute properties
201
- await f5xc_terraform_metadata({
202
- operation: "attribute",
203
- resource: "http_loadbalancer",
204
- attribute: "name"
205
- });
206
-
207
- // Check requires_replace
208
- await f5xc_terraform_metadata({
209
- operation: "requires_replace",
210
- resource: "http_loadbalancer",
211
- attribute: "name"
212
- });
213
-
214
- // Get resource dependencies
215
- await f5xc_terraform_metadata({
216
- operation: "dependencies",
217
- resource: "http_loadbalancer"
218
- });
219
-
220
- // Get troubleshooting info
221
- await f5xc_terraform_metadata({
222
- operation: "troubleshoot",
223
- error_code: "NOT_FOUND"
224
- });
225
-
226
- // Get full resource summary
227
- await f5xc_terraform_metadata({
228
- operation: "summary",
229
- resource: "namespace"
230
- });
231
- ```
59
+ ```bash
60
+ # Run latest stable release
61
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
232
62
 
233
- ## Response Format
63
+ # Run latest from main branch (continuous deployment)
64
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
234
65
 
235
- All tools support both `markdown` (default) and `json` response formats:
66
+ # Run specific release version
67
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
236
68
 
237
- ```typescript
238
- await f5xc_terraform_get_summary({
239
- response_format: "json"
240
- });
69
+ # Run development build from main branch
70
+ docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
241
71
  ```
242
72
 
243
- ## Token Optimization
73
+ **Available tags:**
74
+ - **Releases**: `latest`, `v1.0.0`, `v1.1.0`, etc.
75
+ - **Continuous**: `main` (latest main branch build)
76
+ - **Development**: `main-<date>-<sha>` (specific commit builds)
244
77
 
245
- This MCP server uses a token-optimized design:
78
+ </details>
246
79
 
247
- - **14 original tools consolidated to 7** (~75% token reduction)
248
- - **Discovery meta-tool** enables lazy schema loading
249
- - **Shared parameter descriptions** reduce schema size
250
- - **Response truncation** for large payloads (50,000 character limit)
80
+ #### Publishing a server
251
81
 
252
- ## F5XC Provider Quick Start
82
+ To publish a server, we've built a simple CLI. You can use it with:
253
83
 
254
- For Terraform configuration:
255
-
256
- ```hcl
257
- terraform {
258
- required_providers {
259
- f5xc = {
260
- source = "robinmordasiewicz/f5xc"
261
- version = ">= 2.0.0"
262
- }
263
- }
264
- }
265
-
266
- provider "f5xc" {
267
- api_url = "https://your-tenant.console.ves.volterra.io"
268
- api_token = var.f5xc_api_token
269
- }
84
+ ```bash
85
+ # Build the latest CLI
86
+ make publisher
270
87
 
271
- # Create a namespace
272
- resource "f5xc_namespace" "example" {
273
- name = "my-namespace"
274
- }
88
+ # Use it!
89
+ ./bin/mcp-publisher --help
275
90
  ```
276
91
 
277
- ## Resources Supported
278
-
279
- - **250+ Terraform Resources** - Full CRUD for F5XC services
280
- - **40+ Data Sources** - Read-only access to F5XC configurations
281
- - **2 Provider Functions** - `blindfold` and `blindfold_file` for secret management
282
- - **Multiple Guides** - Step-by-step tutorials for common use cases
283
-
284
- ## Subscription Tiers
285
-
286
- F5XC resources are organized by subscription tier:
287
-
288
- | Tier | Description |
289
- |------|-------------|
290
- | **STANDARD** | Core networking and security features |
291
- | **ADVANCED** | Enhanced WAF, bot defense, and advanced security |
292
- | **PREMIUM** | Enterprise features and dedicated support |
92
+ See [the publisher guide](./docs/modelcontextprotocol-io/quickstart.mdx) for more details.
293
93
 
294
- Use the subscription tool to check which tier a resource or feature requires.
94
+ #### Other commands
295
95
 
296
- ## Documentation
297
-
298
- - [Terraform Provider Documentation](https://registry.terraform.io/providers/robinmordasiewicz/f5xc/latest/docs)
299
- - [F5 Distributed Cloud Docs](https://docs.cloud.f5.com/)
300
- - [MCP Protocol Documentation](https://modelcontextprotocol.io/)
96
+ ```bash
97
+ # Run lint, unit tests and integration tests
98
+ make check
99
+ ```
301
100
 
302
- ## Version Synchronization
101
+ There are also a few more helpful commands for development. Run `make help` to learn more, or look in [Makefile](./Makefile).
303
102
 
304
- This npm package version is automatically synchronized with GitHub releases. Both the Terraform provider and MCP server share the same version number for consistency.
103
+ <!--
104
+ For Claude and other AI tools: Always prefer make targets over custom commands where possible.
105
+ -->
305
106
 
306
- ## Development
107
+ ## Architecture
307
108
 
308
- ```bash
309
- # Clone the repository
310
- git clone https://github.com/robinmordasiewicz/terraform-provider-f5xc.git
109
+ ### Project Structure
311
110
 
312
- # Navigate to MCP server directory
313
- cd mcp-server
111
+ ```
112
+ ├── cmd/ # Application entry points
113
+ │ └── publisher/ # Server publishing tool
114
+ ├── data/ # Seed data
115
+ ├── deploy/ # Deployment configuration (Pulumi)
116
+ ├── docs/ # Documentation
117
+ ├── internal/ # Private application code
118
+ │ ├── api/ # HTTP handlers and routing
119
+ │ ├── auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
120
+ │ ├── config/ # Configuration management
121
+ │ ├── database/ # Data persistence (PostgreSQL)
122
+ │ ├── service/ # Business logic
123
+ │ ├── telemetry/ # Metrics and monitoring
124
+ │ └── validators/ # Input validation
125
+ ├── pkg/ # Public packages
126
+ │ ├── api/ # API types and structures
127
+ │ │ └── v0/ # Version 0 API types
128
+ │ └── model/ # Data models for server.json
129
+ ├── scripts/ # Development and testing scripts
130
+ ├── tests/ # Integration tests
131
+ └── tools/ # CLI tools and utilities
132
+ └── validate-*.sh # Schema validation tools
133
+ ```
314
134
 
315
- # Install dependencies
316
- npm install
135
+ ### Authentication
317
136
 
318
- # Build the server
319
- npm run build
137
+ Publishing supports multiple authentication methods:
138
+ - **GitHub OAuth** - For publishing by logging into GitHub
139
+ - **GitHub OIDC** - For publishing from GitHub Actions
140
+ - **DNS verification** - For proving ownership of a domain and its subdomains
141
+ - **HTTP verification** - For proving ownership of a domain
320
142
 
321
- # Run in development mode with hot reload
322
- npm run dev
323
- ```
143
+ The registry validates namespace ownership when publishing. E.g. to publish...:
144
+ - `io.github.domdomegg/my-cool-mcp` you must login to GitHub as `domdomegg`, or be in a GitHub Action on domdomegg's repos
145
+ - `me.adamjones/my-cool-mcp` you must prove ownership of `adamjones.me` via DNS or HTTP challenge
324
146
 
325
- ## License
147
+ ## Community Projects
326
148
 
327
- This project is licensed under the [MIT License](LICENSE).
149
+ Check out [community projects](docs/community-projects.md) to explore notable registry-related work created by the community.
328
150
 
329
- ## Support
151
+ ## More documentation
330
152
 
331
- - [GitHub Issues](https://github.com/robinmordasiewicz/terraform-provider-f5xc/issues)
332
- - [F5 Community](https://community.f5.com/)
153
+ See the [documentation](./docs) for more details if your question has not been answered here!
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_bgp Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Networking"
4
4
  description: |-
5
- Manages a BGP resource in F5 Distributed Cloud for bgp object is the configuration for peering with external bgp servers. it is created by users in system namespace. configuration.
5
+ Manages a BGP resource in F5 Distributed Cloud for bgp routing policy is a list of rules containing match criteria and action to be applied. these rules help contol routes which are imported or exported to bgp peers. configuration.
6
6
  ---
7
7
 
8
8
  # f5xc_bgp (Data Source)
9
9
 
10
- Manages a BGP resource in F5 Distributed Cloud for bgp object is the configuration for peering with external bgp servers. it is created by users in system namespace. configuration.
10
+ Manages a BGP resource in F5 Distributed Cloud for bgp routing policy is a list of rules containing match criteria and action to be applied. these rules help contol routes which are imported or exported to bgp peers. configuration.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_discovery Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Applications"
4
4
  description: |-
5
- Manages a Discovery resource in F5 Distributed Cloud for api to create discovery object for a site or virtual site in system namespace. configuration.
5
+ Manages API discovery creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_discovery (Data Source)
9
9
 
10
- Manages a Discovery resource in F5 Distributed Cloud for api to create discovery object for a site or virtual site in system namespace. configuration.
10
+ Manages API discovery creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_fast_acl Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Security"
4
4
  description: |-
5
- Manages fast_acl object, fast_acl object contains rules to protect site from denial of service It has destination{destination IP, destination port) and references to fast_acl_rule in F5 Distributed Cloud.
5
+ Manages new Fast ACL rule, has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_fast_acl (Data Source)
9
9
 
10
- Manages `fast_acl` object, `fast_acl` object contains rules to protect site from denial of service It has destination{destination IP, destination port) and references to `fast_acl_rule` in F5 Distributed Cloud.
10
+ Manages new Fast ACL rule, has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_fast_acl_rule Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Security"
4
4
  description: |-
5
- Manages new Fast ACL rule, fast_acl_rule has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
5
+ Manages new Fast ACL rule, has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_fast_acl_rule (Data Source)
9
9
 
10
- Manages new Fast ACL rule, `fast_acl_rule` has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
10
+ Manages new Fast ACL rule, has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_irule Data Source - terraform-provider-f5xc"
3
3
  subcategory: "BIG-IP Integration"
4
4
  description: |-
5
- Manages a Irule resource in F5 Distributed Cloud for desired state for big-ip irule service. configuration.
5
+ Manages iRule in a given namespace. If one already exists it will give an error. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_irule (Data Source)
9
9
 
10
- Manages a Irule resource in F5 Distributed Cloud for desired state for big-ip irule service. configuration.
10
+ Manages iRule in a given namespace. If one already exists it will give an error. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_log_receiver Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Monitoring"
4
4
  description: |-
5
- Manages new Log Receiver object. in F5 Distributed Cloud.
5
+ Manages new Global Log Receiver object. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_log_receiver (Data Source)
9
9
 
10
- Manages new Log Receiver object. in F5 Distributed Cloud.
10
+ Manages new Global Log Receiver object. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_network_policy Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Security"
4
4
  description: |-
5
- Manages new network policy with configured parameters in specified namespace. in F5 Distributed Cloud.
5
+ Manages network policy rule with configured parameters in specified namespace. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_network_policy (Data Source)
9
9
 
10
- Manages new network policy with configured parameters in specified namespace. in F5 Distributed Cloud.
10
+ Manages network policy rule with configured parameters in specified namespace. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_route Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Load Balancing"
4
4
  description: |-
5
- Manages route object in a given namespace. Route object is list of route rules. Each rule has match condition to match incoming requests and actions to take on matching requests. Virtual host object has reference to route object. in F5 Distributed Cloud.
5
+ Manages route object in a given namespace. Route object is list of route rules. Each rule has match condition to match incoming requests and actions to take on matching requests. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_route (Data Source)
9
9
 
10
- Manages route object in a given namespace. Route object is list of route rules. Each rule has match condition to match incoming requests and actions to take on matching requests. Virtual host object has reference to route object. in F5 Distributed Cloud.
10
+ Manages route object in a given namespace. Route object is list of route rules. Each rule has match condition to match incoming requests and actions to take on matching requests. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_site Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Uncategorized"
4
4
  description: |-
5
- Manages a Site resource in F5 Distributed Cloud for gcp vpc site specification. configuration.
5
+ Manages a Site resource in F5 Distributed Cloud for aws vpc site specification. configuration.
6
6
  ---
7
7
 
8
8
  # f5xc_site (Data Source)
9
9
 
10
- Manages a Site resource in F5 Distributed Cloud for gcp vpc site specification. configuration.
10
+ Manages a Site resource in F5 Distributed Cloud for aws vpc site specification. configuration.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -32,7 +32,7 @@ resource "f5xc_address_allocator" "example" {
32
32
  }
33
33
 
34
34
  # Resource-specific configuration
35
- # Address Allocation Scheme. Decides the scheme to be used ...
35
+ # Decides the scheme to be used to allocate addresses from ...
36
36
  address_allocation_scheme {
37
37
  # Configure address_allocation_scheme settings
38
38
  }
@@ -58,11 +58,11 @@ resource "f5xc_address_allocator" "example" {
58
58
 
59
59
  ### Spec Argument Reference
60
60
 
61
- <a id="address-allocation-scheme"></a>&#x2022; [`address_allocation_scheme`](#address-allocation-scheme) - Optional Block<br>Address Allocation Scheme. Decides the scheme to be used to allocate addresses from the configured address pool<br>See [Address Allocation Scheme](#address-allocation-scheme) below for details.
61
+ <a id="address-allocation-scheme"></a>&#x2022; [`address_allocation_scheme`](#address-allocation-scheme) - Optional Block<br>Decides the scheme to be used to allocate addresses from the configured address pool<br>See [Address Allocation Scheme](#address-allocation-scheme) below for details.
62
62
 
63
- <a id="address-pool"></a>&#x2022; [`address_pool`](#address-pool) - Optional List<br>Address Pool. Address pool from which the allocator carves out subnets or addresses to its clients
63
+ <a id="address-pool"></a>&#x2022; [`address_pool`](#address-pool) - Optional List<br>Address pool from which the allocator carves out subnets or addresses to its clients
64
64
 
65
- <a id="mode"></a>&#x2022; [`mode`](#mode) - Optional String Defaults to `LOCAL`<br>Possible values are `LOCAL`, `GLOBAL_PER_SITE_NODE`<br>[Enum: LOCAL|GLOBAL_PER_SITE_NODE] Allocator Mode. Mode of the address allocator Address allocator is for VERs within the local cluster or site Allocation is per site and then per node
65
+ <a id="mode"></a>&#x2022; [`mode`](#mode) - Optional String Defaults to `LOCAL`<br>Possible values are `LOCAL`, `GLOBAL_PER_SITE_NODE`<br>[Enum: LOCAL|GLOBAL_PER_SITE_NODE] Mode of the address allocator Address allocator is for VERs within the local cluster or site Allocation is per site and then per node
66
66
 
67
67
  <a id="timeouts"></a>&#x2022; [`timeouts`](#timeouts) - Optional Block<br>See [Timeouts](#timeouts) below for details.
68
68
 
@@ -78,11 +78,11 @@ In addition to all arguments above, the following attributes are exported:
78
78
 
79
79
  An [`address_allocation_scheme`](#address-allocation-scheme) block supports the following:
80
80
 
81
- <a id="unit-44a05d"></a>&#x2022; [`allocation_unit`](#unit-44a05d) - Optional Number<br>Allocation Unit. Prefix length indicating the size of each allocated subnet. For example, if this is specified as 30, subnets of /30 will be allocated from the given address pool
81
+ <a id="unit-44a05d"></a>&#x2022; [`allocation_unit`](#unit-44a05d) - Optional Number<br>Prefix length indicating the size of each allocated subnet. For example, if this is specified as 30, subnets of /30 will be allocated from the given address pool
82
82
 
83
- <a id="offset-3d4118"></a>&#x2022; [`local_interface_address_offset`](#offset-3d4118) - Optional Number<br>Local Interface Address Offset. This is used to derive address for the local interface from the allocated subnet. If Local Interface Address Type is set to 'Offset from beginning of Subnet', this offset value is added to the allocated subnet and used as the local interface address. For example, if the allocated subnet is 169.254.0.0/30 and offset is set to 2 with Local Interface Address Type set to 'Offset from beginning of Subnet', local interface address of 169.254.0.2 is used. If Local Interface Address Type is set to 'Offset from end of Subnet', this offset value is subtracted from the end of the allocated subnet and used as the local interface address. For example, if the allocated subnet is 169.254.0.0/30 and offset is set to 1 with Local Interface Address Type set to 'Offset from end of Subnet', local interface address of 169.254.0.2 is used
83
+ <a id="offset-3d4118"></a>&#x2022; [`local_interface_address_offset`](#offset-3d4118) - Optional Number<br>Used to derive address for the local interface from the allocated subnet. If Local Interface Address Type is set to 'Offset from beginning of Subnet', this offset value is added to the allocated subnet and used as the local interface address. For example, if the allocated subnet is
84
84
 
85
- <a id="type-3a6e24"></a>&#x2022; [`local_interface_address_type`](#type-3a6e24) - Optional String Defaults to `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN`<br>Possible values are `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN`, `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_END`, `LOCAL_INTERFACE_ADDRESS_FROM_PREFIX`<br>[Enum: LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN|LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_END|LOCAL_INTERFACE_ADDRESS_FROM_PREFIX] Local Interface Address Type. Dictates how local interface address is derived from the allocated subnet Use Nth address of the allocated subnet as the local interface address, N being the Local Interface Address Offset. For example, if the allocated subnet is 169.254.0.0/30, Local Interface Address Offset is set to 2 and Local Interface Address Type is set to 'Offset from beginning of Subnet', local address of 169.254.0.2 is used. Use Nth last address of the allocated subnet as the local interface address, N being the Local Interface Address Offset. For example, if the allocated subnet is 169.254.0.0/30, Local Interface Address Offset is set to 1 and Local Interface Address Type is set to 'Offset from end of Subnet', local address of 169.254.0.2 is used. This case is used for external_connector
85
+ <a id="type-3a6e24"></a>&#x2022; [`local_interface_address_type`](#type-3a6e24) - Optional String Defaults to `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN`<br>Possible values are `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN`, `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_END`, `LOCAL_INTERFACE_ADDRESS_FROM_PREFIX`<br>[Enum: LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN|LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_END|LOCAL_INTERFACE_ADDRESS_FROM_PREFIX] Dictates how local interface address is derived from the allocated subnet Use Nth address of the allocated subnet as the local interface address, N being the Local Interface Address Offset. For example, if the allocated subnet is 169.254.0.0/30, Local Interface Address Offset is set to 2 and
86
86
 
87
87
  #### Timeouts
88
88