From 29b4f5f56aa55568eb6a083b4c5a64160c12e896 Mon Sep 17 00:00:00 2001 From: docs-action Date: Sun, 10 Dec 2023 09:18:38 +0000 Subject: [PATCH] Update from https://github.com/treeverse/lakeFS/commit/0787698ad6892c902308263055a48a8dd1a0fad6 --- assets/js/search-data.json | 360 ++++++++++++++++++------------------- assets/js/swagger.yml | 3 + posts/index.html | 48 ++--- redirects.json | 2 +- sitemap.xml | 22 +-- 5 files changed, 219 insertions(+), 216 deletions(-) diff --git a/assets/js/search-data.json b/assets/js/search-data.json index 889e5e1f4..a0636ead9 100644 --- a/assets/js/search-data.json +++ b/assets/js/search-data.json @@ -1630,425 +1630,425 @@ "relUrl": "/integrations/" },"233": { - "doc": "⭐ Quickstart", - "title": "lakeFS Quickstart", - "content": "Welcome to lakeFS! . lakeFS provides a “Git for data” platform enabling you to implement best practices from software engineering on your data lake, including branching and merging, CI/CD, and production-like dev/test environments. This quickstart will introduce you to some of the core ideas in lakeFS and show what you can do by illustrating the concept of branching, merging, and rolling back changes to data. It’s laid out in five short sections: . Launch . Spin up the quickstart environment locally under Docker . Query . Query the pre-populated data on the main branch . Branch . Make changes to the data on a new branch . Merge . Merge the changed data back to the main branch . Rollback . Change our mind and revert the changes . Actions . Use Actions to trigger code when an event occurs . You can use the 30-day free trial of lakeFS Cloud if you want to try out lakeFS without installing anything. ", - "url": "/quickstart/#lakefs-quickstart", - - "relUrl": "/quickstart/#lakefs-quickstart" - },"234": { - "doc": "⭐ Quickstart", - "title": "⭐ Quickstart", - "content": " ", - "url": "/quickstart/", - - "relUrl": "/quickstart/" - },"235": { - "doc": "Slack", - "title": "Slack", - "content": " ", - "url": "/slack/", - - "relUrl": "/slack/" - },"236": { "doc": "Security", "title": "lakeFS Security Reference", "content": ". | Authentication | Remote Authenticator | Role-Based Access Control (RBAC) | Presigned URL | Access Control Lists (ACLs) | Single Sign On (SSO) | . ", "url": "/reference/security/#lakefs-security-reference", "relUrl": "/reference/security/#lakefs-security-reference" - },"237": { + },"234": { "doc": "Security", "title": "Security", "content": " ", "url": "/reference/security/", "relUrl": "/reference/security/" - },"238": { + },"235": { "doc": "Reference", "title": "lakeFS Reference", "content": ". ", "url": "/reference/#lakefs-reference", "relUrl": "/reference/#lakefs-reference" - },"239": { + },"236": { "doc": "Reference", "title": "API", "content": ". | lakeFS API | S3 Gateway API | . ", "url": "/reference/#api", "relUrl": "/reference/#api" - },"240": { + },"237": { "doc": "Reference", "title": "Components", "content": ". | Server Configuration | lakeFS command-line tool lakectl | . ", "url": "/reference/#components", "relUrl": "/reference/#components" - },"241": { + },"238": { "doc": "Reference", "title": "Clients", "content": ". | Spark Metadata Client | lakeFS Hadoop FileSystem | Python Client | . ", "url": "/reference/#clients", "relUrl": "/reference/#clients" - },"242": { + },"239": { "doc": "Reference", "title": "Security", "content": ". | Authentication | Remote Authenticator | Role-Based Access Control (RBAC) | Presigned URL | Access Control Lists (ACLs) | Single Sign On (SSO) | . ", "url": "/reference/#security", "relUrl": "/reference/#security" - },"243": { + },"240": { "doc": "Reference", "title": "Other Reference Documentation", "content": ". | Monitoring using Prometheus | Auditing | . ", "url": "/reference/#other-reference-documentation", "relUrl": "/reference/#other-reference-documentation" - },"244": { + },"241": { "doc": "Reference", "title": "Reference", "content": " ", "url": "/reference/", "relUrl": "/reference/" + },"242": { + "doc": "Documentation", + "title": "lakeFS Documentation", + "content": "Any contribution to the docs, whether it is in conjunction with a code contribution or as a standalone, is appreciated. Please see the contributing guide for details on contributing to lakeFS in general. ", + "url": "/project/docs/#lakefs-documentation", + + "relUrl": "/project/docs/#lakefs-documentation" + },"243": { + "doc": "Documentation", + "title": "Table of contents", + "content": ". | lakeFS Documentation Philosophy | lakeFS Style Guide: | Headings and Table of Contents | Callouts 💬 | Links 🔗 | Test your changes locally | Link Checking locally | . 📝 Notice! lakeFS documentation is written using Markdown. Make sure to familiarize yourself with the Markdown Guide. Customizing the lakeFS docs site should follow the following guidelines: Just The Docs Customization and style-guide. ", + "url": "/project/docs/#table-of-contents", + + "relUrl": "/project/docs/#table-of-contents" + },"244": { + "doc": "Documentation", + "title": "lakeFS Documentation Philosophy", + "content": "We are heavily inspired by the Diátaxis approach to documentation. At a very high-level, it defines documentation as falling into one of four categories: . | How To | Tutorial | Reference | Explanation | . There is a lot more to it than this, and you are encouraged to read the Diátaxis website for more details. Its application to lakeFS was discussed in #6197 . ", + "url": "/project/docs/#lakefs-documentation-philosophy", + + "relUrl": "/project/docs/#lakefs-documentation-philosophy" },"245": { + "doc": "Documentation", + "title": "lakeFS Style Guide:", + "content": ". | Don’t use unnecessary tech jargon or vague/wordy constructions - keep it friendly, not condescending. | Be inclusive and welcoming - use gender-neutral words and pronouns when talking about abstract people like users and developers. | Replace complex expressions with simpler ones. | Keep it short - 25-30 words max per sentence. Otherwise, your readers might get lost on the way. | Use active voice instead of passive. For example: This feature can be used to do task X. vs. You can use this feature to do task X. The second one reads much better, right? | You can explain things better by including examples. Show, not tell. Use illustrations, images, gifs, code snippets, etc. | Establish a visual hierarchy to help people quickly find the information they need. Use text formatting to create levels of title and subtitle (such as # to ###### markdown headings). The title of every page should use the topmost heading #; all other headings on the page should use lower headers ## to ######. | . ", + "url": "/project/docs/#lakefs-style-guide", + + "relUrl": "/project/docs/#lakefs-style-guide" + },"246": { + "doc": "Documentation", + "title": "Headings and Table of Contents", + "content": "The title of the page should be H1 (# in markdown). Use headings in descending order and do not skip any. Pages should generally have a table of contents to help the user navigate it. Use the following snippet to add it to your page: . <div class=\"toc-block\"> ## {: .no_toc .text-delta } 1. TOC {:toc} {::options toc_levels=\"2\" /} </div> . By default the page’s Table of Contents will include only H2 headings. If you want to include H2 and H3 then use this snippet instead: . <div class=\"toc-block\"> ## {: .no_toc .text-delta } 1. TOC {:toc} {::options toc_levels=\"2..3\" /} </div> . Both of these snippets invoke {:toc} which is used by Kramdown (the Markdown processor that Jekyll uses) to insert a table of contents from the headings present in the markdown. ", + "url": "/project/docs/#headings-and-table-of-contents", + + "relUrl": "/project/docs/#headings-and-table-of-contents" + },"247": { + "doc": "Documentation", + "title": "Callouts 💬", + "content": "Multiple callout types are available. Please review this page for details. ", + "url": "/project/docs/#callouts-", + + "relUrl": "/project/docs/#callouts-" + },"248": { + "doc": "Documentation", + "title": "Links 🔗", + "content": "Links should use absolute paths in conjunction with {% link %}, e.g. {% link foo/example.md %}. Adding a link with an anchor is a bit trickier. Create a reference [link text][link-reference] and then define the anchor at the end of the document: . [link-reference]: {% link foo.example.md %}#anchor . This is so that references work within the versioned documentation that is deployed. Relative links, unless within the local folder, are discouraged as it can cause additional work when moving pages at a later date. ", + "url": "/project/docs/#links-", + + "relUrl": "/project/docs/#links-" + },"249": { + "doc": "Documentation", + "title": "Test your changes locally", + "content": "If you have the necessary dependencies installed, you can run Jekyll to build and serve the documentation from your machine using the provided Makefile target: . make docs-serve . The alternative is to use Docker which has the benefit of handling all the dependencies for you. Docker . | Launch the Docker container: . docker run --rm \\ --name lakefs_docs \\ -e TZ=\"Etc/UTC\" \\ --publish 4000:4000 --publish 35729:35729 \\ --volume=\"$PWD/docs:/srv/jekyll:Z\" \\ --volume=\"$PWD/docs/.jekyll-bundle-cache:/usr/local/bundle:Z\" \\ --interactive --tty \\ jekyll/jekyll:3.8 \\ jekyll serve --livereload . If you have make installed, you can also run make docs-serve-docker instead. | The first time you run the container it will need to download dependencies and will take several minutes to be ready. Once you see the following output, the docs server is ready to open in your web browser: . Server running... press ctrl-c to stop. | When you make a change to a page’s source the server will automatically rebuild the page which will be shown in the server log by this entry: . Regenerating: 1 file(s) changed at 2023-01-26 08:34:47 contributing.md Remote Theme: Using theme pmarsceill/just-the-docs . This can take a short while—you’ll see something like this in the server’s output when it’s done...done in 34.714073460 seconds. Your page will automatically reload to show the changes. | . If you are doing lots of work on the docs you may want to leave the Docker container in place (so that you don’t have to wait for the dependencies to load each time you re-create it). To do this replace the --rm with --detach in the docker run command, and use docker logs -f lakefs_docs to view the server log. ", + "url": "/project/docs/#test-your-changes-locally", + + "relUrl": "/project/docs/#test-your-changes-locally" + },"250": { + "doc": "Documentation", + "title": "Link Checking locally", + "content": "When making a pull request to lakeFS that involves a docs/* file, a GitHub action will automagically check the links. You can also run this link checker manually on your local machine: . | Build the site: . docker run --rm \\ --name lakefs_docs \\ -e TZ=\"Etc/UTC\" \\ --volume=\"$PWD/docs:/srv/jekyll:Z\" \\ --volume=\"$PWD/docs/.jekyll-bundle-cache:/usr/local/bundle:Z\" \\ --interactive --tty \\ jekyll/jekyll:3.8 \\ jekyll build --config _config.yml -d _site --watch . | Check the links: . docker run --rm \\ --name lakefs_docs_lychee \\ --volume \"$PWD:/data\"\\ --volume \"/tmp:/output\"\\ --tty \\ lycheeverse/lychee:master \\ --exclude-file /data/docs/.lycheeignore \\ --output /output/lychee_report.md \\ --format markdown \\ /data/docs/_site . | Review the lychee_report.md in your local /tmp folder . | . ", + "url": "/project/docs/#link-checking-locally", + + "relUrl": "/project/docs/#link-checking-locally" + },"251": { + "doc": "Documentation", + "title": "Documentation", + "content": " ", + "url": "/project/docs/", + + "relUrl": "/project/docs/" + },"252": { + "doc": "The lakeFS Project", + "title": "The lakeFS Project", + "content": "lakeFS provides version control over the data lake and lakehouse, and uses Git-like semantics to create and access those versions. If you know git, you’ll be right at home with lakeFS. lakeFS is an open-source project under the Apache 2.0 license. The project was created and is supported by Treeverse, a commercial company founded by engineers passionate about providing solutions to the evolving world of data engineering. ", + "url": "/project/", + + "relUrl": "/project/" + },"253": { + "doc": "The lakeFS Project", + "title": "Table of contents", + "content": ". | Our commitment to open source | Roadmap | . ", + "url": "/project/#table-of-contents", + + "relUrl": "/project/#table-of-contents" + },"254": { + "doc": "The lakeFS Project", + "title": "Our commitment to open source", + "content": "lakeFS is an open-source project under the Apache 2.0 license. The project was created and is supported by Treeverse, a commercial company founded by engineers passionate about providing solutions to the evolving world of data engineering. Why did we choose to open the source of our core capabilities? . We believe in the bottom-up adoption of technologies. We believe collaborative communities have the power to bring the best solutions to the community. We believe that every engineer should be able to use, contribute to, and influence cutting edge technologies, so they can innovate in their domain. What is our commitment to open source? . We created lakeFS, our open-source project, to provide a Git-like interface on top of object stores - so that you can fully take advantage of with any data application at any scale. For that reason, we commit that the following capabilities are and will remain open-source as part of lakeFS: . | All versioning capabilities, | Git-Like interface for the versioning operations, | Support for public object store APIs, | Integrations with publicly available applications accessing an object store, | CLI, API, and GUI interfaces. | . We also commit to keeping lakeFS scalable in throughput and performance. We are deeply committed to our community of engineers who use and contribute to the project. We are and will continue to be highly responsive and shape lakeFS together to provide the data versioning capabilities we are all looking for. What is lakeFS Cloud? . Treeverse offers lakeFS Cloud, which provides all the same benefits of the Git-like interface on top of object stores as a fully-managed service. The vision behind lakeFS Cloud is to provide a managed data versioning and management solution for data practitioners. lakeFS Cloud will leverage the lakeFS open-source technology, integrate capabilities and unique features, and lead its users to implement best practices. As part of our commitment to the open source values of transparency and interoperability, we believe everyone should be able to enjoy these benefits, regardless of whether or not they choose to use the managed offering. Because of that, we will not intentionally make it harder to build these features independently on top of the open source solution. ", + "url": "/project/#our-commitment-to-open-source", + + "relUrl": "/project/#our-commitment-to-open-source" + },"255": { + "doc": "The lakeFS Project", + "title": "Roadmap", + "content": "This is the lakeFS public roadmap. As the project evolves and the community grows, this roadmap might change. Please share your feedback on the #dev on Slack or by starting a GitHub Discussion! . ", + "url": "/project/#roadmap", + + "relUrl": "/project/#roadmap" + },"256": { + "doc": "Garbage Collection", + "title": "Garbage Collection", + "content": "lakeFS Cloud users enjoy a managed garbage collection service, and do not need to run this Spark program. ", + "url": "/howto/garbage-collection/", + + "relUrl": "/howto/garbage-collection/" + },"257": { "doc": "Actions and Hooks", "title": "Actions and Hooks in lakeFS", "content": " ", "url": "/howto/hooks/#actions-and-hooks-in-lakefs", "relUrl": "/howto/hooks/#actions-and-hooks-in-lakefs" - },"246": { + },"258": { "doc": "Actions and Hooks", "title": "Table of contents", "content": ". | Overview | Configuration | Supported Events | Runs API & CLI | Result Files | . Like other version control systems, lakeFS allows you to configure Actions to trigger when predefined events occur. There are numerous uses for Actions, including: . | Format Validator: A webhook that checks new files to ensure they are of a set of allowed data formats. | Schema Validator: A webhook that reads new Parquet and ORC files to ensure they don’t contain a block list of column names (or name prefixes). This is useful for avoiding accidental PII exposure. | Integration with external systems: Post-merge and post-commit hooks could be used to export metadata about the change to another system. A common example is exporting symlink.txt files that allow e.g. AWS Athena to read data from lakeFS. | Notifying downstream consumers: Running a post-merge hook to trigger an Airflow DAG or to send a Webhook to an API, notifying it of the change that happened | . For step-by-step examples of hooks in action check out the lakeFS Quickstart and the lakeFS samples repository. ", "url": "/howto/hooks/#table-of-contents", "relUrl": "/howto/hooks/#table-of-contents" - },"247": { + },"259": { "doc": "Actions and Hooks", "title": "Overview", "content": "An action defines one or more hooks to execute. lakeFS supports three types of hook: . | Lua - uses an embedded Lua VM | Webhook - makes a REST call to an external URL | Airflow - triggers a DAG in Airflow | . “Before” hooks must run successfully before their action. If the hook fails, it aborts the action. Lua hooks and Webhooks are synchronous, and lakeFS waits for them to run to completion. Airflow hooks are asynchronous: lakeFS stops waiting as soon as Airflow accepts triggering the DAG. ", "url": "/howto/hooks/#overview", "relUrl": "/howto/hooks/#overview" - },"248": { + },"260": { "doc": "Actions and Hooks", "title": "Configuration", "content": "There are two parts to configuration an Action: . | Create an Action file and upload it to the lakeFS repository | Configure the hook(s) that you specified in the Action file. How these are configured will depend on the type of hook. | . Action files . An Action is a list of Hooks with the same trigger configuration, i.e. an event will trigger all Hooks under an Action or none at all. The Hooks under an Action are ordered and so is their execution. Before each hook execution the if boolean expression is evaluated. The expression can use the functions success() and failure(), which return true if the hook’s actions succeeded or failed, respectively. By default, when if is empty or omitted, the step will run only if no error occurred (the same as success()). Action File schema . | Property | Description | Data Type | Required | Default Value | . | name | Identifes the Action file | String | no | Action filename | . | on | List of events that will trigger the hooks | List | yes |   | . | on<event>.branches | Glob pattern list of branches that triggers the hooks | List | no | Not applicable to Tag events. If empty, Action runs on all branches | . | hooks | List of hooks to be executed | List | yes |   | . | hook.id | ID of the hook, must be unique within the action. | String | yes |   | . | hook.type | Type of the hook (types) | String | yes |   | . | hook.description | Description for the hook | String | no |   | . | hook.if | Expression that will be evaluated before execute the hook | String | no | No value is the same as evaluate success() | . | hook.properties | Hook’s specific configuration, see Lua, WebHook, and Airflow for details | Dictionary | true |   | . Example Action File . name: Good files check description: set of checks to verify that branch is good on: pre-commit: pre-merge: branches: - main hooks: - id: no_temp type: webhook description: checking no temporary files found properties: url: \"https://example.com/webhook?notmp=true?t=1za2PbkZK1bd4prMuTDr6BeEQwWYcX2R\" - id: no_freeze type: webhook description: check production is not in dev freeze properties: url: \"https://example.com/webhook?nofreeze=true?t=1za2PbkZK1bd4prMuTDr6BeEQwWYcX2R\" - id: alert type: webhook if: failure() description: notify alert system when check failed properties: url: \"https://example.com/alert\" query_params: title: good files webhook failed - id: notification type: webhook if: true description: notify that will always run - no matter if one of the previous steps failed properties: url: \"https://example.com/notification\" query_params: title: good files completed . Note: lakeFS will validate action files only when an Event has occurred. Use lakectl actions validate <path> to validate your action files locally. Uploading Action files . Action files should be uploaded with the prefix _lakefs_actions/ to the lakeFS repository. When an actionable event (see Supported Events above) takes place, lakeFS will read all files with prefix _lakefs_actions/ in the repository branch where the action occurred. A failure to parse an Action file will result with a failing Run. For example, lakeFS will search and execute all the matching Action files with the prefix lakefs://example-repo/feature-1/_lakefs_actions/ on: . | Commit to feature-1 branch on example-repo repository. | Merge to main branch from feature-1 branch on repo1 repository. | . ", "url": "/howto/hooks/#configuration", "relUrl": "/howto/hooks/#configuration" - },"249": { + },"261": { "doc": "Actions and Hooks", "title": "Supported Events", "content": "| Event | Description | . | pre-commit | Runs when the commit occurs, before the commit is finalized | . | post-commit | Runs after the commit is finalized | . | pre-merge | Runs on the source branch when the merge occurs, before the merge is finalized | . | post-merge | Runs on the merge result, after the merge is finalized | . | pre-create-branch | Runs on the source branch prior to creating a new branch | . | post-create-branch | Runs on the new branch after the branch was created | . | pre-delete-branch | Runs prior to deleting a branch | . | post-delete-branch | Runs after the branch was deleted | . | pre-create-tag | Runs prior to creating a new tag | . | post-create-tag | Runs after the tag was created | . | pre-delete-tag | Runs prior to deleting a tag | . | post-delete-tag | Runs after the tag was deleted | . lakeFS Actions are handled per repository and cannot be shared between repositories. A failure of any Hook under any Action of a pre-* event will result in aborting the lakeFS operation that is taking place. Hook failures under any Action of a post-* event will not revert the operation. Hooks are managed by Action files that are written to a prefix in the lakeFS repository. This allows configuration-as-code inside lakeFS, where Action files are declarative and written in YAML. ", "url": "/howto/hooks/#supported-events", "relUrl": "/howto/hooks/#supported-events" - },"250": { + },"262": { "doc": "Actions and Hooks", "title": "Runs API & CLI", "content": "A Run is an instantiation of the repository’s Action files when the triggering event occurs. For example, if your repository contains a pre-commit hook, every commit would generate a Run for that specific commit. lakeFS will fetch, parse and filter the repository Action files and start to execute the Hooks under each Action. All executed Hooks (each with hook_run_id) exist in the context of that Run (run_id). The lakeFS API and lakectl expose the results of executions per repository, branch, commit, and specific Action. The endpoint also allows to download the execution log of any executed Hook under each Run for observability. ", "url": "/howto/hooks/#runs-api--cli", "relUrl": "/howto/hooks/#runs-api--cli" - },"251": { + },"263": { "doc": "Actions and Hooks", "title": "Result Files", "content": "The metadata section of lakeFS repository with each Run contains two types of files: . | _lakefs/actions/log/<runID>/<hookRunID>.log - Execution log of the specific Hook run. | _lakefs/actions/log/<runID>/run.manifest - Manifest with all Hooks execution for the run with their results and additional metadata. | . Note: Metadata section of a lakeFS repository is where lakeFS keeps its metadata, like commits and metaranges. Metadata files stored in the metadata section aren’t accessible like user stored files. ", "url": "/howto/hooks/#result-files", "relUrl": "/howto/hooks/#result-files" - },"252": { + },"264": { "doc": "Actions and Hooks", "title": "Actions and Hooks", "content": " ", "url": "/howto/hooks/", "relUrl": "/howto/hooks/" - },"253": { - "doc": "Garbage Collection", - "title": "Garbage Collection", - "content": "lakeFS Cloud users enjoy a managed garbage collection service, and do not need to run this Spark program. ", - "url": "/howto/garbage-collection/", - - "relUrl": "/howto/garbage-collection/" - },"254": { + },"265": { "doc": "Install lakeFS", "title": "Deploy and Setup lakeFS", "content": "The instructions given here are for a self-managed deployment of lakeFS. For a hosted lakeFS service with guaranteed SLAs, try lakeFS Cloud . This section will guide you through deploying lakeFS on top of an object store. You will require a database, and can optionally configure authentication using providers specific to your deployment platform. Which options are available depends on your deployment platform. For example, the object store available on Azure differs from that on AWS. ", "url": "/howto/deploy/#deploy-and-setup-lakefs", "relUrl": "/howto/deploy/#deploy-and-setup-lakefs" - },"255": { + },"266": { "doc": "Install lakeFS", "title": "Deployment and Setup Details", "content": "lakeFS releases include binaries for common operating systems, a containerized option or a Helm chart. Check out our guides below for full deployment details: . | AWS | Azure | GCP | On-premises and other cloud providers | . ", "url": "/howto/deploy/#deployment-and-setup-details", "relUrl": "/howto/deploy/#deployment-and-setup-details" - },"256": { + },"267": { "doc": "Install lakeFS", "title": "Install lakeFS", "content": " ", "url": "/howto/deploy/", "relUrl": "/howto/deploy/" - },"257": { + },"268": { "doc": "How-To", "title": "lakeFS - How To", "content": ". ", "url": "/howto/#lakefs---how-to", "relUrl": "/howto/#lakefs---how-to" - },"258": { + },"269": { "doc": "How-To", "title": "Installation and upgrades", "content": ". | Step-by-step instructions for deploying and configuring lakeFS on AWS, GCP, Azure, and on-premises. | Details on how to upgrade lakeFS . | . ", "url": "/howto/#installation-and-upgrades", "relUrl": "/howto/#installation-and-upgrades" - },"259": { + },"270": { "doc": "How-To", "title": "Getting data in and out of lakeFS", "content": ". | Import and Export Data from lakeFS | Copy data to/from lakeFS | Using external Data Catalogs with data stored on lakeFS | Migrating away from lakeFS | . ", "url": "/howto/#getting-data-in-and-out-of-lakefs", "relUrl": "/howto/#getting-data-in-and-out-of-lakefs" - },"260": { + },"271": { "doc": "How-To", "title": "Actions and Hooks in lakeFS", "content": ". | Use Actions and Hooks as part of your workflow to validate data, enforce constraints, and do more when events occur. | . ", "url": "/howto/#actions-and-hooks-in-lakefs", "relUrl": "/howto/#actions-and-hooks-in-lakefs" - },"261": { + },"272": { "doc": "How-To", "title": "Branch Protection", "content": ". | Branch Protection prevents commits directly to a branch. This is a good way to enforce good practice and make sure that changes to important branches are only done by a merge. | . ", "url": "/howto/#branch-protection", "relUrl": "/howto/#branch-protection" - },"262": { + },"273": { "doc": "How-To", "title": "lakeFS Sizing Guide", "content": ". | This comprehensive guide details all you need to know to correctly size and test your lakeFS deployment for production use at scale, including: . | System Requirements | Scaling factors | Benchmarks | Important metrics | Reference architectures | . | . ", "url": "/howto/#lakefs-sizing-guide", "relUrl": "/howto/#lakefs-sizing-guide" - },"263": { + },"274": { "doc": "How-To", "title": "Garbage Collection", "content": ". | lakeFS will keep all of your objects forever, unless you tell it otherwise. Use Garbage Collection (GC) to remove objects from the underlying storage. If you want GC to happen automagically then you can use Managed Garbage Collection which is available as part of lakeFS Cloud. | . ", "url": "/howto/#garbage-collection", "relUrl": "/howto/#garbage-collection" - },"264": { + },"275": { "doc": "How-To", "title": "Private Link", "content": ". | Private Link enables lakeFS Cloud to interact with your infrastructure using private networking. | . ", "url": "/howto/#private-link", "relUrl": "/howto/#private-link" - },"265": { + },"276": { "doc": "How-To", "title": "Unity Delta Sharing", "content": ". | lakeFS Unity Delta Sharing provides a read-only experience from Unity Catalog for lakeFS customers. | . ", "url": "/howto/#unity-delta-sharing", "relUrl": "/howto/#unity-delta-sharing" - },"266": { + },"277": { "doc": "How-To", "title": "How-To", "content": " ", "url": "/howto/", "relUrl": "/howto/" - },"267": { + },"278": { + "doc": "Slack", + "title": "Slack", + "content": " ", + "url": "/slack/", + + "relUrl": "/slack/" + },"279": { "doc": "Use Cases", "title": "lakeFS Use Cases", "content": "lakeFS has many uses in the data world, including . | CI/CD for Data Lakes | ETL Testing Environment | Reproducibility | Rollback | . One of the important things that lakeFS provides is full support for Data Lifecycle Management through all stages: . | In Test | During Deployment | In Production | . ", "url": "/understand/use_cases/#lakefs-use-cases", "relUrl": "/understand/use_cases/#lakefs-use-cases" - },"268": { + },"280": { "doc": "Use Cases", "title": "Use Cases", "content": " ", "url": "/understand/use_cases/", "relUrl": "/understand/use_cases/" - },"269": { + },"281": { "doc": "Data Lifecycle Management", "title": "Data Lifecycle Management in lakeFS", "content": "lakeFS provides full support for Data Lifecycle Management through all stages: . | In Test | During Deployment | In Production | . ", "url": "/understand/data_lifecycle_management/#data-lifecycle-management-in-lakefs", "relUrl": "/understand/data_lifecycle_management/#data-lifecycle-management-in-lakefs" - },"270": { + },"282": { "doc": "Data Lifecycle Management", "title": "Data Lifecycle Management", "content": " ", "url": "/understand/data_lifecycle_management/", "relUrl": "/understand/data_lifecycle_management/" - },"271": { + },"283": { "doc": "How lakeFS Works", "title": "How lakeFS Works", "content": "The Architecture page includes a logical overview of lakeFS and its components. For deep-dive content about lakeFS see: . | Internal database structure | Merges in lakeFS | Versioning Internals | . ", "url": "/understand/how/", "relUrl": "/understand/how/" - },"272": { + },"284": { "doc": "Understanding lakeFS", "title": "Understanding lakeFS", "content": ". ", "url": "/understand/", "relUrl": "/understand/" - },"273": { + },"285": { "doc": "Understanding lakeFS", "title": "Architecture and Internals", "content": "The Architecture page includes a logical overview of lakeFS and its components. For deep-dive content about lakeFS see: . | Internal database structure | Merges in lakeFS | Versioning Internals | . ", "url": "/understand/#architecture-and-internals", "relUrl": "/understand/#architecture-and-internals" - },"274": { + },"286": { "doc": "Understanding lakeFS", "title": "lakeFS Use Cases", "content": "lakeFS has many uses in the data world, including . | CI/CD for Data Lakes | ETL Testing Environment | Reproducibility | Rollback | . One of the important things that lakeFS provides is full support for Data Lifecycle Management through all stages: . | In Test | During Deployment | In Production | . ", "url": "/understand/#lakefs-use-cases", "relUrl": "/understand/#lakefs-use-cases" - },"275": { + },"287": { "doc": "Understanding lakeFS", "title": "lakeFS Concepts and Model", "content": "lakeFS adopts many of the terms and concepts from git. This page goes into details on the similarities and differences, and provides a good background to the concepts used in lakeFS. ", "url": "/understand/#lakefs-concepts-and-model", "relUrl": "/understand/#lakefs-concepts-and-model" - },"276": { + },"288": { "doc": "Understanding lakeFS", "title": "Performance", "content": "Check out the Performance best practices guide for useful hints and tips on ensuring high performance from lakeFS. ", "url": "/understand/#performance", "relUrl": "/understand/#performance" - },"277": { + },"289": { "doc": "Understanding lakeFS", "title": "FAQ and Glossary", "content": "The FAQ covers many common questions around lakeFS, and the glossary provides a useful reference for the terms used in lakeFS. ", "url": "/understand/#faq-and-glossary", "relUrl": "/understand/#faq-and-glossary" - },"278": { + },"290": { "doc": "Understanding lakeFS", "title": "Products", "content": "lakeFS is an Apache 2.0 licensed open-source project. Treeverse also provides two commercial products: . | lakeFS Cloud | lakeFS Enterprise | . Find out more on the pricing page, or contact us for details. ", "url": "/understand/#products", "relUrl": "/understand/#products" - },"279": { - "doc": "Documentation", - "title": "lakeFS Documentation", - "content": "Any contribution to the docs, whether it is in conjunction with a code contribution or as a standalone, is appreciated. Please see the contributing guide for details on contributing to lakeFS in general. ", - "url": "/project/docs/#lakefs-documentation", - - "relUrl": "/project/docs/#lakefs-documentation" - },"280": { - "doc": "Documentation", - "title": "Table of contents", - "content": ". | lakeFS Documentation Philosophy | lakeFS Style Guide: | Headings and Table of Contents | Callouts 💬 | Links 🔗 | Test your changes locally | Link Checking locally | . 📝 Notice! lakeFS documentation is written using Markdown. Make sure to familiarize yourself with the Markdown Guide. Customizing the lakeFS docs site should follow the following guidelines: Just The Docs Customization and style-guide. ", - "url": "/project/docs/#table-of-contents", - - "relUrl": "/project/docs/#table-of-contents" - },"281": { - "doc": "Documentation", - "title": "lakeFS Documentation Philosophy", - "content": "We are heavily inspired by the Diátaxis approach to documentation. At a very high-level, it defines documentation as falling into one of four categories: . | How To | Tutorial | Reference | Explanation | . There is a lot more to it than this, and you are encouraged to read the Diátaxis website for more details. Its application to lakeFS was discussed in #6197 . ", - "url": "/project/docs/#lakefs-documentation-philosophy", - - "relUrl": "/project/docs/#lakefs-documentation-philosophy" - },"282": { - "doc": "Documentation", - "title": "lakeFS Style Guide:", - "content": ". | Don’t use unnecessary tech jargon or vague/wordy constructions - keep it friendly, not condescending. | Be inclusive and welcoming - use gender-neutral words and pronouns when talking about abstract people like users and developers. | Replace complex expressions with simpler ones. | Keep it short - 25-30 words max per sentence. Otherwise, your readers might get lost on the way. | Use active voice instead of passive. For example: This feature can be used to do task X. vs. You can use this feature to do task X. The second one reads much better, right? | You can explain things better by including examples. Show, not tell. Use illustrations, images, gifs, code snippets, etc. | Establish a visual hierarchy to help people quickly find the information they need. Use text formatting to create levels of title and subtitle (such as # to ###### markdown headings). The title of every page should use the topmost heading #; all other headings on the page should use lower headers ## to ######. | . ", - "url": "/project/docs/#lakefs-style-guide", - - "relUrl": "/project/docs/#lakefs-style-guide" - },"283": { - "doc": "Documentation", - "title": "Headings and Table of Contents", - "content": "The title of the page should be H1 (# in markdown). Use headings in descending order and do not skip any. Pages should generally have a table of contents to help the user navigate it. Use the following snippet to add it to your page: . <div class=\"toc-block\"> ## {: .no_toc .text-delta } 1. TOC {:toc} {::options toc_levels=\"2\" /} </div> . By default the page’s Table of Contents will include only H2 headings. If you want to include H2 and H3 then use this snippet instead: . <div class=\"toc-block\"> ## {: .no_toc .text-delta } 1. TOC {:toc} {::options toc_levels=\"2..3\" /} </div> . Both of these snippets invoke {:toc} which is used by Kramdown (the Markdown processor that Jekyll uses) to insert a table of contents from the headings present in the markdown. ", - "url": "/project/docs/#headings-and-table-of-contents", - - "relUrl": "/project/docs/#headings-and-table-of-contents" - },"284": { - "doc": "Documentation", - "title": "Callouts 💬", - "content": "Multiple callout types are available. Please review this page for details. ", - "url": "/project/docs/#callouts-", - - "relUrl": "/project/docs/#callouts-" - },"285": { - "doc": "Documentation", - "title": "Links 🔗", - "content": "Links should use absolute paths in conjunction with {% link %}, e.g. {% link foo/example.md %}. Adding a link with an anchor is a bit trickier. Create a reference [link text][link-reference] and then define the anchor at the end of the document: . [link-reference]: {% link foo.example.md %}#anchor . This is so that references work within the versioned documentation that is deployed. Relative links, unless within the local folder, are discouraged as it can cause additional work when moving pages at a later date. ", - "url": "/project/docs/#links-", - - "relUrl": "/project/docs/#links-" - },"286": { - "doc": "Documentation", - "title": "Test your changes locally", - "content": "If you have the necessary dependencies installed, you can run Jekyll to build and serve the documentation from your machine using the provided Makefile target: . make docs-serve . The alternative is to use Docker which has the benefit of handling all the dependencies for you. Docker . | Launch the Docker container: . docker run --rm \\ --name lakefs_docs \\ -e TZ=\"Etc/UTC\" \\ --publish 4000:4000 --publish 35729:35729 \\ --volume=\"$PWD/docs:/srv/jekyll:Z\" \\ --volume=\"$PWD/docs/.jekyll-bundle-cache:/usr/local/bundle:Z\" \\ --interactive --tty \\ jekyll/jekyll:3.8 \\ jekyll serve --livereload . If you have make installed, you can also run make docs-serve-docker instead. | The first time you run the container it will need to download dependencies and will take several minutes to be ready. Once you see the following output, the docs server is ready to open in your web browser: . Server running... press ctrl-c to stop. | When you make a change to a page’s source the server will automatically rebuild the page which will be shown in the server log by this entry: . Regenerating: 1 file(s) changed at 2023-01-26 08:34:47 contributing.md Remote Theme: Using theme pmarsceill/just-the-docs . This can take a short while—you’ll see something like this in the server’s output when it’s done...done in 34.714073460 seconds. Your page will automatically reload to show the changes. | . If you are doing lots of work on the docs you may want to leave the Docker container in place (so that you don’t have to wait for the dependencies to load each time you re-create it). To do this replace the --rm with --detach in the docker run command, and use docker logs -f lakefs_docs to view the server log. ", - "url": "/project/docs/#test-your-changes-locally", - - "relUrl": "/project/docs/#test-your-changes-locally" - },"287": { - "doc": "Documentation", - "title": "Link Checking locally", - "content": "When making a pull request to lakeFS that involves a docs/* file, a GitHub action will automagically check the links. You can also run this link checker manually on your local machine: . | Build the site: . docker run --rm \\ --name lakefs_docs \\ -e TZ=\"Etc/UTC\" \\ --volume=\"$PWD/docs:/srv/jekyll:Z\" \\ --volume=\"$PWD/docs/.jekyll-bundle-cache:/usr/local/bundle:Z\" \\ --interactive --tty \\ jekyll/jekyll:3.8 \\ jekyll build --config _config.yml -d _site --watch . | Check the links: . docker run --rm \\ --name lakefs_docs_lychee \\ --volume \"$PWD:/data\"\\ --volume \"/tmp:/output\"\\ --tty \\ lycheeverse/lychee:master \\ --exclude-file /data/docs/.lycheeignore \\ --output /output/lychee_report.md \\ --format markdown \\ /data/docs/_site . | Review the lychee_report.md in your local /tmp folder . | . ", - "url": "/project/docs/#link-checking-locally", - - "relUrl": "/project/docs/#link-checking-locally" - },"288": { - "doc": "Documentation", - "title": "Documentation", - "content": " ", - "url": "/project/docs/", - - "relUrl": "/project/docs/" - },"289": { - "doc": "The lakeFS Project", - "title": "The lakeFS Project", - "content": "lakeFS provides version control over the data lake and lakehouse, and uses Git-like semantics to create and access those versions. If you know git, you’ll be right at home with lakeFS. lakeFS is an open-source project under the Apache 2.0 license. The project was created and is supported by Treeverse, a commercial company founded by engineers passionate about providing solutions to the evolving world of data engineering. ", - "url": "/project/", - - "relUrl": "/project/" - },"290": { - "doc": "The lakeFS Project", - "title": "Table of contents", - "content": ". | Our commitment to open source | Roadmap | . ", - "url": "/project/#table-of-contents", - - "relUrl": "/project/#table-of-contents" },"291": { - "doc": "The lakeFS Project", - "title": "Our commitment to open source", - "content": "lakeFS is an open-source project under the Apache 2.0 license. The project was created and is supported by Treeverse, a commercial company founded by engineers passionate about providing solutions to the evolving world of data engineering. Why did we choose to open the source of our core capabilities? . We believe in the bottom-up adoption of technologies. We believe collaborative communities have the power to bring the best solutions to the community. We believe that every engineer should be able to use, contribute to, and influence cutting edge technologies, so they can innovate in their domain. What is our commitment to open source? . We created lakeFS, our open-source project, to provide a Git-like interface on top of object stores - so that you can fully take advantage of with any data application at any scale. For that reason, we commit that the following capabilities are and will remain open-source as part of lakeFS: . | All versioning capabilities, | Git-Like interface for the versioning operations, | Support for public object store APIs, | Integrations with publicly available applications accessing an object store, | CLI, API, and GUI interfaces. | . We also commit to keeping lakeFS scalable in throughput and performance. We are deeply committed to our community of engineers who use and contribute to the project. We are and will continue to be highly responsive and shape lakeFS together to provide the data versioning capabilities we are all looking for. What is lakeFS Cloud? . Treeverse offers lakeFS Cloud, which provides all the same benefits of the Git-like interface on top of object stores as a fully-managed service. The vision behind lakeFS Cloud is to provide a managed data versioning and management solution for data practitioners. lakeFS Cloud will leverage the lakeFS open-source technology, integrate capabilities and unique features, and lead its users to implement best practices. As part of our commitment to the open source values of transparency and interoperability, we believe everyone should be able to enjoy these benefits, regardless of whether or not they choose to use the managed offering. Because of that, we will not intentionally make it harder to build these features independently on top of the open source solution. ", - "url": "/project/#our-commitment-to-open-source", + "doc": "⭐ Quickstart", + "title": "lakeFS Quickstart", + "content": "Welcome to lakeFS! . lakeFS provides a “Git for data” platform enabling you to implement best practices from software engineering on your data lake, including branching and merging, CI/CD, and production-like dev/test environments. This quickstart will introduce you to some of the core ideas in lakeFS and show what you can do by illustrating the concept of branching, merging, and rolling back changes to data. It’s laid out in five short sections: . Launch . Spin up the quickstart environment locally under Docker . Query . Query the pre-populated data on the main branch . Branch . Make changes to the data on a new branch . Merge . Merge the changed data back to the main branch . Rollback . Change our mind and revert the changes . Actions . Use Actions to trigger code when an event occurs . You can use the 30-day free trial of lakeFS Cloud if you want to try out lakeFS without installing anything. ", + "url": "/quickstart/#lakefs-quickstart", - "relUrl": "/project/#our-commitment-to-open-source" + "relUrl": "/quickstart/#lakefs-quickstart" },"292": { - "doc": "The lakeFS Project", - "title": "Roadmap", - "content": "This is the lakeFS public roadmap. As the project evolves and the community grows, this roadmap might change. Please share your feedback on the #dev on Slack or by starting a GitHub Discussion! . ", - "url": "/project/#roadmap", + "doc": "⭐ Quickstart", + "title": "⭐ Quickstart", + "content": " ", + "url": "/quickstart/", - "relUrl": "/project/#roadmap" + "relUrl": "/quickstart/" },"293": { "doc": "Welcome to lakeFS", "title": "Welcome to the Lake!", @@ -2974,54 +2974,54 @@ "relUrl": "/understand/use_cases/reproducibility.html" },"425": { - "doc": "5️⃣ Roll back Changes", - "title": "Rolling back Changes in lakeFS", - "content": "Our intrepid user (you) merged a change back into the main branch and realised that they had made a mistake 🤦🏻. The good news for them (you) is that lakeFS can revert changes made, similar to how you would in Git 😅. From your terminal window run lakectl with the revert command: . docker exec -it lakefs \\ lakectl branch revert \\ lakefs://quickstart/main \\ main --parent-number 1 --yes . You should see a confirmation of a successful rollback: . Branch: lakefs://quickstart/main commit main successfully reverted . Back in the object page and the DuckDB query we can see that the original file is now back to how it was: . ", - "url": "/quickstart/rollback.html#rolling-back-changes-in-lakefs", - - "relUrl": "/quickstart/rollback.html#rolling-back-changes-in-lakefs" - },"426": { - "doc": "5️⃣ Roll back Changes", - "title": "5️⃣ Roll back Changes", - "content": " ", - "url": "/quickstart/rollback.html", - - "relUrl": "/quickstart/rollback.html" - },"427": { "doc": "Rollback", "title": "Rollbacks", "content": " ", "url": "/understand/use_cases/rollback.html#rollbacks", "relUrl": "/understand/use_cases/rollback.html#rollbacks" - },"428": { + },"426": { "doc": "Rollback", "title": "What Is a Rollback?", "content": "A rollback operation is used to to fix critical data errors immediately. What is a critical data error? Think of a situation where erroneous or misformatted data causes a significant issue with an important service or function. In such situations, the first thing to do is stop the bleeding. Rolling back returns data to a state in the past, before the error was present. You might not be showing all the latest data after a rollback, but at least you aren’t showing incorrect data or raising errors. ", "url": "/understand/use_cases/rollback.html#what-is-a-rollback", "relUrl": "/understand/use_cases/rollback.html#what-is-a-rollback" - },"429": { + },"427": { "doc": "Rollback", "title": "Why Rollbacks Are Useful", "content": "A Rollback is used as a stopgap measure to “put out the fire” as quickly as possible while RCA (root cause analysis) is performed to understand 1) exactly how the error happened, and 2) what can be done to prevent it from happening again. It can be a pressured, stressful situation to deal with a critical data error. Having the ability to employ a rollback relieves some of the pressure and makes it more likely you can figure out what happened without creating additional issues. As a real world example, the 14-day outage some Atlassian users experienced in May 2022 could have been an uninteresting minor incident had rolling back the deleted customer data been an option. ", "url": "/understand/use_cases/rollback.html#why-rollbacks-are-useful", "relUrl": "/understand/use_cases/rollback.html#why-rollbacks-are-useful" - },"430": { + },"428": { "doc": "Rollback", "title": "Performing Rollbacks with lakeFS", "content": "lakeFS lets you develop in your data lake in such a way that rollbacks are simple to perform. This starts by taking a commit over your lakeFS repository whenever a change to its state occurs. Using the lakeFS UI or CLI, you can set the current state, or HEAD, of a branch to any historical commit in seconds, effectively performing a rollback. To demonstrate how this works, let’s take the example of a lakeFS repo with the following commit history: . As can be inferred from the history, this repo is updated every minute with a data sync from some data source. An example data sync is a typical ETL job that replicates data from an internal database or any other data source. After each sync, a commit is taken in lakeFS to save a snapshot of data at that point in time. How to Rollback From a Bad Data Sync? . Say a situation occurs where one of the syncs had bad data and is causing downstream dashboards to fail to load. Since we took a commit of the repo right after the sync ran, we can use a revert operation to undo the changes introduced in that sync. Step 1: Copy the commit_id associated with the commit we want to revert. As the screenshot above shows, you can use the Copy ID to Clipboard button to do this. Step 2: Run the revert command using lakectl, the lakeFS CLI. In this example, the command will be as follows: . lakectl branch revert lakefs://example/main 9666d7c9daf37b3ba6964e733d08596ace2ec2c7bc3a4023ad8e80737a6c3e9d . This will undo the changes introduced by this commit, completing the rollback! . The rollback operation is that simple, even if many changes were introduced in a commit, spanning acrossmultiple data collections. In lakeFS, rolling back data is always a one-liner. ", "url": "/understand/use_cases/rollback.html#performing-rollbacks-with-lakefs", "relUrl": "/understand/use_cases/rollback.html#performing-rollbacks-with-lakefs" - },"431": { + },"429": { "doc": "Rollback", "title": "Rollback", "content": " ", "url": "/understand/use_cases/rollback.html", "relUrl": "/understand/use_cases/rollback.html" + },"430": { + "doc": "5️⃣ Roll back Changes", + "title": "Rolling back Changes in lakeFS", + "content": "Our intrepid user (you) merged a change back into the main branch and realised that they had made a mistake 🤦🏻. The good news for them (you) is that lakeFS can revert changes made, similar to how you would in Git 😅. From your terminal window run lakectl with the revert command: . docker exec -it lakefs \\ lakectl branch revert \\ lakefs://quickstart/main \\ main --parent-number 1 --yes . You should see a confirmation of a successful rollback: . Branch: lakefs://quickstart/main commit main successfully reverted . Back in the object page and the DuckDB query we can see that the original file is now back to how it was: . ", + "url": "/quickstart/rollback.html#rolling-back-changes-in-lakefs", + + "relUrl": "/quickstart/rollback.html#rolling-back-changes-in-lakefs" + },"431": { + "doc": "5️⃣ Roll back Changes", + "title": "5️⃣ Roll back Changes", + "content": " ", + "url": "/quickstart/rollback.html", + + "relUrl": "/quickstart/rollback.html" },"432": { "doc": "S3 Gateway API", "title": "S3-Supported API", diff --git a/assets/js/swagger.yml b/assets/js/swagger.yml index b12b2f395..95eb69937 100644 --- a/assets/js/swagger.yml +++ b/assets/js/swagger.yml @@ -585,14 +585,17 @@ components: TagCreation: type: object + description: Make tag ID point at this REF. required: - id - ref properties: id: type: string + description: ID of tag to create ref: type: string + description: the commit to tag TaskInfo: type: object diff --git a/posts/index.html b/posts/index.html index 303532597..ddd9a12d8 100644 --- a/posts/index.html +++ b/posts/index.html @@ -519,11 +519,11 @@

Table of contents

  • - ⭐ Quickstart + Install lakeFS
  • - Install lakeFS + ⭐ Quickstart
  • @@ -575,11 +575,11 @@

    Table of contents

  • - Slack + The lakeFS Project
  • - The lakeFS Project + Slack
  • @@ -807,35 +807,27 @@

    Table of contents

  • - -
  • - -
  • - -
  • - -
  • - +
  • - +
  • - +
  • - +
  • - +
  • - +
  • @@ -899,27 +891,35 @@

    Table of contents

  • - +
  • - +
  • - +
  • - +
  • - +
  • - + +
  • + +
  • + +
  • + +
  • +
  • diff --git a/redirects.json b/redirects.json index dd9300f17..011aefe13 100644 --- a/redirects.json +++ b/redirects.json @@ -1 +1 @@ -{"/reference/access-control-list.html":"/reference/security/access-control-lists.html","/reference/access-control-lists.html":"/reference/security/access-control-lists.html","/using/airflow.html":"/integrations/airflow.html","/hooks/airflow.html":"/howto/hooks/airflow.html","/architecture/index.html":"/understand/architecture.html","/architecture/overview.html":"/understand/architecture.html","/using/athena.html":"/integrations/athena.html","/audit.html":"/reference/auditing.html","/reference/audit.html":"/reference/auditing.html","/cloud/auditing.html":"/reference/auditing.html","/reference/authentication.html":"/reference/security/authentication.html","/deploying-aws/index.html":"/howto/deploy/aws.html","/deploying-aws/install.html":"/howto/deploy/aws.html","/deploying-aws/db.html":"/howto/deploy/aws.html","/deploying-aws/lb_dns.html":"/howto/deploy/aws.html","/setup/storage/s3.html":"/howto/deploy/aws.html","/deploy/aws.html":"/howto/deploy/aws.html","/using/aws_cli.html":"/integrations/aws_cli.html","/setup/storage/blob.html":"/howto/deploy/azure.html","/deploy/azure.html":"/howto/deploy/azure.html","/callouts.html":"/project/docs/callouts.html","/data_lifecycle_management/ci.html":"/understand/data_lifecycle_management/ci.html","/use_cases/cicd_for_data.html":"/understand/use_cases/cicd_for_data.html","/usecases/ci.html":"/understand/use_cases/cicd_for_data.html","/usecases/cd.html":"/understand/use_cases/cicd_for_data.html","/reference/commands.html":"/reference/cli.html","/quickstart/lakefs_cli.html":"/reference/cli.html","/contributing.html":"/project/contributing.html","/integrations/distcp.html":"/howto/copying.html","/integrations/rclone.html":"/howto/copying.html","/data_lifecycle_management/data-devenv.html":"/understand/data_lifecycle_management/data-devenv.html","/usecases/data-devenv.html":"/understand/data_lifecycle_management/data-devenv.html","/using/dremio.html":"/integrations/dremio.html","/use_cases/etl_testing.html":"/understand/use_cases/etl_testing.html","/use_cases/iso_env.html":"/understand/use_cases/etl_testing.html","/quickstart/iso_env.html":"/understand/use_cases/etl_testing.html","/reference/export.html":"/howto/export.html","/faq.html":"/understand/faq.html","/howto/garbage-collection/index.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection/committed.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection/uncommitted.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection/internals.html":"/howto/garbage-collection/gc.html","/reference/garbage-collection.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection-index.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection.html":"/howto/garbage-collection/gc.html","/reference/retention.html":"/howto/garbage-collection/gc.html","/setup/storage/gcs.html":"/howto/deploy/gcp.html","/deploy/gcp.html":"/howto/deploy/gcp.html","/reference/glossary.html":"/understand/glossary.html","/glossary.html":"/understand/glossary.html","/using/glue_hive_metastore.html":"/integrations/glue_hive_metastore.html","/using/glue_metastore.html":"/integrations/glue_metastore.html","/using/hive.html":"/integrations/hive.html","/setup/import.html":"/howto/import.html","/using":"/integrations/","/quickstart.html":"/quickstart/","/quickstart/installing.html":"/quickstart/","/quickstart/try.html":"/quickstart/","/quickstart/add_data.html":"/quickstart/","/quickstart/more_quickstart_options.html":"/quickstart/","/quickstart/repository.html":"/quickstart/","/quickstart/run.html":"/quickstart/","/quickstart/first_commit.html":"/quickstart/","/slack/":"https://lakefs.io/slack","/reference/hooks.html":"/howto/hooks/","/hooks.html":"/howto/hooks/","/hooks/overview.html":"/howto/hooks/","/hooks/index.html":"/howto/hooks/","/hooks/":"/howto/hooks/","/setup/hooks.html":"/howto/hooks/","/setup/":"/howto/deploy/","/setup/storage/index.html":"/howto/deploy/","/setup/create-repo.html":"/howto/deploy/","/deploy/":"/howto/deploy/","/deploy/index.html":"/howto/deploy/","/use_cases/":"/understand/use_cases/","/use_cases/index.html":"/understand/use_cases/","/branching/recommendations.html":"/understand/data_lifecycle_management/","/using_lakefs.html":"/understand/data_lifecycle_management/","/README.html":"/project/docs/","/understand/licensing.html":"/project/","/licensing.html":"/project/","/commitment.html":"/project/","/roadmap.html":"/project/","/understand/roadmap.html":"/project/","/downloads.html":"/","/using/kakfa.html":"/integrations/kafka.html","/integrations/kakfa.html":"/integrations/kafka.html","/understand/kv-in-a-nutshell.html":"/understand/how/kv.html","/cloud.html":"/understand/lakefs-cloud.html","/cloud/index.html":"/understand/lakefs-cloud.html","/enterprise/index.html":"/understand/lakefs-enterprise.html","/hooks/lua.html":"/howto/hooks/lua.html","/cloud/managed-gc.html":"/howto/garbage-collection/managed-gc.html","/reference/merge.html":"/understand/how/merge.html","/understand/merge.html":"/understand/how/merge.html","/deploying-aws/offboarding.html":"/howto/migrate-away.html","/reference/offboarding.html":"/howto/migrate-away.html","/reference/object-model.html":"/understand/model.html","/understand/branching-model.html":"/understand/model.html","/understand/object-model.html":"/understand/model.html","/deploying-aws/monitor.md":"/reference/monitor.html","/deploy/k8s.html":"/howto/deploy/onprem.html","/deploy/docker.html":"/howto/deploy/onprem.html","/integrations/minio.html":"/howto/deploy/onprem.html","/using/minio.html":"/howto/deploy/onprem.html","/deploy/onprem.html":"/howto/deploy/onprem.html","/deploying/install.html":"/howto/deploy/onprem.html","/reference/presigned-url.html":"/reference/security/presigned-url.html","/integrations/presto.html":"/integrations/presto_trino.html","/using/presto.html":"/integrations/presto_trino.html","/cloud/private-link.html":"/howto/private-link.html","/data_lifecycle_management/production.html":"/understand/data_lifecycle_management/production.html","/usecases/production.html":"/understand/data_lifecycle_management/production.html","/reference/protected_branches.html":"/howto/protect-branches.html","/using/python.html":"/integrations/python.html","/using/boto.html":"/integrations/python.html","/integrations/boto.html":"/integrations/python.html","/reference/authorization.html":"/reference/security/rbac.html","/reference/rbac.html":"/reference/security/rbac.html","/reference/remote-authenticator.html":"/reference/security/remote-authenticator.html","/use_cases/reproducibility.html":"/understand/use_cases/reproducibility.html","/use_cases/rollback.html":"/understand/use_cases/rollback.html","/using/sagemaker.html":"/integrations/sagemaker.html","/architecture/sizing-guide.html":"/howto/sizing-guide.html","/understand/sizing-guide.html":"/howto/sizing-guide.html","/integrations/databricks.html":"/integrations/spark.html","/integrations/emr.html":"/integrations/spark.html","/integrations/glue_etl.html":"/integrations/spark.html","/using/databricks.html":"/integrations/spark.html","/using/emr.html":"/integrations/spark.html","/using/glue_etl.html":"/integrations/spark.html","/using/spark.html":"/integrations/spark.html","/cloud/sso.html":"/reference/security/sso.html","/enterprise/sso.html":"/reference/security/sso.html","/cloud/unity-delta-sharing.html":"/howto/unity-delta-sharing.html","/cloud/unity-delta-sharing-m0-users":"/howto/unity-delta-sharing.html","/deploying-aws/upgrade.html":"/howto/deploy/upgrade.html","/reference/upgrade.html":"/howto/deploy/upgrade.html","/howto/upgrade.html":"/howto/deploy/upgrade.html","/understand/architecture/data-model.html":"/understand/how/versioning-internals.html","/understand/understand/data-model.html":"/understand/how/versioning-internals.html","/understand/data-model.html":"/understand/how/versioning-internals.html","/understand/versioning-internals.html":"/understand/how/versioning-internals.html","/hooks/webhooks.html":"/howto/hooks/webhooks.html"} \ No newline at end of file +{"/reference/access-control-list.html":"/reference/security/access-control-lists.html","/reference/access-control-lists.html":"/reference/security/access-control-lists.html","/using/airflow.html":"/integrations/airflow.html","/hooks/airflow.html":"/howto/hooks/airflow.html","/architecture/index.html":"/understand/architecture.html","/architecture/overview.html":"/understand/architecture.html","/using/athena.html":"/integrations/athena.html","/audit.html":"/reference/auditing.html","/reference/audit.html":"/reference/auditing.html","/cloud/auditing.html":"/reference/auditing.html","/reference/authentication.html":"/reference/security/authentication.html","/deploying-aws/index.html":"/howto/deploy/aws.html","/deploying-aws/install.html":"/howto/deploy/aws.html","/deploying-aws/db.html":"/howto/deploy/aws.html","/deploying-aws/lb_dns.html":"/howto/deploy/aws.html","/setup/storage/s3.html":"/howto/deploy/aws.html","/deploy/aws.html":"/howto/deploy/aws.html","/using/aws_cli.html":"/integrations/aws_cli.html","/setup/storage/blob.html":"/howto/deploy/azure.html","/deploy/azure.html":"/howto/deploy/azure.html","/callouts.html":"/project/docs/callouts.html","/data_lifecycle_management/ci.html":"/understand/data_lifecycle_management/ci.html","/use_cases/cicd_for_data.html":"/understand/use_cases/cicd_for_data.html","/usecases/ci.html":"/understand/use_cases/cicd_for_data.html","/usecases/cd.html":"/understand/use_cases/cicd_for_data.html","/reference/commands.html":"/reference/cli.html","/quickstart/lakefs_cli.html":"/reference/cli.html","/contributing.html":"/project/contributing.html","/integrations/distcp.html":"/howto/copying.html","/integrations/rclone.html":"/howto/copying.html","/data_lifecycle_management/data-devenv.html":"/understand/data_lifecycle_management/data-devenv.html","/usecases/data-devenv.html":"/understand/data_lifecycle_management/data-devenv.html","/using/dremio.html":"/integrations/dremio.html","/use_cases/etl_testing.html":"/understand/use_cases/etl_testing.html","/use_cases/iso_env.html":"/understand/use_cases/etl_testing.html","/quickstart/iso_env.html":"/understand/use_cases/etl_testing.html","/reference/export.html":"/howto/export.html","/faq.html":"/understand/faq.html","/howto/garbage-collection/index.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection/committed.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection/uncommitted.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection/internals.html":"/howto/garbage-collection/gc.html","/reference/garbage-collection.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection-index.html":"/howto/garbage-collection/gc.html","/howto/garbage-collection.html":"/howto/garbage-collection/gc.html","/reference/retention.html":"/howto/garbage-collection/gc.html","/setup/storage/gcs.html":"/howto/deploy/gcp.html","/deploy/gcp.html":"/howto/deploy/gcp.html","/reference/glossary.html":"/understand/glossary.html","/glossary.html":"/understand/glossary.html","/using/glue_hive_metastore.html":"/integrations/glue_hive_metastore.html","/using/glue_metastore.html":"/integrations/glue_metastore.html","/using/hive.html":"/integrations/hive.html","/setup/import.html":"/howto/import.html","/using":"/integrations/","/README.html":"/project/docs/","/understand/licensing.html":"/project/","/licensing.html":"/project/","/commitment.html":"/project/","/roadmap.html":"/project/","/understand/roadmap.html":"/project/","/reference/hooks.html":"/howto/hooks/","/hooks.html":"/howto/hooks/","/hooks/overview.html":"/howto/hooks/","/hooks/index.html":"/howto/hooks/","/hooks/":"/howto/hooks/","/setup/hooks.html":"/howto/hooks/","/setup/":"/howto/deploy/","/setup/storage/index.html":"/howto/deploy/","/setup/create-repo.html":"/howto/deploy/","/deploy/":"/howto/deploy/","/deploy/index.html":"/howto/deploy/","/slack/":"https://lakefs.io/slack","/use_cases/":"/understand/use_cases/","/use_cases/index.html":"/understand/use_cases/","/branching/recommendations.html":"/understand/data_lifecycle_management/","/using_lakefs.html":"/understand/data_lifecycle_management/","/quickstart.html":"/quickstart/","/quickstart/installing.html":"/quickstart/","/quickstart/try.html":"/quickstart/","/quickstart/add_data.html":"/quickstart/","/quickstart/more_quickstart_options.html":"/quickstart/","/quickstart/repository.html":"/quickstart/","/quickstart/run.html":"/quickstart/","/quickstart/first_commit.html":"/quickstart/","/downloads.html":"/","/using/kakfa.html":"/integrations/kafka.html","/integrations/kakfa.html":"/integrations/kafka.html","/understand/kv-in-a-nutshell.html":"/understand/how/kv.html","/cloud.html":"/understand/lakefs-cloud.html","/cloud/index.html":"/understand/lakefs-cloud.html","/enterprise/index.html":"/understand/lakefs-enterprise.html","/hooks/lua.html":"/howto/hooks/lua.html","/cloud/managed-gc.html":"/howto/garbage-collection/managed-gc.html","/reference/merge.html":"/understand/how/merge.html","/understand/merge.html":"/understand/how/merge.html","/deploying-aws/offboarding.html":"/howto/migrate-away.html","/reference/offboarding.html":"/howto/migrate-away.html","/reference/object-model.html":"/understand/model.html","/understand/branching-model.html":"/understand/model.html","/understand/object-model.html":"/understand/model.html","/deploying-aws/monitor.md":"/reference/monitor.html","/deploy/k8s.html":"/howto/deploy/onprem.html","/deploy/docker.html":"/howto/deploy/onprem.html","/integrations/minio.html":"/howto/deploy/onprem.html","/using/minio.html":"/howto/deploy/onprem.html","/deploy/onprem.html":"/howto/deploy/onprem.html","/deploying/install.html":"/howto/deploy/onprem.html","/reference/presigned-url.html":"/reference/security/presigned-url.html","/integrations/presto.html":"/integrations/presto_trino.html","/using/presto.html":"/integrations/presto_trino.html","/cloud/private-link.html":"/howto/private-link.html","/data_lifecycle_management/production.html":"/understand/data_lifecycle_management/production.html","/usecases/production.html":"/understand/data_lifecycle_management/production.html","/reference/protected_branches.html":"/howto/protect-branches.html","/using/python.html":"/integrations/python.html","/using/boto.html":"/integrations/python.html","/integrations/boto.html":"/integrations/python.html","/reference/authorization.html":"/reference/security/rbac.html","/reference/rbac.html":"/reference/security/rbac.html","/reference/remote-authenticator.html":"/reference/security/remote-authenticator.html","/use_cases/reproducibility.html":"/understand/use_cases/reproducibility.html","/use_cases/rollback.html":"/understand/use_cases/rollback.html","/using/sagemaker.html":"/integrations/sagemaker.html","/architecture/sizing-guide.html":"/howto/sizing-guide.html","/understand/sizing-guide.html":"/howto/sizing-guide.html","/integrations/databricks.html":"/integrations/spark.html","/integrations/emr.html":"/integrations/spark.html","/integrations/glue_etl.html":"/integrations/spark.html","/using/databricks.html":"/integrations/spark.html","/using/emr.html":"/integrations/spark.html","/using/glue_etl.html":"/integrations/spark.html","/using/spark.html":"/integrations/spark.html","/cloud/sso.html":"/reference/security/sso.html","/enterprise/sso.html":"/reference/security/sso.html","/cloud/unity-delta-sharing.html":"/howto/unity-delta-sharing.html","/cloud/unity-delta-sharing-m0-users":"/howto/unity-delta-sharing.html","/deploying-aws/upgrade.html":"/howto/deploy/upgrade.html","/reference/upgrade.html":"/howto/deploy/upgrade.html","/howto/upgrade.html":"/howto/deploy/upgrade.html","/understand/architecture/data-model.html":"/understand/how/versioning-internals.html","/understand/understand/data-model.html":"/understand/how/versioning-internals.html","/understand/data-model.html":"/understand/how/versioning-internals.html","/understand/versioning-internals.html":"/understand/how/versioning-internals.html","/hooks/webhooks.html":"/howto/hooks/webhooks.html"} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 6c6e34b2b..a06667476 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -124,7 +124,7 @@ /integrations/ -/quickstart/ +/posts/ /reference/security/ @@ -133,12 +133,18 @@ /reference/ -/howto/hooks/ +/project/docs/ + + +/project/ /howto/garbage-collection/ +/howto/hooks/ + + /howto/deploy/ @@ -157,13 +163,7 @@ /understand/ -/project/docs/ - - -/project/ - - -/posts/ +/quickstart/ / @@ -247,10 +247,10 @@ /understand/use_cases/reproducibility.html -/quickstart/rollback.html +/understand/use_cases/rollback.html -/understand/use_cases/rollback.html +/quickstart/rollback.html /reference/s3.html