diff --git a/.github/workflows/add-preview-links.yml b/.github/workflows/add-preview-links.yml new file mode 100644 index 000000000..f2f7dec4f --- /dev/null +++ b/.github/workflows/add-preview-links.yml @@ -0,0 +1,29 @@ +on: + workflow_call: + pull_request: + +env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # setting GH_TOKEN for the entire workflow + +jobs: + get-pr-changes: + runs-on: ubuntu-latest + permissions: + issues: write + contents: write + pull-requests: write + repository-projects: write + steps: + - uses: actions/checkout@v3 + - run: | + git remote -v + echo ${{ github.head_ref }} + echo ${{ github.base_ref }} + echo ${{github.ref}} + git fetch origin + git checkout master + git status + gh pr status + gh pr list + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/config/redirects b/config/redirects index 4f3bdd779..10d492657 100644 --- a/config/redirects +++ b/config/redirects @@ -268,42 +268,45 @@ raw: ${prefix}/sync/app-builder/tiered-device-sync/index -> ${base}/edge-server/ raw: ${prefix}/sync/app-builder/edge-server/ -> ${base}/edge-server/ # realm-cli -> appservices-cli -raw: ${prefix}/cli/realm-cli-accessList-create -> ${base}/realm-cli/realm-cli-accessList-create/ -raw: ${prefix}/cli/realm-cli-accessList-delete -> ${base}/realm-cli/realm-cli-accessList-delete/ -raw: ${prefix}/cli/realm-cli-accessList-list -> ${base}/realm-cli/realm-cli-accessList-list/ -raw: ${prefix}/cli/realm-cli-accessList-update -> ${base}/realm-cli/realm-cli-accessList-update/ -raw: ${prefix}/cli/realm-cli-accessList -> ${base}/realm-cli/realm-cli-accessList/ -raw: ${prefix}/cli/realm-cli-apps-create -> ${base}/realm-cli/realm-cli-apps-create/ -raw: ${prefix}/cli/realm-cli-apps-delete -> ${base}/realm-cli/realm-cli-apps-delete/ -raw: ${prefix}/cli/realm-cli-apps-describe -> ${base}/realm-cli/realm-cli-apps-describe/ -raw: ${prefix}/cli/realm-cli-apps-diff -> ${base}/realm-cli/realm-cli-apps-diff/ -raw: ${prefix}/cli/realm-cli-apps-init -> ${base}/realm-cli/realm-cli-apps-init/ -raw: ${prefix}/cli/realm-cli-apps-list -> ${base}/realm-cli/realm-cli-apps-list/ -raw: ${prefix}/cli/realm-cli-apps -> ${base}/realm-cli/realm-cli-apps/ -raw: ${prefix}/cli/realm-cli-function-run -> ${base}/realm-cli/realm-cli-function-run/ -raw: ${prefix}/cli/realm-cli-function -> ${base}/realm-cli/realm-cli-function/ -raw: ${prefix}/cli/realm-cli-login -> ${base}/realm-cli/realm-cli-login/ -raw: ${prefix}/cli/realm-cli-logout -> ${base}/realm-cli/realm-cli-logout/ -raw: ${prefix}/cli/realm-cli-logs-list -> ${base}/realm-cli/realm-cli-logs-list/ -raw: ${prefix}/cli/realm-cli-logs -> ${base}/realm-cli/realm-cli-logs/ -raw: ${prefix}/cli/realm-cli-pull -> ${base}/realm-cli/realm-cli-pull/ -raw: ${prefix}/cli/realm-cli-push -> ${base}/realm-cli/realm-cli-push/ -raw: ${prefix}/cli/realm-cli-reference-v1 -> ${base}/realm-cli/realm-cli-reference-v1/ -raw: ${prefix}/cli/realm-cli-schema-datamodels -> ${base}/realm-cli/realm-cli-schema-datamodels/ -raw: ${prefix}/cli/realm-cli-schema -> ${base}/realm-cli/realm-cli-schema/ -raw: ${prefix}/cli/realm-cli-secrets-create -> ${base}/realm-cli/realm-cli-secrets-create/ -raw: ${prefix}/cli/realm-cli-secrets-delete -> ${base}/realm-cli/realm-cli-secrets-delete/ -raw: ${prefix}/cli/realm-cli-secrets-list -> ${base}/realm-cli/realm-cli-secrets-list/ -raw: ${prefix}/cli/realm-cli-secrets-update -> ${base}/realm-cli/realm-cli-secrets-update/ -raw: ${prefix}/cli/realm-cli-secrets -> ${base}/realm-cli/realm-cli-secrets/ -raw: ${prefix}/cli/realm-cli-users-create -> ${base}/realm-cli/realm-cli-users-create/ -raw: ${prefix}/cli/realm-cli-users-delete -> ${base}/realm-cli/realm-cli-users-delete/ -raw: ${prefix}/cli/realm-cli-users-disable -> ${base}/realm-cli/realm-cli-users-disable/ -raw: ${prefix}/cli/realm-cli-users-enable -> ${base}/realm-cli/realm-cli-users-enable/ -raw: ${prefix}/cli/realm-cli-users-list -> ${base}/realm-cli/realm-cli-users-list/ -raw: ${prefix}/cli/realm-cli-users-revoke -> ${base}/realm-cli/realm-cli-users-revoke/ -raw: ${prefix}/cli/realm-cli-users -> ${base}/realm-cli/realm-cli-users/ -raw: ${prefix}/cli/realm-cli-whoami -> ${base}/realm-cli/realm-cli-whoami/ +# (DOCSP-41342): Fix broken realm-cli redirects to point to /v2 directory +raw: ${prefix}/cli/realm-cli-accessList-create -> ${base}/realm-cli/v2/realm-cli-accessList-create/ +raw: ${prefix}/cli/realm-cli-accessList-delete -> ${base}/realm-cli/v2/realm-cli-accessList-delete/ +raw: ${prefix}/cli/realm-cli-accessList-list -> ${base}/realm-cli/v2/realm-cli-accessList-list/ +raw: ${prefix}/cli/realm-cli-accessList-update -> ${base}/realm-cli/v2/realm-cli-accessList-update/ +raw: ${prefix}/cli/realm-cli-accessList -> ${base}/realm-cli/v2/realm-cli-accessList/ +raw: ${prefix}/cli/realm-cli-apps-create -> ${base}/realm-cli/v2/realm-cli-apps-create/ +raw: ${prefix}/cli/realm-cli-apps-delete -> ${base}/realm-cli/v2/realm-cli-apps-delete/ +raw: ${prefix}/cli/realm-cli-apps-describe -> ${base}/realm-cli/v2/realm-cli-apps-describe/ +raw: ${prefix}/cli/realm-cli-apps-diff -> ${base}/realm-cli/v2/realm-cli-apps-diff/ +raw: ${prefix}/cli/realm-cli-apps-init -> ${base}/realm-cli/v2/realm-cli-apps-init/ +raw: ${prefix}/cli/realm-cli-apps-list -> ${base}/realm-cli/v2/realm-cli-apps-list/ +raw: ${prefix}/cli/realm-cli-apps -> ${base}/realm-cli/v2/realm-cli-apps/ +raw: ${prefix}/cli/realm-cli-function-run -> ${base}/realm-cli/v2/realm-cli-function-run/ +raw: ${prefix}/cli/realm-cli-function -> ${base}/realm-cli/v2/realm-cli-function/ +raw: ${prefix}/cli/realm-cli-login -> ${base}/realm-cli/v2/realm-cli-login/ +raw: ${prefix}/cli/realm-cli-logout -> ${base}/realm-cli/v2/realm-cli-logout/ +raw: ${prefix}/cli/realm-cli-logs-list -> ${base}/realm-cli/v2/realm-cli-logs-list/ +raw: ${prefix}/cli/realm-cli-logs -> ${base}/realm-cli/v2/realm-cli-logs/ +raw: ${prefix}/cli/realm-cli-pull -> ${base}/realm-cli/v2/realm-cli-pull/ +raw: ${prefix}/cli/realm-cli-push -> ${base}/realm-cli/v2/realm-cli-push/ +raw: ${prefix}/cli/realm-cli-schema-datamodels -> ${base}/realm-cli/v2/realm-cli-schema-datamodels/ +raw: ${prefix}/cli/realm-cli-schema -> ${base}/realm-cli/v2/realm-cli-schema/ +raw: ${prefix}/cli/realm-cli-secrets-create -> ${base}/realm-cli/v2/realm-cli-secrets-create/ +raw: ${prefix}/cli/realm-cli-secrets-delete -> ${base}/realm-cli/v2/realm-cli-secrets-delete/ +raw: ${prefix}/cli/realm-cli-secrets-list -> ${base}/realm-cli/v2/realm-cli-secrets-list/ +raw: ${prefix}/cli/realm-cli-secrets-update -> ${base}/realm-cli/v2/realm-cli-secrets-update/ +raw: ${prefix}/cli/realm-cli-secrets -> ${base}/realm-cli/v2/realm-cli-secrets/ +raw: ${prefix}/cli/realm-cli-users-create -> ${base}/realm-cli/v2/realm-cli-users-create/ +raw: ${prefix}/cli/realm-cli-users-delete -> ${base}/realm-cli/v2/realm-cli-users-delete/ +raw: ${prefix}/cli/realm-cli-users-disable -> ${base}/realm-cli/v2/realm-cli-users-disable/ +raw: ${prefix}/cli/realm-cli-users-enable -> ${base}/realm-cli/v2/realm-cli-users-enable/ +raw: ${prefix}/cli/realm-cli-users-list -> ${base}/realm-cli/v2/realm-cli-users-list/ +raw: ${prefix}/cli/realm-cli-users-revoke -> ${base}/realm-cli/v2/realm-cli-users-revoke/ +raw: ${prefix}/cli/realm-cli-users -> ${base}/realm-cli/v2/realm-cli-users/ +raw: ${prefix}/cli/realm-cli-whoami -> ${base}/realm-cli/v2/realm-cli-whoami/ + +raw: ${prefix}/cli/realm-cli-reference-v1 -> ${base}/realm-cli/v1/ +raw: ${prefix}/cli/realm-cli-reference-v1/index -> ${base}/realm-cli/v1/ # Return to using tutorials instead of get started raw: ${prefix}/get-started -> ${base}/tutorials/ diff --git a/docs-release-notes.md b/docs-release-notes.md index 5d24982be..f655c9562 100644 --- a/docs-release-notes.md +++ b/docs-release-notes.md @@ -1,3 +1,34 @@ +# July 5, 2024 + +## Data API + +- Data API Endpoints: Add note indicating that private endpoints do not support Data API Endpoints. +- Custom HTTPS Endpoints: Add note indicating that private endpoints do not support HTTPS Endpoints. + +## Authenticate & Manage Users + +- Define User Metadata: Fix typo and update references using "Realm" to "Atlas Device SDK." + +## Secure Your App + +- Use a VPC Private Endpoint (Preview): Remove guidance on migrating to HTTPS endpoints and Data API. + +## Reference + +- Billing: + + - Update formatting of free tier thresholds to represent independent threshold + model. + - Update page with new billing practice, including new daily free tier limits. + +## Release Notes + +- Update external changelog with release notes for the CLI, Edge Server, Atlas Events, and more. + +## Internal + +- Add files for Netlify workflow. + # June 28, 2024 ## Device Sync @@ -6,7 +37,7 @@ ## Connect to MongoDB Data Sources -- CRUD & Aggregation APIs: Add `distinct` and `explain` to the list of unsupported database commands. Update descriptions for the `$search` and `$out` aggregation pipeline stages. +- CRUD & Aggregation APIs: Add `distinct` and `explain` to the list of unsupported database commands. Update descriptions for the `$search` and `$out` aggregation pipeline stages. # June 21, 2024 @@ -47,7 +78,7 @@ - Update "Example" section to demonstrate nested collections of mixed data. - Update "Geospatial" section with content moved from Schema Types page. - Technical Details - - Conflict Resolution: + - Conflict Resolution: - Add new "Dictionaries" section to clarify how Device Sync handles conflicts with dictionary keys. - Add new "Nested Collections" section. diff --git a/source/images/schema-screen.png b/source/images/schema-screen.png new file mode 100644 index 000000000..bc5105c38 Binary files /dev/null and b/source/images/schema-screen.png differ diff --git a/source/includes/note-windows-zip.rst b/source/includes/note-windows-zip.rst new file mode 100644 index 000000000..1a2eb52fa --- /dev/null +++ b/source/includes/note-windows-zip.rst @@ -0,0 +1,5 @@ +.. note:: + + The default Windows ZIP utility may show the .zip file as empty. If you + encounter this, use one of the third-party zip programs that are + available. \ No newline at end of file diff --git a/source/mongodb/crud-and-aggregation-apis.txt b/source/mongodb/crud-and-aggregation-apis.txt index 08c492aba..61fb252b9 100644 --- a/source/mongodb/crud-and-aggregation-apis.txt +++ b/source/mongodb/crud-and-aggregation-apis.txt @@ -544,9 +544,6 @@ of an :ref:`application user `. * - :manual:`$collStats ` - - * - :manual:`$currentOp ` - - - * - :manual:`$facet ` - diff --git a/source/mongodb/internal-database-usage.txt b/source/mongodb/internal-database-usage.txt index ce68eca79..8f2ea8da6 100644 --- a/source/mongodb/internal-database-usage.txt +++ b/source/mongodb/internal-database-usage.txt @@ -58,8 +58,9 @@ Unsynced Documents If a document in a :ref:`synced ` collection does not conform to the collection's schema, it cannot be synced to client apps. If there -are 100,000 or more unsyncable documents, App Services pauses sync -for the app. +are 100,000 or more unsyncable documents, App Services stops syncing +with the app. You need to manually resolve this by terminating sync, +fixing the unsyncable documents, and then re-enabling sync. App Services stores a information about unsyncable documents in the ``__realm_sync.unsynced_documents`` collection. diff --git a/source/schemas/enforce-a-schema.txt b/source/schemas/enforce-a-schema.txt index f8267484f..66b92be05 100644 --- a/source/schemas/enforce-a-schema.txt +++ b/source/schemas/enforce-a-schema.txt @@ -5,13 +5,13 @@ Define & Enforce a Schema ========================= -.. meta:: +.. meta:: :keywords: code example :description: Learn how to create and deploy an Atlas App Services Schema and define validation rules to enforce it. .. facet:: :name: genre - :values: reference + :values: tutorial .. facet:: :name: programming_language @@ -23,9 +23,6 @@ Define & Enforce a Schema :depth: 1 :class: singlecol -Overview --------- - You can control the shape and contents of documents in a collection by defining a :ref:`schema `. Schemas let you require specific fields, control the type of a field's value, and validate changes before committing write @@ -40,38 +37,41 @@ Define a Schema --------------- You can define a schema for a collection in the App Services UI or with the -App Services CLI. +App Services CLI. -When using the App Services UI, you can choose to: +When using the App Services UI, you can choose to: - Generate a schema from existing data in the collection, and modify as needed. - Define a schema manually by adding field-level schema definitions. .. tabs-realm-admin-interfaces:: - + .. tab:: :tabid: ui - + .. procedure:: - .. step:: Navigate to the Collection Schema Screen + .. step:: Navigate to the Schema Screen - In the left navigation menu, click :guilabel:`Schema` beneath :guilabel:`Data - Access` to open the schema editor. Atlas App Services scans your linked cluster for - existing collections and lists them on the left side of the schema - editor. + In the left navigation menu, click :guilabel:`Schema` beneath + :guilabel:`Data Access` to open the schema editor. The Collections + configuration screen displays in the :guilabel:`Collections` tab. + Atlas App Services scans your linked cluster for existing + collections and lists them on the left side of the schema editor. - Find and select your collection from the menu to open the collection - configuration screen. + Find and select your collection from the menu to show the + collection configuration on the right side of the schema editor. + .. figure:: /images/schema-screen.png + :lightbox: + :alt: The Schema screen in the App Services UI .. step:: Generate a Schema from Existing Data (Optional) If you already have data in your collection, App Services can sample a subset of the documents in the collection and generate a - schema for you based on the sample. If you - already have a schema or prefer to define one manually, skip this - step. + schema for you based on the sample. If you already have a schema or + prefer to define one manually, skip to the next step. You can configure the number of documents to sample and use the MongoDB query language to limit the sample to specific documents. By @@ -80,7 +80,9 @@ When using the App Services UI, you can choose to: To generate a schema from existing data: - 1. Click the :guilabel:`Generate Schema` button to open the sample configuration screen. + 1. From the collection configuration on the right side of the schema + editor, click :guilabel:`Generate Schema` to open the sample configuration + screen. 2. Specify the sample size, up to a maximum of 50,000 documents. @@ -99,9 +101,9 @@ When using the App Services UI, you can choose to: :alt: The Generate Schema sample size input in the App Services UI - .. step:: Define or Modify the Schema - - You can define a schema manually or modify an existing schema by adding field-level schema definitions. + .. step:: Define or Modify the Schema + + You can define a schema manually or modify an existing schema by adding field-level schema definitions. You may define a single BSON schema for each collection. The root-level type of each collection schema is an ``object`` schema that represents a document @@ -261,10 +263,10 @@ When using the App Services UI, you can choose to: :alt: The table that displays schema validation errors in the App Services UI :lightbox: - + .. tab:: :tabid: cli - + .. procedure:: .. step:: Log In to MongoDB Cloud @@ -387,8 +389,8 @@ When using the App Services UI, you can choose to: Validate Null Types ------------------- -App Services's default behavior is to only accept a single type for each field. -Schema fields are not nullable by default because ``null`` is a unique +App Services's default behavior is to only accept a single type for each field. +Schema fields are not nullable by default because ``null`` is a unique :manual:`BSON type `. You can configure App Services to pass schema validation when you use ``null`` @@ -399,9 +401,9 @@ If you do not enable null type schema validation, App Services rejects ``null`` values passed to optional fields. Even if you enable null type validation, required fields are never nullable. -To enable null type schema validation in the App Services UI: +To enable null type schema validation in the App Services UI: #. In the left navigation menu below the :guilabel:`Manage` header, select :guilabel:`App Settings`. #. On the :guilabel:`General` tab, navigate to the :guilabel:`Null Type Schema Validation` section. Toggle the switch to :guilabel:`ON`. -#. Click the :guilabel:`Save` button. +#. Click the :guilabel:`Save` button. diff --git a/source/tutorial/dotnet.txt b/source/tutorial/dotnet.txt index 1ef554e8c..0301e0180 100644 --- a/source/tutorial/dotnet.txt +++ b/source/tutorial/dotnet.txt @@ -101,6 +101,8 @@ on it. instructions to get the client code. For this tutorial, select the :guilabel:`C# (.NET MAUI)` client code. + .. include:: /includes/note-windows-zip.rst + .. tab:: App Services CLI :tabid: cli diff --git a/source/tutorial/flutter.txt b/source/tutorial/flutter.txt index 4bd104186..f0afb719c 100644 --- a/source/tutorial/flutter.txt +++ b/source/tutorial/flutter.txt @@ -109,6 +109,8 @@ on it. Unzip the downloaded app, and you will see the Flutter app. + .. include:: /includes/note-windows-zip.rst + .. tab:: App Services CLI :tabid: cli diff --git a/source/tutorial/kotlin.txt b/source/tutorial/kotlin.txt index 81debc609..e9f456516 100644 --- a/source/tutorial/kotlin.txt +++ b/source/tutorial/kotlin.txt @@ -96,6 +96,8 @@ on it. instructions to get the client code. For this tutorial, select the :guilabel:`Kotlin (Android)` client code. + .. include:: /includes/note-windows-zip.rst + .. tab:: App Services CLI :tabid: cli diff --git a/source/tutorial/react-native.txt b/source/tutorial/react-native.txt index 2e44d1654..bc6a595ca 100644 --- a/source/tutorial/react-native.txt +++ b/source/tutorial/react-native.txt @@ -100,6 +100,8 @@ on it. instructions to get the client code. For this tutorial, select the :guilabel:`JavaScript (React Native)` client code. + .. include:: /includes/note-windows-zip.rst + .. tab:: App Services CLI :tabid: cli diff --git a/source/tutorial/swiftui.txt b/source/tutorial/swiftui.txt index 4410fdb80..9c93858f0 100644 --- a/source/tutorial/swiftui.txt +++ b/source/tutorial/swiftui.txt @@ -97,6 +97,8 @@ on it. instructions to get the client code. For this tutorial, select the :guilabel:`SwiftUI (iOS + SwiftUI)` client code. + .. include:: /includes/note-windows-zip.rst + .. tab:: App Services CLI :tabid: cli