{"catalogRevision":"cat_f13ab9a494120b5e","nodeId":"migration:self-managed-postgresql","label":"Self-managed PostgreSQL","facet":"migration","nodeType":"atom","canonicalPath":"/discover/migration/self-managed-postgresql","breadcrumbs":[{"id":"discovery","label":"Agent hosting discovery","canonicalPath":"/discover/discovery","kind":"root"},{"id":"migration","label":"Migration sources by component","canonicalPath":"/discover/migration","kind":"facet"},{"id":"migration:postgres-sources","label":"Postgres sources","canonicalPath":"/discover/migration/postgres-sources","kind":"group"},{"id":"migration:self-managed-postgresql","label":"Self-managed PostgreSQL","canonicalPath":"/discover/migration/self-managed-postgresql","kind":"atom"}],"parents":{"items":[{"id":"migration:postgres-sources","label":"Postgres sources","canonicalPath":"/discover/migration/postgres-sources","kind":"group"}],"total":1,"offset":0,"limit":100},"children":{"items":[],"total":0,"offset":0,"limit":50},"recipes":{"items":[{"id":"page:migrate:self-managed-postgresql:relational-records","label":"Migrate Self-managed PostgreSQL: Relational records","canonicalPath":"/migrate/self-managed-postgresql/relational-records","kind":"recipe"},{"id":"page:migrate:self-managed-postgresql:transactional-workflows","label":"Migrate Self-managed PostgreSQL: Transactional workflows","canonicalPath":"/migrate/self-managed-postgresql/transactional-workflows","kind":"recipe"},{"id":"page:migrate:self-managed-postgresql:json-document-metadata","label":"Migrate Self-managed PostgreSQL: JSON document metadata","canonicalPath":"/migrate/self-managed-postgresql/json-document-metadata","kind":"recipe"},{"id":"page:migrate:self-managed-postgresql:multi-tenant-relational-data","label":"Migrate Self-managed PostgreSQL: Multi-tenant relational data","canonicalPath":"/migrate/self-managed-postgresql/multi-tenant-relational-data","kind":"recipe"},{"id":"page:migrate:self-managed-postgresql:text-search-over-records","label":"Migrate Self-managed PostgreSQL: Text search over records","canonicalPath":"/migrate/self-managed-postgresql/text-search-over-records","kind":"recipe"},{"id":"page:migrate:self-managed-postgresql:durable-job-state","label":"Migrate Self-managed PostgreSQL: Durable job state","canonicalPath":"/migrate/self-managed-postgresql/durable-job-state","kind":"recipe"}],"total":6,"offset":0,"limit":50},"related":[],"requiredBy":{"items":[],"total":0,"offset":0,"limit":50},"publishedRecipeCount":6,"scopeNote":"Component-scoped migration candidate. No product-level feature parity or drop-in compatibility is asserted.","nextActions":[{"actionId":"browse-catalog","label":"Browse the catalog index","operationId":"catalog_index","method":"GET","relativePath":"/v1/catalog","origin":"api","parameters":{},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"search-recipes","label":"Search published recipes by intent, stack and constraints","operationId":"search_recipes","method":"POST","relativePath":"/v1/catalog/search","origin":"api","parameters":{"body":{"limit":5,"query":"Self-managed PostgreSQL"}},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:migrate:self-managed-postgresql:relational-records","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Amigrate%3Aself-managed-postgresql%3Arelational-records","origin":"api","parameters":{"recipeId":"page:migrate:self-managed-postgresql:relational-records"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:migrate:self-managed-postgresql:transactional-workflows","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Amigrate%3Aself-managed-postgresql%3Atransactional-workflows","origin":"api","parameters":{"recipeId":"page:migrate:self-managed-postgresql:transactional-workflows"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:migrate:self-managed-postgresql:json-document-metadata","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Amigrate%3Aself-managed-postgresql%3Ajson-document-metadata","origin":"api","parameters":{"recipeId":"page:migrate:self-managed-postgresql:json-document-metadata"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:migrate:self-managed-postgresql:multi-tenant-relational-data","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Amigrate%3Aself-managed-postgresql%3Amulti-tenant-relational-data","origin":"api","parameters":{"recipeId":"page:migrate:self-managed-postgresql:multi-tenant-relational-data"},"requiresAuthentication":false,"requiresApproval":false},{"actionId":"inspect:page:migrate:self-managed-postgresql:text-search-over-records","label":"Inspect the full recipe contract","operationId":"inspect_recipe","method":"GET","relativePath":"/v1/catalog/recipes/page%3Amigrate%3Aself-managed-postgresql%3Atext-search-over-records","origin":"api","parameters":{"recipeId":"page:migrate:self-managed-postgresql:text-search-over-records"},"requiresAuthentication":false,"requiresApproval":false}]}