diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..30b6c26 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "yaml.schemas": { + "./schema/navigation.schema.json": [ + "*/navigation.{yml,yaml}" + ] + }, + "[yaml]": { + "editor.tabSize": 2, + "editor.insertSpaces": true + } +} \ No newline at end of file diff --git a/architecture/index.md b/architecture/index.md index d2d6555..8045d58 100644 --- a/architecture/index.md +++ b/architecture/index.md @@ -1,3 +1,7 @@ - DocumentDB Architecture +--- +title: Architecture under the hood +description: Deep dive into DocumentDB's internal architecture, data structures, query processing, storage engine design, and distributed systems. +layout: coming-soon +--- -This section provides detailed information about DocumentDB's architecture and design principles. +We're building something amazing! The technical architecture documentation providing detailed information about DocumentDB's architecture and design principles is coming soon. diff --git a/architecture/navigation.yml b/architecture/navigation.yml new file mode 100644 index 0000000..b52cc14 --- /dev/null +++ b/architecture/navigation.yml @@ -0,0 +1,2 @@ +- title: Architecture under the hood + link: index.md diff --git a/architecture/toc.yml b/architecture/toc.yml deleted file mode 100644 index 49827b2..0000000 --- a/architecture/toc.yml +++ /dev/null @@ -1,15 +0,0 @@ -items: - - name: Introduction - href: intoduction.md - - name: Postgres Processes - href: processes_background.md - - name: DocumentDB Schema - href: documentdb_shcema.md - - name: DocumentDB RUM operator classes - href: op_class.md - - name: DocumentDB Planner - href: planner.md - - name: Intermediate Query Representation - href: spec_tree.md - - name: Postgres Extension Versioning - href: versioning.md diff --git a/documentdb-local/index.md b/documentdb-local/index.md index 4a46a5c..80c9a7a 100644 --- a/documentdb-local/index.md +++ b/documentdb-local/index.md @@ -1,6 +1,11 @@ -# DocumentDB-local -DocumentDB Local provides a lightweight, containerized environment for developing and testing applications locally, including prototyping and integration testing. +--- +title: DocumentDB Local +description: Learn how to install and run DocumentDB Local using Docker for local development and testing. Includes setup instructions, configuration options, and certificate management. +--- + +# DocumentDB Local +DocumentDB Local provides a lightweight, containerized environment for developing and testing applications locally, including prototyping and integration testing. ## Prerequisites @@ -110,4 +115,4 @@ For mongosh info see: https://www.mongodb.com/docs/mongodb-shell/ ## Reporting issues -If you encounter issues with using this version of DoucmenttDB, open an issue in the GitHub repository () and tag it with the label `documentdb-local`. \ No newline at end of file +If you encounter issues with using this version of DoucmenttDB, open an issue in the GitHub repository () and tag it with the label `documentdb-local`. diff --git a/documentdb-local/navigation.yml b/documentdb-local/navigation.yml new file mode 100644 index 0000000..8967d4d --- /dev/null +++ b/documentdb-local/navigation.yml @@ -0,0 +1,2 @@ +- title: DocumentDB Local + link: index.md diff --git a/getting-started/aws-setup.md b/getting-started/aws-setup.md index 78d6f3e..0f107ba 100644 --- a/getting-started/aws-setup.md +++ b/getting-started/aws-setup.md @@ -1,7 +1,12 @@ +--- +title: AWS Setup +description: Deploy and manage DocumentDB alongside AWS for a hybrid database strategy. +--- + # Multi-cloud with AWS DocumentDB Deploy and manage DocumentDB alongside AWS for a hybrid database strategy. ## Important Note -This guide covers deploying the open-source DocumentDB on AWS infrastructure. This is distinct from Amazon's DocumentDB service, which is a different product. While both support MongoDB compatibility, they are separate implementations with different features and capabilities. \ No newline at end of file +This guide covers deploying the open-source DocumentDB on AWS infrastructure. This is distinct from Amazon's DocumentDB service, which is a different product. While both support MongoDB compatibility, they are separate implementations with different features and capabilities. diff --git a/getting-started/azure-setup.md b/getting-started/azure-setup.md index 126dc5d..3960be9 100644 --- a/getting-started/azure-setup.md +++ b/getting-started/azure-setup.md @@ -1,3 +1,8 @@ +--- +title: Azure Setup +description: Deploy and manage DocumentDB on Micrtosoft Azure for a fully managed experience. +--- + # Multi-cloud with Azure Deploy and manage DocumentDB on Micrtosoft Azure for a fully managed experience. @@ -14,4 +19,4 @@ Deploy and manage DocumentDB on Micrtosoft Azure for a fully managed experience. - Custom deployment options - Manual management required -## Setup \ No newline at end of file +## Setup diff --git a/getting-started/gcp-setup.md b/getting-started/gcp-setup.md index c5c12fd..bfc619e 100644 --- a/getting-started/gcp-setup.md +++ b/getting-started/gcp-setup.md @@ -1,3 +1,8 @@ +--- +title: GCP Setup +description: Deploy and manage DocumentDB on Google Cloud Platform using various deployment options. +--- + # Multi-cloud with GCP Deploy and manage DocumentDB on Google Cloud Platform using various deployment options. diff --git a/getting-started/index.md b/getting-started/index.md index 9828196..92317ba 100644 --- a/getting-started/index.md +++ b/getting-started/index.md @@ -1,3 +1,8 @@ +--- +title: Getting Started +description: DocumentDB is an open-source document database platform built on PostgreSQL. It offers developers a fully permissive, open-source platform for document data stores. +--- + # Introduction to DocumentDB DocumentDB is an open-source document database platform built on PostgreSQL. It offers developers a fully permissive, open-source platform for document data stores. diff --git a/getting-started/mongo-shell-quickstart.md b/getting-started/mongo-shell-quickstart.md index d63b8d8..49f38fb 100644 --- a/getting-started/mongo-shell-quickstart.md +++ b/getting-started/mongo-shell-quickstart.md @@ -1,3 +1,8 @@ +--- +title: MongoDB Shell Quick Start +description: Learn how to set up and use DocumentDB with Node.js using the official MongoDB Node.js driver. +--- + # Node.js Setup Guide Learn how to set up and use DocumentDB with Node.js using the official MongoDB Node.js driver. diff --git a/getting-started/mongodb-migration.md b/getting-started/mongodb-migration.md index 29b64fd..949e887 100644 --- a/getting-started/mongodb-migration.md +++ b/getting-started/mongodb-migration.md @@ -1,7 +1,12 @@ +--- +title: MongoDB Migration Guide +description: This guide helps you migrate your existing MongoDB applications to DocumentDB while maintaining compatibility and leveraging PostgreSQL benefits. +--- + # MongoDB to DocumentDB Migration Guide This guide helps you migrate your existing MongoDB applications to DocumentDB while maintaining compatibility and leveraging PostgreSQL benefits. ## Overview -DocumentDB provides full MongoDB wire protocol compatibility, making migration straightforward for most applications. This guide covers the migration process, considerations, and best practices for transitioning from MongoDB to DocumentDB. \ No newline at end of file +DocumentDB provides full MongoDB wire protocol compatibility, making migration straightforward for most applications. This guide covers the migration process, considerations, and best practices for transitioning from MongoDB to DocumentDB. diff --git a/getting-started/navigation.yml b/getting-started/navigation.yml new file mode 100644 index 0000000..fd7b02c --- /dev/null +++ b/getting-started/navigation.yml @@ -0,0 +1,22 @@ +- title: Getting Started + link: index.md +- title: Visual Studio Code Quick Start + link: vscode-quickstart.md +- title: Visual Studio Code Extension Guide + link: vscode-extension-guide.md +- title: Node.js Setup Guide + link: nodejs-setup.md +- title: Python Setup Guide + link: python-setup.md +- title: Pre-built Packages + link: prebuilt-packages.md +- title: AWS Setup + link: aws-setup.md +- title: Azure Setup + link: azure-setup.md +- title: GCP Setup + link: gcp-setup.md +- title: YugabyteDB Setup + link: yugabyte-setup.md +- title: MongoDB Migration Guide + link: mongodb-migration.md diff --git a/getting-started/nodejs-setup.md b/getting-started/nodejs-setup.md index 996d2f5..c1cff0a 100644 --- a/getting-started/nodejs-setup.md +++ b/getting-started/nodejs-setup.md @@ -1,3 +1,8 @@ +--- +title: Node.js Setup Guide +description: Learn how to set up and use DocumentDB with Node.js using the official MongoDB Node.js driver. +--- + # Node.js Setup Guide Learn how to set up and use DocumentDB with Node.js using the official MongoDB Node.js driver. diff --git a/getting-started/prebuilt-packages.md b/getting-started/prebuilt-packages.md index 077db99..6fd2231 100644 --- a/getting-started/prebuilt-packages.md +++ b/getting-started/prebuilt-packages.md @@ -1,3 +1,8 @@ +--- +title: Pre-built Packages +description: Download and install DocumentDB using our pre-built packages for various platforms. +--- + # Pre-built Packages Download and install DocumentDB using our pre-built packages for various platforms. @@ -47,4 +52,4 @@ Download and install DocumentDB using our pre-built packages for various platfor # Run development version docker pull ghcr.io/microsoft/documentdb/documentdb-local:1.1.0-beta.3 - ``` \ No newline at end of file + ``` diff --git a/getting-started/python-setup.md b/getting-started/python-setup.md index dc7914a..9ceabed 100644 --- a/getting-started/python-setup.md +++ b/getting-started/python-setup.md @@ -1,3 +1,8 @@ +--- +title: Python Setup Guide +description: Learn how to set up and use DocumentDB with Python using the official MongoDB Python driver (PyMongo). +--- + # Python Setup Guide Learn how to set up and use DocumentDB with Python using the official MongoDB Python driver (PyMongo). diff --git a/getting-started/vscode-extension-guide.md b/getting-started/vscode-extension-guide.md index bf98552..e477e5d 100644 --- a/getting-started/vscode-extension-guide.md +++ b/getting-started/vscode-extension-guide.md @@ -1,3 +1,8 @@ +--- +title: Visual Studio Code Extension Guide +description: The DocumentDB for VS Code extension is a powerful, open-source GUI that helps you browse, manage, and query DocumentDB and MongoDB databases across any cloud, hybrid, or local environment. +--- + # DocumentDB for VS Code Extension The [DocumentDB for VS Code extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-documentdb) is a powerful, open-source GUI that helps you browse, manage, and query DocumentDB and MongoDB databases across any cloud, hybrid, or local environment. diff --git a/getting-started/vscode-quickstart.md b/getting-started/vscode-quickstart.md index 8fd401b..302709a 100644 --- a/getting-started/vscode-quickstart.md +++ b/getting-started/vscode-quickstart.md @@ -1,3 +1,8 @@ +--- +title: Visual Studio Code Quick Start +description: Get started with DocumentDB using the Visual Studio Code extension for a seamless development experience. +--- + # VS Code Extension Quick Start Get started with DocumentDB using the Visual Studio Code extension for a seamless development experience. @@ -92,4 +97,4 @@ Get started with DocumentDB using the Visual Studio Code extension for a seamles - Explore advanced querying capabilities in the [API Reference](../api-reference/index.md) - Learn about indexing strategies in the [Architecture](../architecture/index.md) section -- Connect your application using one of our [Language Guides](python-setup.md) \ No newline at end of file +- Connect your application using one of our [Language Guides](python-setup.md) diff --git a/getting-started/yugabyte-setup.md b/getting-started/yugabyte-setup.md index c25566a..0c85310 100644 --- a/getting-started/yugabyte-setup.md +++ b/getting-started/yugabyte-setup.md @@ -1,7 +1,12 @@ +--- +title: YugabyteDB Setup +description: Learn how to use DocumentDB alongside YugabyteDB for a comprehensive database solution. +--- + # DocumentDB Usage with YugabyteDB Learn how to use DocumentDB alongside YugabyteDB for a comprehensive database solution. ## Overview -YugabyteDB is a distributed SQL database that is PostgreSQL-compatible. Since DocumentDB is built on PostgreSQL, it can be integrated with YugabyteDB to combine the benefits of both systems. \ No newline at end of file +YugabyteDB is a distributed SQL database that is PostgreSQL-compatible. Since DocumentDB is built on PostgreSQL, it can be integrated with YugabyteDB to combine the benefits of both systems. diff --git a/postgres-api/functions.md b/postgres-api/functions.md new file mode 100644 index 0000000..cd1fe5f --- /dev/null +++ b/postgres-api/functions.md @@ -0,0 +1,61 @@ +--- +title: Functions +description: Complete reference for PostgreSQL extension functions including CRUD operations, collection management, user management, and utilities. +--- + +# Functions + +Comprehensive documentation for PostgreSQL extension functions and their usage patterns. + +## CRUD Operations + +Functions for creating, reading, updating, and deleting documents in collections. + +| Function | Documentation | +|----------|---------------| +| `aggregate_cursor_first_page()` | [documentdb/wiki/Functions#aggregate_cursor_first_page](https://github.com/microsoft/documentdb/wiki/Functions#aggregate_cursor_first_page) +| `count_query()` | [documentdb/wiki/Functions#count_query](https://github.com/microsoft/documentdb/wiki/Functions#count_query) +| `cursor_get_more()` | [documentdb/wiki/Functions#cursor_get_more](https://github.com/microsoft/documentdb/wiki/Functions#cursor_get_more) +| `delete()` | [documentdb/wiki/Functions#delete](https://github.com/microsoft/documentdb/wiki/Functions#delete) +| `distinct_query()` | [documentdb/wiki/Functions#distinct_query](https://github.com/microsoft/documentdb/wiki/Functions#distinct_query) +| `find_and_modify()` | [documentdb/wiki/Functions#find_and_modify](https://github.com/microsoft/documentdb/wiki/Functions#find_and_modify) +| `find_cursor_first_page()` | [documentdb/wiki/Functions#find_cursor_first_page](https://github.com/microsoft/documentdb/wiki/Functions#find_cursor_first_page) +| `insert()` | [documentdb/wiki/Functions#insert](https://github.com/microsoft/documentdb/wiki/Functions#insert) +| `insert_one()` | [documentdb/wiki/Functions#insert_one](https://github.com/microsoft/documentdb/wiki/Functions#insert_one) +| `list_collections_cursor_first_page()` | [documentdb/wiki/Functions#list_collections_cursor_first_page](https://github.com/microsoft/documentdb/wiki/Functions#list_collections_cursor_first_page) +| `list_indexes_cursor_first_page()` | [documentdb/wiki/Functions#list_indexes_cursor_first_page](https://github.com/microsoft/documentdb/wiki/Functions#list_indexes_cursor_first_page) +| `update()` | [documentdb/wiki/Functions#update](https://github.com/microsoft/documentdb/wiki/Functions#update) + +## Collection Management + +Functions for managing collections, views, and databases. + +| | Documentation | +| --- | --- | +| `coll_mod()` | [documentdb/wiki/Functions#coll_mod](https://github.com/microsoft/documentdb/wiki/Functions#coll_mod) +| `create_collection()` | [documentdb/wiki/Functions#create_collection](https://github.com/microsoft/documentdb/wiki/Functions#create_collection) +| `create_collection_view()` | [documentdb/wiki/Functions#create_collection_view](https://github.com/microsoft/documentdb/wiki/Functions#create_collection_view) +| `drop_collection()` | [documentdb/wiki/Functions#drop_collection](https://github.com/microsoft/documentdb/wiki/Functions#drop_collection) +| `drop_database()` | [documentdb/wiki/Functions#drop_database](https://github.com/microsoft/documentdb/wiki/Functions#drop_database) +| `rename_collection()` | [documentdb/wiki/Functions#rename_collection](https://github.com/microsoft/documentdb/wiki/Functions#rename_collection) +| `shard_collection()` | [documentdb/wiki/Functions#shard_collection](https://github.com/microsoft/documentdb/wiki/Functions#shard_collection) + +## User Management + +Functions for creating, updating, and managing database users. + +| | Documentation | +| --- | --- | +| `create_user()` | [documentdb/wiki/Functions#create_user](https://github.com/microsoft/documentdb/wiki/Functions#create_user) +| `drop_user()` | [documentdb/wiki/Functions#drop_user](https://github.com/microsoft/documentdb/wiki/Functions#drop_user) +| `update_user()` | [documentdb/wiki/Functions#update_user](https://github.com/microsoft/documentdb/wiki/Functions#update_user) +| `users_info()` | [documentdb/wiki/Functions#users_info](https://github.com/microsoft/documentdb/wiki/Functions#users_info) + +## Utility Functions + +Functions for retrieving version information and other utility operations. + +| Function | Documentation | +| --- | --- | +| `binary_extended_version()` | [documentdb/wiki/Functions#binary_extended_version](https://github.com/microsoft/documentdb/wiki/Functions#binary_extended_version) +| `binary_version()` | [documentdb/wiki/Functions#binary_version](https://github.com/microsoft/documentdb/wiki/Functions#binary_version) diff --git a/postgres-api/index.md b/postgres-api/index.md index 6afb041..c1b377d 100644 --- a/postgres-api/index.md +++ b/postgres-api/index.md @@ -1,3 +1,36 @@ -# PostgreSQL API +--- +title: Components +description: Learn about pg_documentdb_core and pg_documentdb_api PostgreSQL extensions that enable BSON support and document operations in Postgres. +--- -DocumentDB provides PostgreSQL compatibility, allowing you to use PostgreSQL tools and drivers to interact with DocumentDB. \ No newline at end of file +# Components + +The DocumentDB implementation consists of two key PostgreSQL extensions that work together to provide MongoDB-compatible document database functionality within PostgreSQL. + +## pg_documentdb_core + +pg_documentdb_core is a PostgreSQL extension that introduces BSON datatype support and operations for native Postgres. This core component is essential for enabling document-oriented NoSQL capabilities within a PostgreSQL environment. It provides the foundational data structures and functions required to handle BSON data types, which are crucial for performing CRUD operations on documents. + +### Key Features + +- **BSON Datatype Support:** Adds BSON (Binary JSON) datatype to PostgreSQL, allowing for efficient storage and manipulation of JSON-like documents. + +- **Native Operations:** Implements native PostgreSQL operations for BSON data, ensuring seamless integration and performance. + +- **Extensibility:** Serves as the core building block for additional functionalities and extensions within the DocumentDB ecosystem. + +## pg_documentdb_api + +pg_documentdb_api is the public API surface for DocumentDB, providing CRUD functionality on documents stored in the database. This component leverages the capabilities of pg_documentdb_core to offer a comprehensive set of APIs for managing document data within PostgreSQL. + +### Key Features + +- **CRUD Operations:** Provides a rich set of APIs for creating, reading, updating, and deleting documents. + +- **Advanced Queries:** Supports complex queries, including full-text searches, geospatial queries, and vector embeddings. + +- **Integration:** Works seamlessly with pg_documentdb_core to deliver robust document management capabilities. + +### Usage + +To use pg_documentdb_api, you need to have pg_documentdb_core installed and configured in your PostgreSQL environment. Once set up, you can leverage the APIs provided by pg_documentdb_api to perform various document operations. diff --git a/postgres-api/navigation.yml b/postgres-api/navigation.yml new file mode 100644 index 0000000..bf0b376 --- /dev/null +++ b/postgres-api/navigation.yml @@ -0,0 +1,4 @@ +- title: Components + link: index.md +- title: Functions + link: functions.md diff --git a/schema/navigation.schema.json b/schema/navigation.schema.json new file mode 100644 index 0000000..98c0e5c --- /dev/null +++ b/schema/navigation.schema.json @@ -0,0 +1,67 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Articles Navigation Configuration", + "description": "Schema for defining the navigation menu structure for article sections. This configuration creates sidebar or hierarchical navigation menus that help users browse through related documentation pages within a specific topic area.", + "type": "array", + "minItems": 1, + "maxItems": 50, + "items": { + "type": "object", + "description": "A single navigation item representing a page or section within the documentation. Each item creates a clickable link in the navigation menu that directs users to specific content.", + "required": [ + "title", + "link" + ], + "properties": { + "title": { + "type": "string", + "description": "The display text for this navigation item as it appears in the menu. Should be concise yet descriptive enough to clearly indicate the page content. Use consistent terminology and formatting across navigation items for better user experience.", + "minLength": 1, + "maxLength": 100, + "examples": [ + "Python Setup Guide", + "VS Code Extension Quick Start", + "MongoDB Shell Quick Start", + "Architecture under the hood", + "Components", + "Functions", + "Getting Started", + "Configuration Options" + ] + }, + "link": { + "type": "string", + "description": "The URL path where this navigation item links to. For internal documentation pages, use relative paths to Markdown files. External links can use absolute URLs with http:// or https:// protocols.", + "pattern": "^(\\./.*\\.md$|/.*\\.md$|[^/]+\\.md$|https?://.+)", + "minLength": 1, + "maxLength": 500, + "examples": [ + "file-name.md", + "/sub-folder/file-name.md", + "https://external-website.domain" + ] + }, + "description": { + "type": "string", + "description": "Optional brief description or subtitle for this navigation item. Can be used to provide additional context about the page content, displayed as helper text in the navigation menu.", + "minLength": 1, + "maxLength": 200, + "examples": [ + "Learn how to set up your Python development environment", + "Quick installation guide for the VS Code extension", + "Deep dive into the DocumentDB architecture" + ] + }, + "children": { + "type": "array", + "description": "Optional array of nested navigation items that appear as sub-items under this parent item. Use this to create hierarchical navigation structures with collapsible sections. Supports multiple levels of nesting for complex documentation structures.", + "minItems": 1, + "maxItems": 30, + "items": { + "$ref": "#/items" + } + } + }, + "additionalProperties": false + } +} \ No newline at end of file