From aa20a964f03b0e5095ef164842bf928c74bbb189 Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 13 Jul 2026 10:21:47 +0200 Subject: [PATCH 1/2] docs: remove unsupported developer API guidance --- .web/docs/.vitepress/config.ts | 25 ---- .web/docs/guide/adoption-plan.md | 2 +- .web/docs/guide/api/authentication.md | 46 -------- .web/docs/guide/api/clients.md | 100 ---------------- .web/docs/guide/api/examples.md | 17 --- .web/docs/guide/api/goexample/example_test.go | 110 ------------------ .web/docs/guide/api/goexample/go.mod | 10 -- .web/docs/guide/api/goexample/go.sum | 12 -- .web/docs/guide/api/index.md | 21 ---- .../guide/api/javaexample/SamplePlugin.java | 36 ------ .web/docs/guide/api/super-endpoints.md | 54 --------- .web/docs/guide/index.md | 14 +-- .web/scripts/check-docs.mjs | 36 +++++- 13 files changed, 37 insertions(+), 446 deletions(-) delete mode 100644 .web/docs/guide/api/authentication.md delete mode 100644 .web/docs/guide/api/clients.md delete mode 100644 .web/docs/guide/api/examples.md delete mode 100644 .web/docs/guide/api/goexample/example_test.go delete mode 100644 .web/docs/guide/api/goexample/go.mod delete mode 100644 .web/docs/guide/api/goexample/go.sum delete mode 100644 .web/docs/guide/api/index.md delete mode 100644 .web/docs/guide/api/javaexample/SamplePlugin.java delete mode 100644 .web/docs/guide/api/super-endpoints.md diff --git a/.web/docs/.vitepress/config.ts b/.web/docs/.vitepress/config.ts index 5bfc3ac..67783b5 100644 --- a/.web/docs/.vitepress/config.ts +++ b/.web/docs/.vitepress/config.ts @@ -237,31 +237,6 @@ export default defineConfig({ } ] }, - { - text: 'Developers API', - items: [ - { - text: 'Overview', - link: '/guide/api/' - }, - { - text: 'API Clients', - link: '/guide/api/clients' - }, - { - text: 'Authentication', - link: '/guide/api/authentication' - }, - { - text: 'Super Endpoints', - link: '/guide/api/super-endpoints' - }, - { - text: 'Code Examples', - link: '/guide/api/examples' - } - ] - }, { text: 'Roadmap', items: [ diff --git a/.web/docs/guide/adoption-plan.md b/.web/docs/guide/adoption-plan.md index a32b141..4f8b817 100644 --- a/.web/docs/guide/adoption-plan.md +++ b/.web/docs/guide/adoption-plan.md @@ -26,7 +26,7 @@ Gamification, Referral and Friends systems will be keys to success at this phase ## Step #3 - Developers Our third target audience are developers to allow them to extend the Connect Platform -and build their own plugins and services on top of it by using public Connect APIs. +and build their own plugins and services on top of it using supported Connect capabilities. Connect integrates a developer platform and marketplace for Minecraft plugins and services integrated with Connect. diff --git a/.web/docs/guide/api/authentication.md b/.web/docs/guide/api/authentication.md deleted file mode 100644 index 965d74c..0000000 --- a/.web/docs/guide/api/authentication.md +++ /dev/null @@ -1,46 +0,0 @@ -# Authentication - -_Clients and [Endpoints](/guide/#connect-endpoints) authenticate to Connect API -with an API token and the Endpoint name so that Connect knows who is making requests -and what permissions you have._ - ---- - -If you are using the Connect API through the [Java API provided by Connect Plugin](/guide/api/clients#provided-by-connect-plugin) -then you do not write authentication code. - -## Required Headers - -All requests to the Connect API require the following headers: -- `Connect-Endpoint` - The name of the endpoint the token belongs to. -- `Authorization: Bearer ` - The token of the endpoint you are connecting to. - -## Endpoint Names - -Connect has the concept of globally unique **endpoint names** to identify your server even after restarts. -The [Connectors](/guide/connectors/) use a token file to authenticate that you -own an **endpoint name** in the [Connect Network](/guide/#the-connect-network). - -::: code-group -```json [plugins/connect/token.json] -{"token":"T-ozinikukmabrpyzogjjl"} -``` -::: - -The token and endpoint name have a direct relationship. Keep your `token.json` -file safe, or import the endpoint into the -[Connect Dashboard](https://app.minekube.com) so you can reset the token later. - -If you lose `token.json` for an endpoint that was not imported into the -dashboard, Connect cannot immediately prove that the endpoint name still belongs -to you. The endpoint name stays reserved while the connector keeps refreshing it, -and for a reclaimable period after its last successful refresh. - -Currently, an unimported endpoint name becomes reclaimable after it has not been -refreshed for more than 30 days and no active endpoint session is still using it. -Before that period has passed, a connector with a different token will be rejected -because the endpoint name is still reserved. - -## Super Endpoints - -Checkout [Super Endpoints guide](/guide/api/super-endpoints) for authorizing other endpoints to act on your Endpoint's behalf. diff --git a/.web/docs/guide/api/clients.md b/.web/docs/guide/api/clients.md deleted file mode 100644 index a87ef80..0000000 --- a/.web/docs/guide/api/clients.md +++ /dev/null @@ -1,100 +0,0 @@ -# Connect API Clients - -_Connect provides code generated API clients! -They save developers time and effort, -while ensuring consistency and maintainability. -With type safety, IDE support, and language compatibility, -these clients streamline the integration process, -abstract away complexities, and empower developers to -focus on building robust and scalable applications._ - -[[TOC]] - -## Provided by Connect Plugin - -As a plugin developer you can depend on [Connect Plugin](/guide/connectors/plugin) in your plugin's dependencies. -Make sure that your `plugin.yml` has a `depend: [ connect ]` to ensure that the Connect Plugin is loaded before your -plugin. - -The Connect Plugin provides authenticated stubs to the Connect API through the `ConnectApi` global instance. - -```java [Main.java Java] -com.minekube.connect.api.ConnectApi.getInstance().getClients()... -``` - -Simply add the `connect-java:api` dependency to your project using Gradle or Maven with the -[Jitpack](https://jitpack.io/#minekube/connect-java) repository. - -::: code-group - -```kotlin [build.gradle.kts Gradle Kotlin] -repositories { - maven("https://jitpack.io") -} - -dependencies { - api("com.github.minekube.connect-java:api:latest") -} -``` - -```groovy [build.gradle Gradle Groovy] -repositories { - maven { url 'https://jitpack.io' } -} - -dependencies { - api 'com.github.minekube.connect-java:api:latest' -} -``` - -```xml [pom.xml Maven] - - - - jitpack.io - https://jitpack.io - - - - - - com.github.minekube.connect-java - api - latest - provided - - -``` - -::: - -Checkout [Code Examples](/guide/api/examples) to see it in action. - -## Other languages - -You can also use -[Buf Remote Packages](https://buf.build/minekube/connect/assets/main) -that provide client libraries for many programming languages for the Connect API. -Make sure to include the required request header to [Authenticate](/guide/api/authentication) self-built clients with -the Connect API. - -Supported languages: - -- Java/Kotlin -- Golang -- JavaScript/TypeScript -- [read more...](https://buf.build/docs/bsr/remote-packages/overview/) - -For example, to add the following modules to your Go project: - -```shell -go get github.com/bufbuild/connect-go@latest -go get buf.build/gen/go/minekube/connect/bufbuild/connect-go@latest -go get buf.build/gen/go/minekube/connect/protocolbuffers/go@latest -``` - -Checkout [Code Examples](/guide/api/examples) for code examples in different languages. - ---- - -[![Buf Remote Packages](/images/bufbuild-assets.png)](https://buf.build/minekube/connect/assets/main) diff --git a/.web/docs/guide/api/examples.md b/.web/docs/guide/api/examples.md deleted file mode 100644 index a1d1f30..0000000 --- a/.web/docs/guide/api/examples.md +++ /dev/null @@ -1,17 +0,0 @@ -# Code Examples - -_Code examples are a great way to learn how to use the Connect API in different languages._ - -See also [Other languages](/guide/api/clients#other-languages). - -::: code-group - -```java [Connect Plugin Java] - -``` - -```go [Buf Remote Package Golang] - -``` - -::: diff --git a/.web/docs/guide/api/goexample/example_test.go b/.web/docs/guide/api/goexample/example_test.go deleted file mode 100644 index 2fb09a3..0000000 --- a/.web/docs/guide/api/goexample/example_test.go +++ /dev/null @@ -1,110 +0,0 @@ -package goexample - -import ( - "context" - "net/http" - - minekube "buf.build/gen/go/minekube/connect/bufbuild/connect-go/minekube/connect/v1alpha1/connectv1alpha1connect" - connectpb "buf.build/gen/go/minekube/connect/protocolbuffers/go/minekube/connect/v1alpha1" - - // You can read more about Buf's Connect for Go here https://connect.build/docs/go - "github.com/bufbuild/connect-go" -) - -const ( - // This is the official Connect API endpoint. - baseURL = "https://connect-api.minekube.com" - - // These are the headers you need to set to authenticate with the Connect API. - endpointHeader = "Connect-Endpoint" - tokenHeader = "Authorization" -) - -// ExampleClient_ListEndpoints shows how to list endpoints you have access to. -// It uses the default http.Client and sets the endpoint and token headers -// manually. -func ExampleClient_ListEndpoints() { - // Set up the client. - client := minekube.NewConnectServiceClient(http.DefaultClient, baseURL) - - // Set up a request to list endpoints you have access to. - ctx := context.TODO() - req := connect.NewRequest(&connectpb.ListEndpointsRequest{}) - req.Header().Set(endpointHeader, "my-endpoint") - req.Header().Set(tokenHeader, "Bearer "+"my-token") - - // Fetch all endpoints until the server returns an empty page. - for { - // Send the request. - res, err := client.ListEndpoints(ctx, req) - if err != nil { - panic(err) - } - - // Print the endpoints. - for _, endpoint := range res.Msg.GetEndpoints() { - // Do something with the endpoint. - println(endpoint) - } - - // Prepare the next request. - req.Msg.PageToken = res.Msg.GetNextPageToken() - if req.Msg.PageToken == "" { - // No more pages. - break - } - } -} - -// ExampleClient_ListEndpoints_WithHeadersTransport shows how to connect players -// to an endpoint. It uses a custom http.Client that adds the endpoint and token -// headers to every request automatically. -func ExampleClient_ConnectEndpoint_WithHeadersTransport() { - // Set up the client. - httpClient := &http.Client{Transport: &headersTransport{ - headers: map[string]string{ - endpointHeader: "my-endpoint", - tokenHeader: "my-token", - }, - }} - client := minekube.NewConnectServiceClient(httpClient, baseURL) - - // Set up a request to connect a players to an endpoint you have access to. - ctx := context.TODO() - req := connect.NewRequest(&connectpb.ConnectEndpointRequest{ - Endpoint: "my-endpoint", - Players: []string{ - // example player uuids, - // the players must be online and on another endpoint you have access to. - "11111111-1111-1111-1111-111111111111", - "22222222-2222-2222-2222-222222222222", - "33333333-3333-3333-3333-333333333333", - }, - }) - - // Send the request. - _, err := client.ConnectEndpoint(ctx, req) - if err != nil { - panic(err) - } -} - -// headersTransport is a http.RoundTripper that adds headers to requests -// before sending them so that we don't have to add them to every request -// manually. -type headersTransport struct { - headers map[string]string - base http.RoundTripper -} - -// RoundTrip implements http.RoundTripper. It adds the headers to the request. -func (h *headersTransport) RoundTrip(req *http.Request) (*http.Response, error) { - for k, v := range h.headers { - req.Header.Add(k, v) - } - base := h.base - if base == nil { - base = http.DefaultTransport - } - return base.RoundTrip(req) -} diff --git a/.web/docs/guide/api/goexample/go.mod b/.web/docs/guide/api/goexample/go.mod deleted file mode 100644 index d2d9df3..0000000 --- a/.web/docs/guide/api/goexample/go.mod +++ /dev/null @@ -1,10 +0,0 @@ -module goexample - -go 1.20 - -require ( - buf.build/gen/go/minekube/connect/bufbuild/connect-go v1.7.0-20230426152538-ad9b44e4a050.1 // indirect - buf.build/gen/go/minekube/connect/protocolbuffers/go v1.30.0-20230426152538-ad9b44e4a050.1 // indirect - github.com/bufbuild/connect-go v1.7.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect -) diff --git a/.web/docs/guide/api/goexample/go.sum b/.web/docs/guide/api/goexample/go.sum deleted file mode 100644 index 562a831..0000000 --- a/.web/docs/guide/api/goexample/go.sum +++ /dev/null @@ -1,12 +0,0 @@ -buf.build/gen/go/minekube/connect/bufbuild/connect-go v1.7.0-20230426152538-ad9b44e4a050.1 h1:4LWolQseUun8p0kZC8nN9kj7M1dQlPJjv61lkdKt/B0= -buf.build/gen/go/minekube/connect/bufbuild/connect-go v1.7.0-20230426152538-ad9b44e4a050.1/go.mod h1:5x7C3tv7MLXHBkeolbWEG2wf7vwyjeaE+FgdTjmP0HM= -buf.build/gen/go/minekube/connect/protocolbuffers/go v1.30.0-20230426152538-ad9b44e4a050.1 h1:bUDOTKeRKFVO0I+pYYs3W9QgbKU55tlRt1n88ZAvN2w= -buf.build/gen/go/minekube/connect/protocolbuffers/go v1.30.0-20230426152538-ad9b44e4a050.1/go.mod h1:pY8nIBqtBexIBlNoBXG+3gviKiC4C9QLAIJ3FHwXUDs= -github.com/bufbuild/connect-go v1.7.0 h1:MGp82v7SCza+3RhsVhV7aMikwxvI3ZfD72YiGt8FYJo= -github.com/bufbuild/connect-go v1.7.0/go.mod h1:GmMJYR6orFqD0Y6ZgX8pwQ8j9baizDrIQMm1/a6LnHk= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= diff --git a/.web/docs/guide/api/index.md b/.web/docs/guide/api/index.md deleted file mode 100644 index f47ad16..0000000 --- a/.web/docs/guide/api/index.md +++ /dev/null @@ -1,21 +0,0 @@ -# Connect API - -early stage - -_The Connect API is a powerful tool for developers -to integrate Connect into their projects and products. -Interact with players and [endpoints](/guide/#connect-endpoints) on the [Connect Network](/guide/#the-connect-network) -through the Connect API._ - -## Getting started - -- [API Clients](/guide/api/clients) - Connect provides code generated API clients! -- [Code Examples](/guide/api/examples) - See the Connect API in action. - -Connect APIs supports [multiple API protocols](https://connect.build/docs/multi-protocol): - -- Buf's own protocol called [`Connect`](https://connect.build/docs/introduction) - - _Not to be confused with the Connect API itself, the same name is coincidence._ -- [gRPC](https://grpc.io/) as it's primary communication protocol. - gRPC is a high performance, open source, well-known RPC framework developed by Google. -- gRPC-Web - A subset of gRPC that works in the browser. diff --git a/.web/docs/guide/api/javaexample/SamplePlugin.java b/.web/docs/guide/api/javaexample/SamplePlugin.java deleted file mode 100644 index ba01f3c..0000000 --- a/.web/docs/guide/api/javaexample/SamplePlugin.java +++ /dev/null @@ -1,36 +0,0 @@ -package sample; - -import build.buf.gen.minekube.connect.v1alpha1.ConnectEndpointRequest; -import build.buf.gen.minekube.connect.v1alpha1.ConnectEndpointResponse; -import build.buf.gen.minekube.connect.v1alpha1.ConnectServiceGrpc.ConnectServiceBlockingStub; -import build.buf.gen.minekube.connect.v1alpha1.ListEndpointsRequest; -import build.buf.gen.minekube.connect.v1alpha1.ListEndpointsResponse; -import com.minekube.connect.api.InstanceHolder; -import java.util.stream.Collectors; -import org.bukkit.Bukkit; -import org.bukkit.plugin.java.JavaPlugin; - -public class SamplePlugin extends JavaPlugin { - - @Override - public void onEnable() { - ConnectServiceBlockingStub client = InstanceHolder.getClients().getConnectServiceBlockingStub(); - - // List all endpoints - ListEndpointsRequest listReq = ListEndpointsRequest.newBuilder().build(); - ListEndpointsResponse listRes = client.listEndpoints(listReq); - getLogger().info( - "First page of active and accessible Endpoints: " + listRes.getEndpointsList()); - - // Move all online players to another Endpoint - ConnectEndpointRequest connectReq = ConnectEndpointRequest.newBuilder() - .setEndpoint("another-endpoint") - .addAllPlayers(Bukkit.getOnlinePlayers().stream() - .map(p -> p.getUniqueId().toString()) - .collect(Collectors.toList()) - ).build(); - getLogger().info("Moving players: " + connectReq.getPlayersCount()); - ConnectEndpointResponse connectRes = client.connectEndpoint(connectReq); - getLogger().info(connectRes.toString()); - } -} diff --git a/.web/docs/guide/api/super-endpoints.md b/.web/docs/guide/api/super-endpoints.md deleted file mode 100644 index 3c590be..0000000 --- a/.web/docs/guide/api/super-endpoints.md +++ /dev/null @@ -1,54 +0,0 @@ -# Super Endpoints Public Alpha - -::: info Super Endpoints is in public alpha -This means the Minekube Team does not recommend running large production on alpha features. -It may change completely or be removed in a future release. -::: - -Super Endpoints are endpoints that are authorized to control another endpoint. -They are configured in the [Connect Plugin](/guide/connectors/plugin) config `plugins/connect/config.yml`. - -## Authorization - -To allow other [Endpoints](/guide/#connect-endpoints) to control your Endpoint you can add them to your -super endpoints list in your [Connect Plugin](/guide/connectors/plugin) config. - -Super endpoints are authorized to control this endpoint via Connect API and can e.g. disconnect players from this endpoint, -send messages to players, etc. You can add as many super endpoint names as you want. - -## Configuration Examples - -### Authorize all - -Let's say you have a `hub` server, a `survival` server, and a `pvp` server. -You own the config of all servers and want every server to be able to send players to each other. - -::: code-group -```yaml [PvP Endpoint] -# As the pvp endpoint you want to allow the hub -# and survival server to send players to you. -endpoint: my-pvp -super-endpoints: - - my-hub - - my-survival -``` - -```yaml [Hub Endpoint] -# As the hub endpoint you want to allow the pvp -# and survival server to send players to you. -endpoint: my-hub -super-endpoints: - - my-pvp - - my-survival -``` -```yaml [Survival Endpoint] -# As the survival endpoint you want to allow the pvp -# and hub server to send players to you. -endpoint: my-survival -super-endpoints: - - my-pvp - - my-hub -``` -::: - -![](https://mermaid.ink/svg/pako:eNqFkV1PwyAUhv8KObttk7kP64hZQst655Vemd7gYCsZFEKhWrf9d3F2ThPNLkj4eJ6Tw3n3sDZcAIatY7ZG-VPVINT6Xgmk-7QNrpMdU2gjlcKj2xWdFmUS353ZCTy6KQkl-fmcvkruazyxb79q1OFl0MuCTmf0opdZPh-Pr-i2s4NOFllWzC_63WRGFqu_9c81yPdpujyQ4Gvj5LtoDz__dQWLrQ_E9yD-xSABLZxmksdh7k89gK-FFhXguOXM7SqommPkWPDmsW_WgL0LIoFgOfOCShYz0IA3TLXxVnDpjXv4SucUUgKWNc_GnJnjB1LOlmk) diff --git a/.web/docs/guide/index.md b/.web/docs/guide/index.md index aee27d4..9a5e35f 100644 --- a/.web/docs/guide/index.md +++ b/.web/docs/guide/index.md @@ -18,7 +18,6 @@ The Connect Platform consists of the following components: - [The Connect Network](#the-connect-network) - A global edge network of router proxies - [The Connectors](/guide/connectors/) - Tunnels players <-> to servers through Connect Network - [The Connect Dashboard](#the-connect-dashboard) - A web interface for organizing your Minecraft network -- [The Connect API](#the-connect-api) - A public API for developers [//]: # (- [The Connect Browser](#the-connect-browser) - Server discovery for players) @@ -35,7 +34,6 @@ The **Connect Network** is vital to the **Connect platform** and responsible for - Providing free public [domains](/guide/domains) to your public or [localhost](/guide/localhost) servers - [Advertising](/guide/advertising) your servers to players through multiple channels like the [Browser Hub](/guide/advertising#browser-hub) -- Providing features to the public [Connect API](/guide/api/) for developers Connect can replace traditional proxies like BungeeCord or Velocity and become the largest shared Minecraft network in the world. @@ -52,16 +50,6 @@ resources of your Minecraft network in one place. It allows you to manage your Endpoints, Connectors, Custom Domains, analyze statistics about your network, and much more. -## The Connect API - -The public Connect API allows developers to build awesome -Minecraft networks and applications on top of the Connect platform. - -It powers the [Connect Browser](#the-connect-browser) and is used -to move players between endpoints and retrieve server information. - -Check out the [Developers API guide](/guide/api/) to learn more! - ## The Connect Browser The Connect Browser encompasses all the features that allow players to discover @@ -78,7 +66,7 @@ through a [Connector](/guide/connectors/) and is identified by a globally unique Endpoints are also referred to as _servers_ for simplicity. Endpoints are advertised to players and can be joined -by using the [Connect Browser](#the-connect-browser) or moving players with the [Connect API](#the-connect-api). +by using the [Connect Browser](#the-connect-browser). Any server that can serve Minecraft clients and is linked with the Connect Network can be an Endpoint. If you do not specify the Endpoint name in your [Connect Plugin](#the-connect-plugin) configuration, diff --git a/.web/scripts/check-docs.mjs b/.web/scripts/check-docs.mjs index d30ff8e..74222a2 100644 --- a/.web/scripts/check-docs.mjs +++ b/.web/scripts/check-docs.mjs @@ -1,4 +1,4 @@ -import {readFileSync} from 'node:fs' +import {existsSync, readFileSync} from 'node:fs' import {resolve} from 'node:path' const root = new URL('..', import.meta.url) @@ -21,6 +21,18 @@ function assertAll(file, required) { } } +function assertNotIncludes(content, unexpected, file) { + if (content.includes(unexpected)) { + throw new Error(`${file} contains retired Developer API guidance: ${unexpected}`) + } +} + +function assertMissing(path) { + if (existsSync(resolve(root.pathname, path))) { + throw new Error(`${path} must be removed because the public Developer API is unavailable`) + } +} + assertAll('docs/guide/bedrock.md', [ 'Connect-managed Bedrock', 'self-hosted Gate direct Bedrock', @@ -79,4 +91,26 @@ assertAll('docs/guide/auth-api.md', [ 'Use standard Gate with Connect enabled or the Connect Java Plugin', ]) +const vitepressConfig = readDoc('docs/.vitepress/config.ts') +assertNotIncludes(vitepressConfig, "text: 'Developers API'", 'docs/.vitepress/config.ts') +assertNotIncludes(vitepressConfig, "link: '/guide/api/", 'docs/.vitepress/config.ts') + +for (const path of [ + 'docs/guide/api/index.md', + 'docs/guide/api/clients.md', + 'docs/guide/api/authentication.md', + 'docs/guide/api/super-endpoints.md', + 'docs/guide/api/examples.md', + 'docs/guide/api/javaexample/SamplePlugin.java', + 'docs/guide/api/goexample/example_test.go', + 'docs/guide/api/goexample/go.mod', + 'docs/guide/api/goexample/go.sum', +]) { + assertMissing(path) +} + +for (const path of ['docs/guide/index.md', 'docs/guide/adoption-plan.md']) { + assertNotIncludes(readDoc(path), '/guide/api/', path) +} + console.log('Docs content assertions passed.') From 534b74565a6ac08c67f1429ccc346dec072e66e0 Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 13 Jul 2026 10:41:11 +0200 Subject: [PATCH 2/2] no-mistakes(document): docs: remove stale Developer API blog claim --- .web/docs/blog/minekube-browser-apis-agents.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.web/docs/blog/minekube-browser-apis-agents.md b/.web/docs/blog/minekube-browser-apis-agents.md index 6a9d507..1c03537 100644 --- a/.web/docs/blog/minekube-browser-apis-agents.md +++ b/.web/docs/blog/minekube-browser-apis-agents.md @@ -76,9 +76,7 @@ The public listing data can be public. Rankings, vote counts, endpoint status, s The most technical Minecraft teams already automate everything they can. They build dashboards, Discord tools, deployment flows, moderation helpers, and custom admin workflows. Minekube should meet them there. -Today, the public Connect API is an early-stage endpoint-token API for Connect Network operations: listing active endpoints the caller can access and requesting online players on accessible endpoints to connect to another endpoint, through generated clients over Connect, gRPC, and gRPC-Web. It authenticates with `Connect-Endpoint` plus `Authorization: Bearer `. - -Future Minekube product APIs can build on that direction with a broader product model around organizations, imported endpoints, domains, endpoint and session state, usage, plans, discovery data, support context, and operational history. +Future Minekube product APIs could introduce a broader product model around organizations, imported endpoints, domains, endpoint and session state, usage, plans, discovery data, support context, and operational history. This is not "AI for the sake of AI." It is infrastructure that should be clear enough for humans, scripts, dashboards, plugins, services, and approved automation to use through the same product surface.