diff --git a/.github/workflows/post-deployment.yml b/.github/workflows/post-deployment.yml
new file mode 100644
index 000000000..b299b2e40
--- /dev/null
+++ b/.github/workflows/post-deployment.yml
@@ -0,0 +1,48 @@
+# Actions done after Mintlify deployment following a push done on `main`.
+# This will trigger new commits on `main`, so a new deployment of Mintlify.
+name: Post Deployment
+
+on:
+ workflow_dispatch:
+ # schedule:
+ # - cron: '0 23 * * *' # Every day at 11:00 PM UTC
+ # push:
+ # branches:
+ # - 'main'
+
+jobs:
+ update-samples:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+ with:
+ token: ${{ secrets.GH_TOKEN }}
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v6
+
+ - name: Install dependencies
+ run: npm install
+
+ - name: Run pull-code-samples script to fetch new code samples
+ run: node scripts/pull-code-samples.mjs
+
+ - name: Check for changes
+ id: changes
+ run: |
+ echo "has_changes=$(git diff --quiet snippets/ && echo "false" || echo "true")" >> "$GITHUB_ENV"
+
+ - name: Commit changes
+ run: |
+ if [[ $has_changes == "true" ]]; then
+ echo "There are changes in the Git working directory."
+ git config user.name "meili-bot"
+ git config user.email "meili-bot@users.noreply.github.com"
+ git add snippets/
+ git commit -m "Update code samples"
+ git push origin main
+ else
+ echo "No changes in the Git working directory."
+ fi
diff --git a/snippets/samples/code_samples_date_guide_filterable_attributes_1.mdx b/snippets/samples/code_samples_date_guide_filterable_attributes_1.mdx
index 98595a358..9900310dd 100644
--- a/snippets/samples/code_samples_date_guide_filterable_attributes_1.mdx
+++ b/snippets/samples/code_samples_date_guide_filterable_attributes_1.mdx
@@ -22,7 +22,8 @@ $client->index('games')->updateFilterableAttributes(['release_timestamp']);
```
```java Java
-client.index("movies").updateFilterableAttributesSettings(new String[] { "release_timestamp" });
+client.index("movies").updateFilterableAttributesSettings(
+ new String[] { "release_timestamp" });
```
```ruby Ruby
diff --git a/snippets/samples/code_samples_distinct_attribute_guide_filterable_1.mdx b/snippets/samples/code_samples_distinct_attribute_guide_filterable_1.mdx
index 7412dfadb..05e6d6f97 100644
--- a/snippets/samples/code_samples_distinct_attribute_guide_filterable_1.mdx
+++ b/snippets/samples/code_samples_distinct_attribute_guide_filterable_1.mdx
@@ -25,7 +25,7 @@ $client->index('products')->updateFilterableAttributes(['product_id', 'sku', 'ur
```java Java
Settings settings = new Settings();
-settings.setFilterableAttributes(new String[] {"product_id", "SKU", "url"});
+settings.setFilterableAttributes(new String[] { "product_id", "SKU", "url" });
client.index("products").updateSettings(settings);
```
diff --git a/snippets/samples/code_samples_export_post_1.mdx b/snippets/samples/code_samples_export_post_1.mdx
index c970a6365..bc66fb8a5 100644
--- a/snippets/samples/code_samples_export_post_1.mdx
+++ b/snippets/samples/code_samples_export_post_1.mdx
@@ -20,4 +20,14 @@ indexes.put("*", ExportIndexFilter.builder().overrideSettings(true).build());
ExportRequest request = ExportRequest.builder().url("TARGET_INSTANCE_URL").indexes(indexes).build();
client.export(request);
```
+
+```dart Dart
+await client.export(
+ ExportQuery(
+ url: 'new_instance_url',
+ apiKey: 'new_instance_api_key',
+ payloadSize: "100 MiB",
+ ),
+);
+```
\ No newline at end of file
diff --git a/snippets/samples/code_samples_export_post_2.mdx b/snippets/samples/code_samples_export_post_2.mdx
new file mode 100644
index 000000000..887159af3
--- /dev/null
+++ b/snippets/samples/code_samples_export_post_2.mdx
@@ -0,0 +1,17 @@
+
+
+```dart Dart
+await client.export(
+ ExportQuery(
+ url: 'new_instance_url',
+ apiKey: 'new_instance_api_key',
+ indexes: {
+ "index_1_uid": ExportIndexOptions(
+ filter: "filter",
+ overrideSettings: true,
+ ),
+ },
+ ),
+);
+```
+
\ No newline at end of file
diff --git a/snippets/samples/code_samples_geosearch_guide_filter_settings_1.mdx b/snippets/samples/code_samples_geosearch_guide_filter_settings_1.mdx
index 32732e600..060d59498 100644
--- a/snippets/samples/code_samples_geosearch_guide_filter_settings_1.mdx
+++ b/snippets/samples/code_samples_geosearch_guide_filter_settings_1.mdx
@@ -28,7 +28,7 @@ $client->index('restaurants')->updateFilterableAttributes([
```java Java
Settings settings = new Settings();
-settings.setFilterableAttributes(new String[] {"_geo"});
+settings.setFilterableAttributes(new String[] { "_geo" });
client.index("restaurants").updateSettings(settings);
```
diff --git a/snippets/samples/code_samples_get_filterable_attributes_1.mdx b/snippets/samples/code_samples_get_filterable_attributes_1.mdx
index 45e078417..1ed40e044 100644
--- a/snippets/samples/code_samples_get_filterable_attributes_1.mdx
+++ b/snippets/samples/code_samples_get_filterable_attributes_1.mdx
@@ -18,6 +18,9 @@ $client->index('movies')->getFilterableAttributes();
```
```java Java
+// Granular filterable attributes API (v1.14+)
+client.index("movies").getGranularFilterableAttributesSettings();
+// Legacy String[] API
client.index("movies").getFilterableAttributesSettings();
```
diff --git a/snippets/samples/code_samples_getting_started_add_documents.mdx b/snippets/samples/code_samples_getting_started_add_documents.mdx
index f90902502..f77bbe050 100644
--- a/snippets/samples/code_samples_getting_started_add_documents.mdx
+++ b/snippets/samples/code_samples_getting_started_add_documents.mdx
@@ -78,14 +78,14 @@ $client->index('movies')->addDocuments($movies);
//
// com.meilisearch.sdk
// meilisearch-java
-// 0.18.0
+// 0.19.0
// pom
//
// For Gradle
// Add the following line to the `dependencies` section of your `build.gradle`:
//
-// implementation 'com.meilisearch.sdk:meilisearch-java:0.18.0'
+// implementation 'com.meilisearch.sdk:meilisearch-java:0.19.0'
// In your .java file:
import com.meilisearch.sdk;
diff --git a/snippets/samples/code_samples_getting_started_configure_settings.mdx b/snippets/samples/code_samples_getting_started_configure_settings.mdx
index 2bf0c631a..57d76b913 100644
--- a/snippets/samples/code_samples_getting_started_configure_settings.mdx
+++ b/snippets/samples/code_samples_getting_started_configure_settings.mdx
@@ -51,7 +51,7 @@ $client->index('meteorites')->updateSettings([
```java Java
Settings settings = new Settings();
-settings.setFilterableAttributes(new String[] {"mass", "_geo"});
+settings.setFilterableAttributes(new String[] { "mass", "_geo" });
settings.setSortableAttributes(new String[] {"mass", "_geo"});
client.index("meteorites").updateSettings(settings);
```
diff --git a/snippets/samples/code_samples_update_filterable_attributes_1.mdx b/snippets/samples/code_samples_update_filterable_attributes_1.mdx
index 3090ccb0d..270500b19 100644
--- a/snippets/samples/code_samples_update_filterable_attributes_1.mdx
+++ b/snippets/samples/code_samples_update_filterable_attributes_1.mdx
@@ -58,9 +58,23 @@ $client->index('movies')->updateFilterableAttributes([
```
```java Java
-Settings settings = new Settings();
-settings.setFilterableAttributes(new String[] {"genres", "director"});
-client.index("movies").updateSettings(settings);
+FilterableAttributesConfig genres = FilterableAttributesConfig.simple("genres");
+
+FilterableAttributesFilter directorFilter = new FilterableAttributesFilter();
+directorFilter.setEquality(true);
+directorFilter.setComparison(false);
+
+FilterableAttributesFeatures directorFeatures = new FilterableAttributesFeatures();
+directorFeatures.setFacetSearch(true);
+directorFeatures.setFilter(directorFilter);
+
+FilterableAttributesConfig director = new FilterableAttributesConfig();
+director.setAttributePatterns(new String[] {"director"});
+director.setFeatures(directorFeatures);
+
+// Update settings
+client.index("movies").updateGranularFilterableAttributesSettings(
+ new FilterableAttributesConfig[] {genres, director});
```
```ruby Ruby