diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index ecdb8c1c..be7617ab 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -53,13 +53,11 @@ jobs: DOCUSAURUS_ROUTE_BASE_PATH: ${{ vars.DOCUSAURUS_ROUTE_BASE_PATH }} DOCUSAURUS_BASE_URL: ${{ vars.DOCUSAURUS_BASE_URL }} DOCUSAURUS_URL: ${{ vars.DOCUSAURUS_URL }} - IMAGES_PATH: ${{ vars.IMAGES_PATH }} run: | echo "Building Docusaurus site..." echo "Using DOCUSAURUS_ROUTE_BASE_PATH: $DOCUSAURUS_ROUTE_BASE_PATH" echo "Using DOCUSAURUS_BASE_URL: $DOCUSAURUS_BASE_URL" echo "Using DOCUSAURUS_URL: $DOCUSAURUS_URL" - echo "Using IMAGES_PATH: $IMAGES_PATH" npm run build || (echo "Site build failed" && exit 1) - name: Upload npm logs on failure diff --git a/README.md b/README.md index a534c802..fa71a219 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,8 @@ npm run serve ```text ├── docs/ # Main documentation content -├── images/ # Images for documentation ├── static/ # Static assets -│ ├── img/ # Site images and logos +│ ├── img/ # Site images and logos (versioned) │ └── js/ # JavaScript files ├── src/ # React components and custom pages │ ├── css/ # Custom styles diff --git a/docs/custom-functions/create-project.md b/docs/custom-functions/create-project.md deleted file mode 100644 index 3353e666..00000000 --- a/docs/custom-functions/create-project.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Create an in-place Project ---- - -# Create an in-place Project - -To create a project using our web-based GUI, Harper Studio, checkout out how to manage Custom Functions [here](../harper-studio/manage-functions). - -Otherwise, to create a project, you have the following options: - -1. **Use the add_custom_function_project operation** - - This operation creates a new project folder, and populates it with templates for the routes, helpers, and static subfolders. - -```json -{ - "operation": "add_custom_function_project", - "project": "dogs" -} -``` - -1. **Clone our public gitHub project template** - - _This requires a local installation. Remove the .git directory for a clean slate of git history._ - -```bash -> git clone https://github.com/HarperDB/harperdb-custom-functions-template.git ~/hdb/custom_functions/dogs -``` - -1. **Create a project folder in your Custom Functions root directory** and **initialize** - - _This requires a local installation._ - -```bash -> mkdir ~/hdb/custom_functions/dogs -``` - -```bash -> npm init -``` - -# Using NPM and Git - -Custom function projects can be structured and managed like normal Node.js projects. You can include external dependencies, include them in your route and helper files, and manage your revisions without changing your development tooling or pipeline. - -- To initialize your project to use npm packages, use the terminal to execute `npm init` from the root of your project folder. - -- To implement version control using git, use the terminal to execute `git init` from the root of your project folder. diff --git a/docs/custom-functions/define-helpers.md b/docs/custom-functions/define-helpers.md deleted file mode 100644 index 84e23c0d..00000000 --- a/docs/custom-functions/define-helpers.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Define Helpers ---- - -# Define Helpers - -Helpers are functions for use within your routes. You may want to use the same helper in multiple route files, so this allows you to write it once, and include it wherever you need it. diff --git a/docs/custom-functions/host-static.md b/docs/custom-functions/host-static.md deleted file mode 100644 index cae874b3..00000000 --- a/docs/custom-functions/host-static.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Host A Static Web UI ---- - -# Host A Static Web UI - -The [@fastify/static](https://github.com/fastify/fastify-static) module can be utilized to serve static files. - -Install the module in your project by running `npm i @fastify/static` from inside your project directory. - -Register `@fastify/static` with the server and set `root` to the absolute path of the directory that contains the static files to serve. - -For further information on how to send specific files see the [@fastify/static](https://github.com/fastify/fastify-static) docs. - -```javascript -module.exports = async (server, { hdbCore, logger }) => { - server.register(require('@fastify/static'), { - root: path.join(__dirname, 'public'), - }); -}; -``` diff --git a/docs/custom-functions/index.md b/docs/custom-functions/index.md deleted file mode 100644 index a5417b9d..00000000 --- a/docs/custom-functions/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Custom Functions ---- - -# Custom Functions - -Custom functions are a key part of building a complete Harper application. It is highly recommended that you use Custom Functions as the primary mechanism for your application to access your Harper database. Using Custom Functions gives you complete control over the accessible endpoints, how users are authenticated and authorized, what data is accessed from the database, and how it is aggregated and returned to users. - -- Add your own API endpoints to a standalone API server inside Harper - -- Use Harper Core methods to interact with your data at lightning speed - -- Custom Functions are powered by Fastify, so they’re extremely flexible - -- Manage in Harper Studio, or use your own IDE and Version Management System - -- Distribute your Custom Functions to all your Harper instances with a single click - ---- - -- [Requirements and Definitions](requirements-definitions) - -- [Create A Project](create-project) - -- [Define Routes](define-routes) - -- [Define Helpers](define-helpers) - -- [Host a Static UI](host-static) diff --git a/docs/custom-functions/requirements-definitions.md b/docs/custom-functions/requirements-definitions.md deleted file mode 100644 index 0825337b..00000000 --- a/docs/custom-functions/requirements-definitions.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Requirements And Definitions ---- - -# Requirements And Definitions - -Before you get started with Custom Functions, here’s a primer on the basic configuration and the structure of a Custom Functions Project. - -## Configuration - -Custom Functions are configured in the harperdb-config.yaml file located in the operations API root directory (by default this is a directory named `hdb` located in the home directory of the current user). Below is a view of the Custom Functions' section of the config YAML file, plus descriptions of important Custom Functions settings. - -```yaml -customFunctions: - enabled: true - network: - cors: true - corsAccessList: - - null - headersTimeout: 60000 - https: false - keepAliveTimeout: 5000 - port: 9926 - timeout: 120000 - nodeEnv: production - root: ~/hdb/custom_functions - tls: - certificate: ~/hdb/keys/certificate.pem - certificateAuthority: ~/hdb/keys/ca.pem - privateKey: ~/hdb/keys/privateKey.pem -``` - -- **`enabled`** - A boolean value that tells Harper to start the Custom Functions server. Set it to **true** to enable custom functions and **false** to disable. `enabled` is `true` by default. - -- **`network.port`** - This is the port Harper will use to start the HTTP server dedicated to serving your Custom Functions’ routes. - -- **`root`** - This is the root directory where your Custom Functions projects and their files will live. By default, it’s in your \, but you can locate it anywhere--in a developer folder next to your other development projects, for example. - -_Please visit our [configuration docs](../configuration) for a more comprehensive look at these settings._ - -## Project Structure - -**project folder** - -The name of the folder that holds your project files serves as the root prefix for all the routes you create. All routes created in the **dogs** project folder will have a URL like this: **[https://my-server-url.com:9926/dogs/my/route](https://my-server-url.com:9926/dogs/my/route)**. As such, it’s important that any project folders you create avoid any characters that aren’t URL-friendly. You should avoid URL delimiters in your folder names. - -**/routes folder** - -By default, files in the **routes** folder define the requests that your Custom Functions server will handle. They are [standard Fastify route declarations](https://www.fastify.io/docs/latest/Reference/Routes/), so if you’re familiar with them, you should be up and running in no time. The default components for a route are the url, method, preValidation, and handler. - -```javascript -module.exports = async (server, { hdbCore, logger }) => { - server.route({ - url: '/', - method: 'POST', - preValidation: hdbCore.preValidation, - handler: hdbCore.request, - }); -}; -``` - -**/helpers folder** - -These files are JavaScript modules that you can use in your handlers, or for custom `preValidation` hooks. Examples include calls to third party Authentication services, filters for results of calls to Harper, and custom error responses. As modules, you can use standard import and export functionality. - -```javascript -'use strict'; - -const dbFilter = (databaseResultsArray) => databaseResultsArray.filter((result) => result.showToApi === true); - -module.exports = dbFilter; -``` - -**/static folder** - -If you’d like to serve your visitors a static website, you can place the html and supporting files into a directory called **static**. The directory must have an **index.html** file, and can have as many supporting resources as are necessary in whatever subfolder structure you prefer within that **static** directory. diff --git a/docs/custom-functions/restarting-server.md b/docs/custom-functions/restarting-server.md deleted file mode 100644 index 8717d1d0..00000000 --- a/docs/custom-functions/restarting-server.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Restarting the Server ---- - -# Restarting the Server - -One way to manage Custom Functions is through [Harper Studio](../harper-studio/). It performs all the necessary operations automatically. To get started, navigate to your instance in Harper Studio and click the subnav link for "functions". If you have not yet enabled Custom Functions, it will walk you through the process. Once configuration is complete, you can manage and deploy Custom Functions in minutes. - -For any changes made to your routes, helpers, or projects, you’ll need to restart the Custom Functions server to see them take effect. Harper Studio does this automatically whenever you create or delete a project, or add, edit, or edit a route or helper. If you need to start the Custom Functions server yourself, you can use the following operation to do so: - -```json -{ - "operation": "restart_service", - "service": "custom_functions" -} -``` diff --git a/docs/custom-functions/templates.md b/docs/custom-functions/templates.md deleted file mode 100644 index cbfa5122..00000000 --- a/docs/custom-functions/templates.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Templates ---- - -# Templates - -Check out our always-expanding library of templates in our open-source [Harper-Add-Ons GitHub repo](https://github.com/HarperDB-Add-Ons). diff --git a/docs/developers/applications/index.md b/docs/developers/applications/index.md index 39022047..f12fadb5 100644 --- a/docs/developers/applications/index.md +++ b/docs/developers/applications/index.md @@ -209,9 +209,9 @@ class BreedSource extends Resource { Breed.sourcedFrom(BreedSource, { expiration: 3600 }); ``` -The [caching documentation](caching) provides much more information on how to use Harper's powerful caching capabilities and set up data sources. +The [caching documentation](applications/caching) provides much more information on how to use Harper's powerful caching capabilities and set up data sources. -Harper provides a powerful JavaScript API with significant capabilities that go well beyond a "getting started" guide. See our documentation for more information on using the [`globals`](../../reference/globals) and the [Resource interface](../../reference/resource). +Harper provides a powerful JavaScript API with significant capabilities that go well beyond a "getting started" guide. See our documentation for more information on using the [`globals`](../../reference/globals) and the [Resource interface](../../reference/resources). ## Configuring Applications/Components @@ -221,7 +221,7 @@ For complete information of configuring applications, refer to the [Component Co Exporting resource will generate full RESTful endpoints. But, you may prefer to define endpoints through a framework. Harper includes a resource plugin for defining routes with the Fastify web framework. Fastify is a full-featured framework with many plugins, that provides sophisticated route definition capabilities. -By default, applications are configured to load any modules in the `routes` directory (matching `routes/*.js`) with Fastify's autoloader, which will allow these modules to export a function to define fastify routes. See the [defining routes documentation](define-routes) for more information on how to create Fastify routes. +By default, applications are configured to load any modules in the `routes` directory (matching `routes/*.js`) with Fastify's autoloader, which will allow these modules to export a function to define fastify routes. See the [defining routes documentation](applications/define-routes) for more information on how to create Fastify routes. However, Fastify is not as fast as Harper's RESTful endpoints (about 10%-20% slower/more-overhead), nor does it automate the generation of a full uniform interface with correct RESTful header interactions (for caching control), so generally the Harper's REST interface is recommended for optimum performance and ease of use. diff --git a/docs/developers/clustering/establishing-routes.md b/docs/developers/clustering/establishing-routes.md index a3c27556..1d4d5ae2 100644 --- a/docs/developers/clustering/establishing-routes.md +++ b/docs/developers/clustering/establishing-routes.md @@ -32,7 +32,7 @@ clustering: port: 9932 ``` -![figure 1](/clustering/figure1.png) +![figure 1](/img/v4.6/clustering/figure1.png) This diagram shows one way of using routes to connect a network of nodes. Node2 and Node3 do not reference any routes in their config. Node1 contains routes for Node2 and Node3, which is enough to establish a network between all three nodes. diff --git a/docs/developers/clustering/subscription-overview.md b/docs/developers/clustering/subscription-overview.md index b812f8bf..b4827de7 100644 --- a/docs/developers/clustering/subscription-overview.md +++ b/docs/developers/clustering/subscription-overview.md @@ -20,7 +20,7 @@ A subscription consists of: #### Publish subscription -![figure 2](/clustering/figure2.png) +![figure 2](/img/v4.6/clustering/figure2.png) This diagram is an example of a `publish` subscription from the perspective of Node1. @@ -28,7 +28,7 @@ The record with id 2 has been inserted in the dog table on Node1, after it has c #### Subscribe subscription -![figure 3](/clustering/figure3.png) +![figure 3](/img/v4.6/clustering/figure3.png) This diagram is an example of a `subscribe` subscription from the perspective of Node1. @@ -36,10 +36,10 @@ The record with id 3 has been inserted in the dog table on Node2, after it has c #### Subscribe and Publish -![figure 4](/clustering/figure4.png) +![figure 4](/img/v4.6/clustering/figure4.png) This diagram shows both subscribe and publish but publish is set to false. You can see that because subscribe is true the insert on Node2 is being replicated on Node1 but because publish is set to false the insert on Node1 is _**not**_ being replicated on Node2. -![figure 5](/clustering/figure5.png) +![figure 5](/img/v4.6/clustering/figure5.png) This shows both subscribe and publish set to true. The insert on Node1 is replicated on Node2 and the update on Node2 is replicated on Node1. diff --git a/docs/developers/clustering/things-worth-knowing.md b/docs/developers/clustering/things-worth-knowing.md index bdff086f..f523c7bf 100644 --- a/docs/developers/clustering/things-worth-knowing.md +++ b/docs/developers/clustering/things-worth-knowing.md @@ -40,4 +40,4 @@ Harper has built-in resiliency for when network connectivity is lost within a su Harper clustering creates a mesh network between nodes giving end users the ability to create an infinite number of topologies. subscription topologies can be simple or as complex as needed. -![](/clustering/figure6.png) +![](/img/v4.6/clustering/figure6.png) diff --git a/docs/developers/operations-api/analytics.md b/docs/developers/operations-api/analytics.md index 558530cc..59ac6011 100644 --- a/docs/developers/operations-api/analytics.md +++ b/docs/developers/operations-api/analytics.md @@ -13,7 +13,7 @@ Retrieves analytics data from the server. - `start_time` _(optional)_ - Unix timestamp in seconds - `end_time` _(optional)_ - Unix timestamp in seconds - `get_attributes` _(optional)_ - array of attribute names to retrieve -- `conditions` _(optional)_ - array of conditions to filter results (see [search_by_conditions docs](developers/operations-api/nosql-operations) for details) +- `conditions` _(optional)_ - array of conditions to filter results (see [search_by_conditions docs](./nosql-operations) for details) ### Body diff --git a/docs/developers/replication/index.md b/docs/developers/replication/index.md index 3e7cedb0..90cf2665 100644 --- a/docs/developers/replication/index.md +++ b/docs/developers/replication/index.md @@ -77,7 +77,7 @@ replication: Harper supports the highest levels of security through public key infrastructure based security and authorization. Depending on your security configuration, you can configure Harper in several different ways to build a connected cluster. -When using certificate-based authentication, Harper automatically performs OCSP (Online Certificate Status Protocol) verification to check if certificates have been revoked. This ensures that compromised certificates cannot be used for replication connections. Certificate verification settings follow the same configuration as HTTP mTLS connections (see [certificate verification configuration](../deployments/configuration.md#http)). +When using certificate-based authentication, Harper automatically performs OCSP (Online Certificate Status Protocol) verification to check if certificates have been revoked. This ensures that compromised certificates cannot be used for replication connections. Certificate verification settings follow the same configuration as HTTP mTLS connections (see [certificate verification configuration](../../deployments/configuration#http)). #### Provide your own certificates diff --git a/docs/getting-started/what-is-harper.md b/docs/getting-started/what-is-harper.md index 25c0fb98..60bc6a84 100644 --- a/docs/getting-started/what-is-harper.md +++ b/docs/getting-started/what-is-harper.md @@ -14,7 +14,7 @@ Harper is an all-in-one backend technology that fuses database technologies, cac Harper simplifies scaling with clustering and native data replication. At scale, architectures tend to include 4 to 16 redundant, geo-distributed nodes located near every user population center. This ensures that every user experiences minimal network latency and maximum reliability in addition to the already rapid server responses. -![](/harperstack.jpg) +![](/img/v4.6/harperstack.jpg) ## Understanding the Paradigm Shift diff --git a/docs/reference/dynamic-schema.md b/docs/reference/dynamic-schema.md index 14fdd9af..97f5792d 100644 --- a/docs/reference/dynamic-schema.md +++ b/docs/reference/dynamic-schema.md @@ -64,7 +64,7 @@ At this point the table does not have structure beyond what we provided, so the **dev.dog** -![](/reference/dynamic_schema_2_create_table.png.webp) +![](/img/v4.6/reference/dynamic_schema_2_create_table.png.webp) **Insert Record** @@ -85,7 +85,7 @@ With a single record inserted and new attributes defined, our table now looks li **dev.dog** -![](/reference/dynamic_schema_3_insert_record.png.webp) +![](/img/v4.6/reference/dynamic_schema_3_insert_record.png.webp) Indexes have been automatically created for `dog_name` and `owner_name` attributes. @@ -109,7 +109,7 @@ In this case, there is no change to the schema. Our table now looks like this: **dev.dog** -![](/reference/dynamic_schema_4_insert_additional_record.png.webp) +![](/img/v4.6/reference/dynamic_schema_4_insert_additional_record.png.webp) **Update Existing Record** @@ -130,7 +130,7 @@ Now we have a new attribute called `weight_lbs`. Our table now looks like this: **dev.dog** -![](/reference/dynamic_schema_5_update_existing_record.png.webp) +![](/img/v4.6/reference/dynamic_schema_5_update_existing_record.png.webp) **Query Table with SQL** @@ -145,4 +145,4 @@ Now if we query for all records where `weight_lbs` is `null` we expect to get ba This results in the expected two records being returned. -![](/reference/dynamic_schema_6_query_table_with_sql.png.webp) +![](/img/v4.6/reference/dynamic_schema_6_query_table_with_sql.png.webp) diff --git a/docs/reference/resources/instance-binding.md b/docs/reference/resources/instance-binding.md index 11b9fc72..5c507e32 100644 --- a/docs/reference/resources/instance-binding.md +++ b/docs/reference/resources/instance-binding.md @@ -253,7 +253,7 @@ When a resource is accessed as a data source: ### `operation(operationObject: Object, authorize?: boolean): Promise` -This method is available on tables and will execute a Harper operation, using the current table as the target of the operation (the `table` and `database` do not need to be specified). See the [operations API](../developers/operations-api/) for available operations that can be performed. You can set the second argument to `true` if you want the current user to be checked for authorization for the operation (if `true`, will throw an error if they are not authorized). +This method is available on tables and will execute a Harper operation, using the current table as the target of the operation (the `table` and `database` do not need to be specified). See the [operations API](../../developers/operations-api/) for available operations that can be performed. You can set the second argument to `true` if you want the current user to be checked for authorization for the operation (if `true`, will throw an error if they are not authorized). ### `allowStaleWhileRevalidate(entry: { version: number, localTime: number, expiresAt: number, value: object }, id): boolean` diff --git a/docs/reference/storage-algorithm.md b/docs/reference/storage-algorithm.md index 2eccdcfa..03c4c014 100644 --- a/docs/reference/storage-algorithm.md +++ b/docs/reference/storage-algorithm.md @@ -24,4 +24,4 @@ Harper inherits both functional and performance benefits by implementing LMDB as ## Harper Indexing Example (Single Table) -![](/reference/HarperDB-3.0-Storage-Algorithm.png.webp) +![](/img/v4.6/reference/HarperDB-3.0-Storage-Algorithm.png.webp) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 40bfb6a3..a94f0425 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -48,8 +48,7 @@ const config: Config = { // Remove trailing slashes - GitHub Pages handles this fine and makes relative paths intuitive trailingSlash: false, - // Serve images from the repository root or from env var path - staticDirectories: process.env.IMAGES_PATH ? ['static', process.env.IMAGES_PATH] : ['static', '../images'], + staticDirectories: ['static'], // GitHub pages deployment config. // If you aren't using GitHub pages, you don't need these. @@ -80,7 +79,7 @@ const config: Config = { } }, lastVersion: '4.6', - includeCurrentVersion: false, + includeCurrentVersion: process.env.NODE_ENV === 'development', versions: { '4.6': { // No banner for 4.6 as its the latest version diff --git a/images/ave-age-per-owner-ex.png b/images/ave-age-per-owner-ex.png deleted file mode 100644 index 8e39d22c..00000000 Binary files a/images/ave-age-per-owner-ex.png and /dev/null differ diff --git a/images/clustering/figure1.png b/images/clustering/figure1.png deleted file mode 100644 index 00c64580..00000000 Binary files a/images/clustering/figure1.png and /dev/null differ diff --git a/images/clustering/figure2.png b/images/clustering/figure2.png deleted file mode 100644 index 688a3ba0..00000000 Binary files a/images/clustering/figure2.png and /dev/null differ diff --git a/images/clustering/figure3.png b/images/clustering/figure3.png deleted file mode 100644 index b21712e9..00000000 Binary files a/images/clustering/figure3.png and /dev/null differ diff --git a/images/clustering/figure4.png b/images/clustering/figure4.png deleted file mode 100644 index f578f632..00000000 Binary files a/images/clustering/figure4.png and /dev/null differ diff --git a/images/clustering/figure5.png b/images/clustering/figure5.png deleted file mode 100644 index f19e4de0..00000000 Binary files a/images/clustering/figure5.png and /dev/null differ diff --git a/images/clustering/figure6.png b/images/clustering/figure6.png deleted file mode 100644 index eff93613..00000000 Binary files a/images/clustering/figure6.png and /dev/null differ diff --git a/images/dogs/alby.webp b/images/dogs/alby.webp deleted file mode 100644 index bf73645a..00000000 Binary files a/images/dogs/alby.webp and /dev/null differ diff --git a/images/dogs/monkey.webp b/images/dogs/monkey.webp deleted file mode 100644 index 0a383707..00000000 Binary files a/images/dogs/monkey.webp and /dev/null differ diff --git a/images/dogs/penny.webp b/images/dogs/penny.webp deleted file mode 100644 index 7f7dc546..00000000 Binary files a/images/dogs/penny.webp and /dev/null differ diff --git a/images/dogs/tucker.png b/images/dogs/tucker.png deleted file mode 100644 index c2b11b99..00000000 Binary files a/images/dogs/tucker.png and /dev/null differ diff --git a/images/harperstack.jpg b/images/harperstack.jpg deleted file mode 100644 index 4fb155c2..00000000 Binary files a/images/harperstack.jpg and /dev/null differ diff --git a/images/reference/HarperDB-3.0-Storage-Algorithm.png.webp b/images/reference/HarperDB-3.0-Storage-Algorithm.png.webp deleted file mode 100644 index 28118e00..00000000 Binary files a/images/reference/HarperDB-3.0-Storage-Algorithm.png.webp and /dev/null differ diff --git a/images/reference/dynamic_schema_2_create_table.png.webp b/images/reference/dynamic_schema_2_create_table.png.webp deleted file mode 100644 index b3cdee75..00000000 Binary files a/images/reference/dynamic_schema_2_create_table.png.webp and /dev/null differ diff --git a/images/reference/dynamic_schema_3_insert_record.png.webp b/images/reference/dynamic_schema_3_insert_record.png.webp deleted file mode 100644 index 4f79c0f4..00000000 Binary files a/images/reference/dynamic_schema_3_insert_record.png.webp and /dev/null differ diff --git a/images/reference/dynamic_schema_4_insert_additional_record.png.webp b/images/reference/dynamic_schema_4_insert_additional_record.png.webp deleted file mode 100644 index 2caa7e75..00000000 Binary files a/images/reference/dynamic_schema_4_insert_additional_record.png.webp and /dev/null differ diff --git a/images/reference/dynamic_schema_5_update_existing_record.png.webp b/images/reference/dynamic_schema_5_update_existing_record.png.webp deleted file mode 100644 index 041a71d7..00000000 Binary files a/images/reference/dynamic_schema_5_update_existing_record.png.webp and /dev/null differ diff --git a/images/reference/dynamic_schema_6_query_table_with_sql.png.webp b/images/reference/dynamic_schema_6_query_table_with_sql.png.webp deleted file mode 100644 index 95dac39c..00000000 Binary files a/images/reference/dynamic_schema_6_query_table_with_sql.png.webp and /dev/null differ