Skip to content

Commit

Permalink
docs(browser): Added section outlines for browser features and integr…
Browse files Browse the repository at this point in the history
…ations (#52)

* docs(browser) Adjust wording on browser index and vision.md

* Add .pnp.cjs and .pnp.loader.mjs to .gitignore

* docs: removed local build files

* docs: update .gitignore

* docs: Update .gitignore to include /docs/.vitepress/cache/ and /.yarn/

* docs(browser): Update navigation links in config.ts for Community Engagement and API

* Update navigation links in config.ts for Community Engagement and API
  • Loading branch information
tygastoFX authored Apr 17, 2024
1 parent f2ede9c commit cdb97e5
Show file tree
Hide file tree
Showing 15 changed files with 274 additions and 6 deletions.
4 changes: 4 additions & 0 deletions .web/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
/docs/.vitepress/dist/
/docs/.vitepress/cache/
/node_modules/
/.yarn/
.pnp.cjs
.pnp.loader.mjs
23 changes: 21 additions & 2 deletions .web/docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -225,11 +225,30 @@ export default defineConfig({
]
},
{
text: 'Launching', link: '/browser/launch/', items: [
text: 'Launch Guides', link: '/browser/launch/', items: [
{text: 'Launch Your Server', link: '/browser/launch/server'},
{text: 'Launch Your Game', link: '/browser/launch/game'},
]
}
},
{
text: 'Community Engagement', link: '/browser/engage/', items: [
{text: 'Best Practices', link: '/browser/engage/tips'},
{text: 'Update Launches', link: '/browser/engage/updates'},
{text: 'Event Management', link: '/browser/engage/events'},
]
},
{
text: 'API', link: '/browser/api/', items: [
{text: 'Authentication', link: '/browser/api/auth'},
{text: 'Versioning', link: '/browser/api/versions'},
{text: 'Endpoints', link: '/browser/api/endpoints'},
{text: 'Rate Limits', link: '/browser/api/ratelimits'},
{text: 'SDK and Resources', link: '/browser/api/developers'},
]
},
{
text: 'FAQ', link: '/browser/faq/', items: []
},
]
},
services,
Expand Down
42 changes: 42 additions & 0 deletions .web/docs/browser/api/auth.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Minekube Browser - API Authentication

## Overview
Authentication in the Minekube Browser API is handled through API keys. This section explains how to obtain and use your API keys to access the API securely.

## Generating API Keys
1. **Login to Dashboard:** Access the [Minekube Dashboard](https://dashboard.minekube.com) with your user credentials.
2. **Navigate to API Section:** Locate the API management section.
3. **Create New Key:** Follow the prompts to generate a new API key.
4. **Set Permissions:** Assign the necessary permissions based on your application needs.

## Using API Keys
- **Include in Headers:** Always include your API key in the request headers:
```http
Authorization: Bearer <your_api_key>
### Endpoint Protection
- **Unauthorized Access:** All protected endpoints will return a `401 Unauthorized` response if a valid API key is not included in the request headers.
## Rate Limiting
- **Purpose:** To prevent abuse and ensure fair usage, API requests are rate-limited. View specific rate limit details in the [Rate Limits](ratelimits.md) section.
- **Limits:** Rate limits are defined by the number of requests per minute, varying by API key.
## Security Best Practices:
::: tip
**Ensure secure storage of your API keys to prevent unwanted abuse. View our [Security Guide](../../guide/protections.html) for more info**
:::
### 1. Key Rotation
- **Security Recommendation:** Periodic rotation of API keys is advised to maintain security.
- **Regeneration:** Keys can be regenerated through the dashboard as needed.
### 2. IP Whitelisting
- **Added Security:** API keys can be associated with specific IP addresses or ranges, restricting access to whitelisted IPs only.
### 3. Fine Tuned Access
- **Access Control:** API keys are assigned different permission levels to control access to various endpoints or features within your [Minekube Organization](../../guide/quick-start.md).
## Next Steps
- **API Versioning:** Detailed documentation on versioning for proper use of API keys is available in the [Versioning](./versions.md) section.
- **API Endpoints:** View available endpoints and example responses in [Endpoints](./endpoints.md) section.
16 changes: 16 additions & 0 deletions .web/docs/browser/api/developers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Minekube Browser - SDK and Resources

## Overview
We provide SDKs and additional resources to facilitate easy integration of our API into your applications.

## SDK Downloads
Download our SDKs tailored for different programming environments:

- [Java SDK](/browser/api/developers/java)

## Integration Examples
Example using the Java SDK to access server listings:

```java
MinekubeAPI api = new MinekubeAPI("<your_api_key>");
ServerList servers = api.getServers();
49 changes: 49 additions & 0 deletions .web/docs/browser/api/endpoints.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Brower API Endpoints

The Minekube Browser API provides a range of endpoints to interact with the platform:

## Server Listing

### `GET /servers`
- **Description:** Retrieve a list of all public servers.

### `GET /servers/{id}`
- **Description:** Get details of a specific server by its ID.

## User Authentication

### `POST /auth/login`
- **Description:** Authenticate a user and retrieve an access token.

### `GET /auth/me`
- **Description:** Get the currently authenticated user's details.

### `PUT /auth/me`
- **Description:** Update the currently authenticated user's details.

## Server Management

### `GET /my-servers`
- **Description:** Retrieve a list of servers owned by the authenticated user.

### `GET /my-servers/{id}`
- **Description:** Get details of a specific server owned by the authenticated user.

### `PUT /my-servers/{id}`
- **Description:** Update the details of a specific server owned by the authenticated user.

## Player Statistics

### `GET /stats/players`
- **Description:** Retrieve overall player statistics, including total players, online players, and unique players.

### `GET /stats/players/top`
- **Description:** Get a list of the top servers by player count.

## Error Responses

- **400 Bad Request:** Invalid request format or missing parameters.
- **401 Unauthorized:** Authentication failed or invalid API key.
- **403 Forbidden:** Access forbidden due to insufficient permissions.
- **404 Not Found:** Requested resource not found.
- **500 Internal Server Error:** An unexpected server error occurred.
64 changes: 64 additions & 0 deletions .web/docs/browser/api/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Minekube Browser - API Documentation

Welcome to the Minekube Browser API documentation. This guide provides all the necessary details to integrate with our API, focusing on server listings initially, with plans to expand to games, plugins, and mods.

## Table of Contents

- [Authentication](#authentication)
- [Versioning](#versioning)
- [Endpoints](#endpoints)
- [Rate Limits](#rate-limits)
- [SDK and Resources](#sdk-and-resources)

## Authentication

Secure access to the API is controlled through API keys and other authentication mechanisms. Here, you'll find how to obtain and manage your API keys, including:

- **Generating API Keys:** Step-by-step guide to generate your unique API keys through the Minekube Browser dashboard.
- **Using API Keys:** How to include your API key in API requests to authenticate.
- **Security Best Practices:** Recommendations for securing your API keys.

[Explore Authentication Details](/browser/api/auth)

## Versioning

To maintain stability and backward compatibility, our API implements a versioning system. This section covers:

- **Version Formats:** Explanation of our semantic versioning format.
- **Handling Versions:** How to specify API versions in your requests.
- **Deprecation and Migration:** Guidelines on deprecated features and migrating to newer API versions.

[Learn More About Versioning](/browser/api/versions)

## Endpoints

This section describes all the available API endpoints, their functions, and how to use them. Highlights include:

- **Server Listing Endpoints:** Access information about servers, including details, listings, and management functions.
- **User and Authentication Endpoints:** How to manage user authentication and user-specific data.

[Detailed Endpoint Information](/browser/api/endpoints)

## Rate Limits

Understanding the rate limits is crucial to ensure fair use and system stability. This section provides:

- **Rate Limit Rules:** Specific limits on the number of requests that can be made to the API.
- **Best Practices:** Tips on how to handle and respond to rate limit conditions.

[Check Our Rate Limit Policies](/browser/api/ratelimits)

## SDK and Resources

For developers looking to integrate quickly, we offer SDKs and other resources. This section includes:

- **SDK Downloads:** Links to our official SDKs for various programming environments.
- **Integration Examples:** Practical examples showing how to use the API in common scenarios.
- **Developer Support:** Information on how to get help if you encounter issues or have questions.

[Access SDK and Developer Resources](/browser/api/developers)


## Support
If you have any questions or issues please join our [Discord](https://minekube.com/discord)

Empty file.
38 changes: 38 additions & 0 deletions .web/docs/browser/api/versions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Minekube Browser - API Versioning

## Overview
To ensure backward compatibility and smooth updates, the Minekube Browser API follows a clear versioning system.

## Version Numbering
API versions are indicated by a semantic version number, e.g., `v1`, `v2`. This number is included in the base URL of each API endpoint.

## Version Stability
- **Major Updates:** Transitioning from `v1` to `v2` may introduce breaking changes.
- **Minor Updates:** Upgrades such as `v1.0` to `v1.1` will remain backward-compatible.

## Deprecation Policy
Deprecated endpoints or features will be clearly marked in the documentation, including the expected removal date.

## Version Migration
When a new major version is released, a migration path will be provided to help users transition smoothly to the new version.

## Version Header
API requests can include an optional `Accept-Version` header to specify the desired API version. If not provided, the latest stable version will be used.

## Versioning in Responses
API responses may include an `API-Version` header, indicating the version used to process the request.

## Version-Specific Documentation
The API documentation will provide separate sections for each major version, outlining any changes or additions.

## Release Notes
Release notes will be provided for each API version, detailing any changes, improvements, or fixes.

## Sunset Policy
Deprecated versions will continue to be supported for a defined period, after which they may be sunset. Advance notice will be provided before sunsetting a version.

## Client Libraries
Official client libraries will be updated to support new API versions, and older versions will be maintained for a reasonable period.

## Version Negotiation
The API may support version negotiation in the future, allowing clients to specify their preferred version and receive a response in that version.
Empty file.
Empty file.
Empty file.
Empty file.
27 changes: 27 additions & 0 deletions .web/docs/browser/faq/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Minekube Browser FAQs

Welcome to the FAQ for Minekube Browser. Here you will find answers to common questions about the platform, its features, and how you can get involved in the community.

## What is the Minekube Browser?

>The Minekube Browser is a revolutionary Minecraft server list and marketplace, offering a comprehensive platform for players, developers, and hosting providers. It goes beyond a simple server list by providing tools and services for building, listing, and launching Minecraft games.
## How is Minekube Browser different from other server lists?

> Minekube Browser is more than just a directory of servers. It offers a launchpad for server experiences, providing robust infrastructure services like Minekube Games for server management and Minekube Connect for simplified connectivity. It also focuses on community engagement and offers features to facilitate collaboration and content discovery.
## Who is Minekube Browser for?

> Minekube Browser caters to a wide range of the Minecraft community, including players seeking new adventures, developers crafting game worlds, and hosting providers scaling their services. Our platform is designed to be accessible and beneficial to all segments of the Minecraft community.
## What benefits does Minekube Browser offer to players?

> Players can discover an extensive range of Minecraft games and experiences, all in one place. Minekube Browser offers a curated selection of servers, ensuring a high-quality and diverse gaming experience. Players can also connect with other community members, participate in events, and provide feedback to shape the future of the platform.
## How can developers benefit from Minekube Browser?

> Developers can leverage the Minekube Browser platform to showcase their Minecraft creations, gain exposure, and build a dedicated customer base. We provide tools and services to simplify server management, connectivity, and community engagement, allowing developers to focus on crafting immersive games.
## How can I contribute to the Minekube Browser community?

> We encourage active participation and feedback from the community. Join our [Discord](https://minekube.com/discord) server to connect with other players, developers, and Minekube team members. You can share your ideas, provide feedback, report issues, and contribute to the overall growth and improvement of the Minekube Browser platform.
13 changes: 11 additions & 2 deletions .web/docs/browser/index.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# Welcome to Minekube Browser Documentation
# Minekube Browser Documentation <VPBadge>POC</VPBadge>

::: warning
The Minekube Browser is currently in its developmental phase. We invite you to join our [Discord](https://minekube.com/discord) community and contribute by sharing your valuable feedback!
:::

## Introduction

Expand All @@ -8,6 +12,11 @@ The Minekube Browser is more than a server list; it's a comprehensive marketplac

Our documentation is designed to be accessible and informative for a public audience, players, developers and providers, focusing on the practicalities and benefits of our platform and delving into the integration details for power users. As we walk you through the Minekube Browser, you'll understand how it caters to the needs of various stakeholders in the Minecraft ecosystem.


## Spread the word
Join us as we explore the features, vision, and community that make Minekube Browser a beacon of innovation in the Minecraft universe. We invite you to be an active participant in this journey, to collaborate, contribute, and most importantly, to enjoy the experience that the Minekube Browser offers.

Welcome aboard the new chapter of Minecraft server exploration and game building — Welcome to the Minekube Platform.
## Getting Started
Welcome aboard the new chapter of Minecraft server exploration and game building — Welcome to the Minekube Platform.

To get started, check out our [Quicklaunch Guides](./launch/) and [FAQ](./faq/).
4 changes: 2 additions & 2 deletions .web/docs/browser/platform.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Minekube Browser: A Comprehensive Platform

The Minekube Browser transcends the traditional boundaries of Minecraft server lists. It's a vibrant marketplace for developers to share their Minecraft creations and for players to embark on new gaming adventures. By connecting players, developers, and hosting providers on a single platform, Minekube Browser facilitates a seamless transition from game selection to server launch.
The Minekube Browser transcends the traditional boundaries of Minecraft server lists. It's a vibrant marketplace for developers and entrepreneurs to share their Minecraft creations and for players to embark on new gaming adventures. By connecting players, developers, and hosting providers on a single platform, Minekube Browser facilitates a seamless transition from game selection to server launch.

## Marketplace for Minecraft Games and Server Experiences

Expand All @@ -15,5 +15,5 @@ Minekube Browser is integrated with Minekube's broader suite of tools and servic
- **Minekube Connect:** Our networking solution simplifies connectivity, offering public, DDoS-protected endpoints, making the multiplayer experience as smooth as single-player.
- **Minekube Games:** An administrative dashboard allowing server management with ease, tailored for both server admins and players to streamline their gaming experience.

Through Minekube Browser, we're not just connecting people to games; we're connecting them to an experience that's enriched by the community and supported by robust technology. It's here that the creativity of the Minecraft community truly comes to life, supported by an infrastructure that understands and enhances the gaming landscape.
Through Minekube Browser, we're not just connecting people to games; we're connecting them to an experience that's enriched by the community and supported by robust technology. It's here that the creativity of the Minecraft community truly comes to life, supported by an infrastructure that is primed for the next generation of cloud gaming experiences.

0 comments on commit cdb97e5

Please sign in to comment.