Skip to content

Commit

Permalink
DRIVERS-2870 Clean up rendering (#1594)
Browse files Browse the repository at this point in the history
  • Loading branch information
blink1073 committed Jul 3, 2024
1 parent 9e6d510 commit 3ebc256
Show file tree
Hide file tree
Showing 14 changed files with 113 additions and 169 deletions.
4 changes: 2 additions & 2 deletions source/auth/auth.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Driver Authentication
# Authentication

- Status: Accepted
- Minimum Server Version: 2.6
Expand Down Expand Up @@ -1253,7 +1253,7 @@ in the MONGODB-OIDC specification, including sections or blocks that specificall
performed after SRV record resolution, if applicable. This property is only required for drivers that support the
[Human Authentication Flow](#human-authentication-flow).

<div id="built-in-provider-integrations">
<span id="built-in-provider-integrations"/>

#### Built-in OIDC Environment Integrations

Expand Down
2 changes: 1 addition & 1 deletion source/benchmarking/benchmarking.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# MongoDB Driver Performance Benchmarking
# Performance Benchmarking

- Status: Accepted
- Minimum Server Version: N/A
Expand Down
36 changes: 15 additions & 21 deletions source/client-side-encryption/client-side-encryption.md
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ as described in [Handling of Native UUID Types](../uuid.rst).

### MongoClient Changes

<span id="MongoClient" />
<span id="MongoClient"></span>

```typescript
class MongoClient {
Expand All @@ -315,7 +315,7 @@ class MongoClient {
}
```

<span id="AutoEncryptionOpts" />
<span id="AutoEncryptionOpts"></span>

```typescript
class AutoEncryptionOpts {
Expand Down Expand Up @@ -423,12 +423,8 @@ Drivers MUST document that an additional `MongoClient` may be created, using the
See
[What's the deal with metadataClient, keyVaultClient, and the internal client?](#whats-the-deal-with-metadataclient-keyvaultclient-and-the-internal-client)

<span id="GCPKMSOptions" />
<span id="AWSKMSOptions" />
<span id="KMSProvider" />
<span id="KMSProviders" />
<span id="AzureAccessToken" />
<span id="kmsproviders" />
<span id="GCPKMSOptions"></span> <span id="AWSKMSOptions"></span> <span id="KMSProvider"></span>
<span id="KMSProviders"></span> <span id="AzureAccessToken"></span> <span id="kmsproviders"></span>

#### kmsProviders

Expand Down Expand Up @@ -570,7 +566,7 @@ Once requested, drivers MUST create a new [KMSProviders](#kmsproviders) $P$ acco
$t_0 + d\_{exp}$.
6. Return $P$ as the additional KMS providers to [libmongocrypt](#libmongocrypt).

<span id="obtaining-gcp-credentials" />
<span id="obtaining-gcp-credentials"></span>

##### Obtaining GCP Credentials

Expand Down Expand Up @@ -744,7 +740,7 @@ Drivers MUST implement extraOptions in a way that allows deprecating/removing op
break, such as with a BSON document or map type instead of a struct type with fixed fields. See
[Why are extraOptions and kmsProviders maps?](#why-are-extraoptions-and-kmsproviders-maps).

<span id="extraoptions.cryptsharedlibpath" />
<span id="extraoptions.cryptsharedlibpath"></span>

##### `extraOptions.cryptSharedLibPath`

Expand All @@ -757,7 +753,7 @@ Allow the user to specify an absolute path to a [crypt_shared](#crypt_shared) dy
- [Path Resolution Behavior](#path-resolution-behavior)
- [Enabling crypt_shared](#enabling-crypt_shared)

<span id="extraoptions.cryptsharedlibrequired" />
<span id="extraoptions.cryptsharedlibrequired"></span>

##### `extraOptions.cryptSharedLibRequired`

Expand All @@ -770,8 +766,7 @@ If, after initializing a `libmongocrypt_handle`, [crypt_shared](#crypt_shared) i
[extraOptions.cryptSharedLibRequired](#extraoptions.cryptsharedlibrequired) is `true`, the driver MUST consider the
`libmongocrypt_handle` to be invalid and return an error to the user. Refer:

<span id="managing-mongocryptd" />
<span id="detecting-crypt_shared-availability" />
<span id="managing-mongocryptd"></span> <span id="detecting-crypt_shared-availability"></span>

#### encryptedFieldsMap

Expand Down Expand Up @@ -802,7 +797,7 @@ See [Why is bypassQueryAnalysis needed?](#why-is-bypassqueryanalysis-needed).

A collection supporting Queryable Encryption requires an index and three additional collections.

<span id="GetEncryptedFields" />
<span id="GetEncryptedFields"></span>

#### Collection `encryptedFields` Lookup (GetEncryptedFields)

Expand Down Expand Up @@ -996,9 +991,9 @@ class ClientEncryption {
}
```

<span id="ClientEncryptionOpts" />
<span id="ClientEncryptionOpts"></span>

<span id="KMSProvidersTLSOptions" />
<span id="KMSProvidersTLSOptions"></span>

```typescript
interface ClientEncryptionOpts {
Expand Down Expand Up @@ -1361,7 +1356,7 @@ Drivers MUST propagate errors from libmongocrypt in whatever way is idiomatic to
etc.). These errors MUST be distinguished in some way (e.g. exception type) to make it easier for users to distinguish
when a command fails due to client side encryption.

<span id="enabling-crypt_shared" />
<span id="enabling-crypt_shared"></span>

## Enabling Command Marking with the `crypt_shared` Library

Expand All @@ -1381,8 +1376,7 @@ facilitate driver testing with [crypt_shared](#crypt_shared) (Refer:
> The driver MUST NOT manipulate or do any validation on the [crypt_shared](#crypt_shared) path options provided in
> [extraOptions](#extraoptions). They should be passed through to [libmongocrypt](#libmongocrypt) unchanged.

<span id="search-path" />
<span id="search-paths" />
<span id="search-path"></span> <span id="search-paths"></span>

### Setting Search Paths

Expand All @@ -1401,7 +1395,7 @@ execution from the ambient state of the host system.
Refer to: [Path Resolution Behavior](#path-resolution-behavior) and
[Search Paths for Testing](#search-paths-for-testing)

<span id="override-path" />
<span id="override-path"></span>

### Overriding the `crypt_shared` Library Path

Expand Down Expand Up @@ -1475,7 +1469,7 @@ successfully loaded by asking [libmongocrypt](#libmongocrypt) for the [crypt_sha
the result is an empty string, [libmongocrypt](#libmongocrypt) did not load [crypt_shared](#crypt_shared) and the driver
must rely on [mongocryptd](#mongocryptd) to mark command documents for encryption.

<span id="disabling-crypt_shared" />
<span id="disabling-crypt_shared"></span>

### "Disabling" `crypt_shared`

Expand Down
2 changes: 1 addition & 1 deletion source/client-side-encryption/subtype6.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ data into one BSON value that can be treated as an opaque blob in most contexts.
If we used separate subtypes, we'd need to reserve three (and possibly more in the future) of our 124 remaining
subtypes.

<span id="intent-to-encrypt"/>
<span id="intent-to-encrypt"></span>

### Why are intent-to-encrypt markings needed?

Expand Down
2 changes: 1 addition & 1 deletion source/crud/crud.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Driver CRUD API
# CRUD API

- Status: Accepted
- Minimum Server Version: 2.6
Expand Down
2 changes: 1 addition & 1 deletion source/extended-json.md
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,7 @@ The two formats in this specification address these two categories of use cases.
Parsers need to accept any valid Extended JSON string that a generator can produce. Parsers and generators are permitted
to accept and output strings in other formats as well for backwards compatibility.

<div id="levels of nesting">
<span id="levels of nesting"></span>

Acceptable nesting depth has implications for resource usage so unlimited nesting is not permitted.

Expand Down
10 changes: 5 additions & 5 deletions source/index.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
# MongoDB Specifications

- [Authentication](auth/auth.md)
- [BSON Binary Subtype 6](client-side-encryption/subtype6.md)
- [BSON Corpus](bson-corpus/bson-corpus.md)
- [BSON Decimal128 Type Handling in Drivers](bson-decimal128/decimal128.md)
- [Bulk Write](crud/bulk-write.md)
- [CRUD API](crud/crud.md)
- [Causal Consistency Specification](causal-consistency/causal-consistency.md)
- [Change Streams](change-streams/change-streams.md)
- [Client Side Encryption](client-side-encryption/client-side-encryption.md)
- [Client Side Operations Timeout](client-side-operations-timeout/client-side-operations-timeout.md)
- [Collation](collation/collation.md)
- [Connection Monitoring and Pooling](connection-monitoring-and-pooling/connection-monitoring-and-pooling.md)
- [Connection String Spec](connection-string/connection-string-spec.md)
- [Driver Authentication](auth/auth.md)
- [Driver CRUD API](crud/crud.md)
- [Driver Mantras](./driver-mantras.md)
- [Driver Sessions Specification](sessions/driver-sessions.md)
- [Driver Transactions Specification](transactions/transactions.md)
- [Extended JSON](./extended-json.md)
- [FaaS Automated Testing](faas-automated-testing/faas-automated-testing.md)
- [GridFS Spec](gridfs/gridfs-spec.md)
Expand All @@ -26,8 +24,8 @@
- [Logging](logging/logging.md)
- [Max Staleness](max-staleness/max-staleness.md)
- [Max Staleness Tests](max-staleness/max-staleness-tests.md)
- [MongoDB Driver Performance Benchmarking](benchmarking/benchmarking.md)
- [OP_MSG](message/OP_MSG.md)
- [Performance Benchmarking](benchmarking/benchmarking.md)
- [Retryable Reads](retryable-reads/retryable-reads.md)
- [Retryable Writes](retryable-writes/retryable-writes.md)
- [SDAM Logging and Monitoring Specification](server-discovery-and-monitoring/server-discovery-and-monitoring-logging-and-monitoring.md)
Expand All @@ -37,7 +35,9 @@
- [Server Monitoring](server-discovery-and-monitoring/server-monitoring.md)
- [Server Selection](server-selection/server-selection.md)
- [Server Selection Test Plan](server-selection/server-selection-tests.md)
- [Sessions Specification](sessions/driver-sessions.md)
- [Snapshot Reads Specification](sessions/snapshot-sessions.md)
- [Transactions Specification](transactions/transactions.md)
- [URI Options Specification](uri-options/uri-options.md)
- [Unified Test Format](unified-test-format/unified-test-format.md)
- [Wire Compression in Drivers](compression/OP_COMPRESSED.md)
2 changes: 1 addition & 1 deletion source/load-balancers/load-balancers.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ SRV record as is done for non-load balanced sharded clusters.

### Server Discovery Logging and Monitoring

<div id="monitoring">
<span id="monitoring"></span>

#### Monitoring

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -368,59 +368,14 @@ The following table describes the rules for determining if a topology type has r
preference is passed to `hasReadableServer`, the driver MUST default the value to the default read preference,
`primary`, or treat the call as if `primary` was provided.

<table style="width:99%;">
<colgroup>
<col style="width: 22%" />
<col style="width: 38%" />
<col style="width: 38%" />
</colgroup>
<thead>
<tr class="header">
<th>Topology Type</th>
<th><code>hasReadableServer</code></th>
<th><code>hasWritableServer</code></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Unknown</td>
<td><code>false</code></td>
<td><code>false</code></td>
</tr>
<tr class="even">
<td>Single</td>
<td><code>true</code> if the server is available</td>
<td><code>true</code> if the server is available</td>
</tr>
<tr class="odd">
<td>ReplicaSetNoPrimary</td>
<td><div class="line-block">Called with <code>primary</code>:
<code>false</code><br />
Called with any other option: uses the read preference to determine if
any server in the cluster is suitable for reading.<br />
Called with no option: <code>false</code></div></td>
<td><code>false</code></td>
</tr>
<tr class="even">
<td>ReplicaSetWithPrimary</td>
<td><div class="line-block">Called with any valid option: uses the read
preference to determine if any server in the cluster is suitable for
reading.<br />
Called with no option: <code>true</code></div></td>
<td><code>true</code></td>
</tr>
<tr class="odd">
<td>Sharded</td>
<td><code>true</code> if 1+ servers are available</td>
<td><code>true</code> if 1+ servers are available</td>
</tr>
<tr class="even">
<td>LoadBalanced</td>
<td><code>true</code></td>
<td><code>true</code></td>
</tr>
</tbody>
</table>
| Topology Type | `hasReadableServer` | `hasWritableServer` |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
| Unknown | `false` | `false` |
| Single | `true` if the server is available | `true` if the server is available |
| ReplicaSetNoPrimary | Called with `primary`: `false` <br>Called with any other option: uses the read preference to determine if any server in the cluster is suitable for reading. <br>Called with no option: `false` | `false` |
| ReplicaSetWithPrimary | Called with any valid option: uses the read preference to determine if any server in the cluster is suitable for reading. <br>Called with no option: `true` | `true` |
| Sharded | `true` if 1+ servers are available | `true` if 1+ servers are available |
| LoadBalanced | `true` | `true` |

### Log Messages

Expand Down Expand Up @@ -616,13 +571,9 @@ See the [README](tests/monitoring/README.md).

- 2021-05-06: Updated to use modern terminology.

# \<\<\<\<\<\<\< HEAD :2024-03-29: Updated to clarify expected initial value of TopologyDescriptionChangedEvent's previousDescription field :2024-01-17: Updated to require that `TopologyDescriptionChangedEvent` should be emitted before just `TopologyClosedEvent` is emitted :2024-01-04: Updated to clarify when ServerHeartbeatStartedEvent should be emitted :2023-03-31: Renamed to include "logging" in the title. Reorganized contents and made consistent with CLAM spec, and added requirements for SDAM log messages. :2022-10-05: Remove spec front matter and reformat changelog. :2021-05-06: Updated to use modern terminology. :2020-04-20: Add rules for streaming heartbeat protocol and add "awaited" field to heartbeat events. :2018:12-12: Clarified table of rules for readable/writable servers :2016-08-31: Added table of rules for determining if topology has readable/writable servers. :2016-10-11: TopologyDescription objects MAY have additional methods and properties. ||||||| parent of 469393fd (DRIVERS-2789 Convert SDAM Spec to Markdown) :2024-03-29: Updated to clarify expected initial value of TopologyDescriptionChangedEvent's previousDescription field :2024-01-04: Updated to clarify when ServerHeartbeatStartedEvent should be emitted :2023-03-31: Renamed to include "logging" in the title. Reorganized contents and made consistent with CLAM spec, and added requirements for SDAM log messages. :2022-10-05: Remove spec front matter and reformat changelog. :2021-05-06: Updated to use modern terminology. :2020-04-20: Add rules for streaming heartbeat protocol and add "awaited" field to heartbeat events. :2018:12-12: Clarified table of rules for readable/writable servers :2016-08-31: Added table of rules for determining if topology has readable/writable servers. :2016-10-11: TopologyDescription objects MAY have additional methods and properties.

- 2020-04-20: Add rules for streaming heartbeat protocol and add "awaited" field to heartbeat events.

> > > > > > > 469393fd (DRIVERS-2789 Convert SDAM Spec to Markdown)
- 2018:12-12: Clarified table of rules for readable/writable servers
- 2018-12-12: Clarified table of rules for readable/writable servers

- 2016-08-31: Added table of rules for determining if topology has readable/writable servers.

Expand Down
2 changes: 1 addition & 1 deletion source/server-selection/server-selection.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ An OP_QUERY operation targeting the '$cmd' collection namespace.
A driver connection mode that sends all database operations to a single server without regard for
type.

<span id="eligible"/>
<span id="eligible"></span>

**Eligible**\
Describes candidate servers that also meet the criteria specified by the `tag_sets` and
Expand Down
2 changes: 1 addition & 1 deletion source/sessions/driver-sessions.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Driver Sessions Specification
# Sessions Specification

- Status: Accepted
- Minimum Server Version: 3.6
Expand Down
2 changes: 1 addition & 1 deletion source/transactions/transactions.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Driver Transactions Specification
# Transactions Specification

- Status: Accepted
- Minimum Server Version: 4.0
Expand Down
Loading

0 comments on commit 3ebc256

Please sign in to comment.