[{"data":1,"prerenderedAt":947},["ShallowReactive",2],{"navigation_docs_en":3,"-en-reference-api-reference-schema-migration-import-changes":297,"-en-reference-api-reference-schema-migration-import-changes-surround":942},[4,30,68,103,187,287],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fen\u002Fgetting-started","en\u002F1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F1.getting-started\u002F3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Use Cases","\u002Fen\u002Fgetting-started\u002Fuse-cases","en\u002F1.getting-started\u002F4.use-cases","i-lucide-layers",{"title":26,"path":27,"stem":28,"icon":29},"Concepts","\u002Fen\u002Fgetting-started\u002Fconcepts","en\u002F1.getting-started\u002F5.concepts","i-lucide-book",{"title":26,"path":31,"stem":32,"children":33,"page":6},"\u002Fen\u002Fconcepts","en\u002F2.concepts",[34,38,43,48,53,58,63],{"title":35,"path":36,"stem":37,"icon":14},"Organization","\u002Fen\u002Fconcepts\u002Forganization","en\u002F2.concepts\u002F1.organization",{"title":39,"path":40,"stem":41,"icon":42},"Data Model","\u002Fen\u002Fconcepts\u002Fdata-model","en\u002F2.concepts\u002F2.data-model","i-lucide-database",{"title":44,"path":45,"stem":46,"icon":47},"Access Control","\u002Fen\u002Fconcepts\u002Faccess-permissions","en\u002F2.concepts\u002F3.access-permissions","i-lucide-user-key",{"title":49,"path":50,"stem":51,"icon":52},"Audit Logs","\u002Fen\u002Fconcepts\u002Faudit-logs","en\u002F2.concepts\u002F4.audit-logs","i-lucide-scroll-text",{"title":54,"path":55,"stem":56,"icon":57},"Introspection","\u002Fen\u002Fconcepts\u002Fintrospection","en\u002F2.concepts\u002F6.introspection","i-lucide-database-search",{"title":59,"path":60,"stem":61,"icon":62},"Query Engine","\u002Fen\u002Fconcepts\u002Fquery-engine","en\u002F2.concepts\u002F7.query-engine","i-lucide-workflow",{"title":64,"path":65,"stem":66,"icon":67},"AI","\u002Fen\u002Fconcepts\u002Fai","en\u002F2.concepts\u002F8.ai","i-lucide-sparkles",{"title":69,"path":70,"stem":71,"children":72,"page":6},"Guides","\u002Fen\u002Fguides","en\u002F4.guides",[73,78,83,88,93,98],{"title":74,"path":75,"stem":76,"icon":77},"Build an Application with AI Assistance","\u002Fen\u002Fguides\u002Fbuild-an-application","en\u002F4.guides\u002F1.build-an-application","i-lucide-route",{"title":79,"path":80,"stem":81,"icon":82},"REST API Quickstart","\u002Fen\u002Fguides\u002Frest-api","en\u002F4.guides\u002F1.rest-api","i-lucide-plug",{"title":84,"path":85,"stem":86,"icon":87},"SDK Quickstart","\u002Fen\u002Fguides\u002Fsdk","en\u002F4.guides\u002F2.sdk","i-lucide-terminal",{"title":89,"path":90,"stem":91,"icon":92},"Configure SSO","\u002Fen\u002Fguides\u002Fconfigure-sso","en\u002F4.guides\u002F3.configure-sso","i-lucide-key-round",{"title":94,"path":95,"stem":96,"icon":97},"Configure MCP","\u002Fen\u002Fguides\u002Fmcp","en\u002F4.guides\u002F4.mcp","i-lucide-brain-cog",{"title":99,"path":100,"stem":101,"icon":102},"Customize Content Space","\u002Fen\u002Fguides\u002Fcustomize-content-space","en\u002F4.guides\u002F5.customize-content-space","i-lucide-columns-3-cog",{"title":104,"path":105,"stem":106,"children":107,"page":6},"Developer","\u002Fen\u002Fdeveloper","en\u002F5.developer",[108,163],{"title":109,"path":110,"stem":111,"children":112,"page":6},"Data Access","\u002Fen\u002Fdeveloper\u002Fapi","en\u002F5.developer\u002F1.api",[113,118,123,128,133,138,143,148,153,158],{"title":114,"path":115,"stem":116,"icon":117},"Overview","\u002Fen\u002Fdeveloper\u002Fapi\u002Foverview","en\u002F5.developer\u002F1.api\u002F1.overview","i-lucide-globe",{"title":119,"path":120,"stem":121,"icon":122},"Errors","\u002Fen\u002Fdeveloper\u002Fapi\u002Ferrors","en\u002F5.developer\u002F1.api\u002F10.errors","i-lucide-alert-triangle",{"title":124,"path":125,"stem":126,"icon":127},"Authentication","\u002Fen\u002Fdeveloper\u002Fapi\u002Fauthentication","en\u002F5.developer\u002F1.api\u002F2.authentication","i-lucide-lock",{"title":129,"path":130,"stem":131,"icon":132},"Reading Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Freading-data","en\u002F5.developer\u002F1.api\u002F3.reading-data","i-lucide-book-open",{"title":134,"path":135,"stem":136,"icon":137},"Writing Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Fwriting-data","en\u002F5.developer\u002F1.api\u002F4.writing-data","i-lucide-pencil",{"title":139,"path":140,"stem":141,"icon":142},"Filtering","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffiltering","en\u002F5.developer\u002F1.api\u002F5.filtering","i-lucide-filter",{"title":144,"path":145,"stem":146,"icon":147},"Field Selection","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffield-selection","en\u002F5.developer\u002F1.api\u002F6.field-selection","i-lucide-list-checks",{"title":149,"path":150,"stem":151,"icon":152},"Sorting & Pagination","\u002Fen\u002Fdeveloper\u002Fapi\u002Fsorting-pagination","en\u002F5.developer\u002F1.api\u002F7.sorting-pagination","i-lucide-arrow-up-down",{"title":154,"path":155,"stem":156,"icon":157},"Relational Data","\u002Fen\u002Fdeveloper\u002Fapi\u002Frelational-data","en\u002F5.developer\u002F1.api\u002F8.relational-data","i-lucide-network",{"title":159,"path":160,"stem":161,"icon":162},"Files & Assets","\u002Fen\u002Fdeveloper\u002Fapi\u002Ffiles","en\u002F5.developer\u002F1.api\u002F9.files","i-lucide-file-up",{"title":164,"path":165,"stem":166,"children":167,"page":6},"Client SDK","\u002Fen\u002Fdeveloper\u002Fsdk","en\u002F5.developer\u002F2.sdk",[168,172,177,182],{"title":169,"path":170,"stem":171,"icon":19},"Installation","\u002Fen\u002Fdeveloper\u002Fsdk\u002Finstallation","en\u002F5.developer\u002F2.sdk\u002F1.installation",{"title":173,"path":174,"stem":175,"icon":176},"Client Setup","\u002Fen\u002Fdeveloper\u002Fsdk\u002Fclient-setup","en\u002F5.developer\u002F2.sdk\u002F2.client-setup","i-lucide-settings",{"title":178,"path":179,"stem":180,"icon":181},"Type System","\u002Fen\u002Fdeveloper\u002Fsdk\u002Ftype-system","en\u002F5.developer\u002F2.sdk\u002F3.type-system","i-lucide-braces",{"title":183,"path":184,"stem":185,"icon":186},"Advanced","\u002Fen\u002Fdeveloper\u002Fsdk\u002Fadvanced","en\u002F5.developer\u002F2.sdk\u002F5.advanced","i-lucide-puzzle",{"title":188,"path":189,"stem":190,"children":191,"page":6},"Reference","\u002Fen\u002Freference","en\u002F6.reference",[192,196,212,216,221,258],{"title":193,"path":194,"stem":195,"icon":176},"Configuration","\u002Fen\u002Freference\u002Fenvironment-variables","en\u002F6.reference\u002F1.environment-variables",{"title":197,"path":198,"stem":199,"children":200,"icon":82},"Connectors","\u002Fen\u002Freference\u002Fconnectors","en\u002F6.reference\u002F2.connectors\u002Findex",[201,202,207],{"title":197,"path":198,"stem":199,"icon":82},{"title":203,"path":204,"stem":205,"icon":206},"PostgreSQL and Supabase","\u002Fen\u002Freference\u002Fconnectors\u002Fpostgresql-supabase","en\u002F6.reference\u002F2.connectors\u002F1.postgresql-supabase","i-simple-icons-postgresql",{"title":208,"path":209,"stem":210,"icon":211},"MySQL and MariaDB","\u002Fen\u002Freference\u002Fconnectors\u002Fmysql-mariadb","en\u002F6.reference\u002F2.connectors\u002F2.mysql-mariadb","i-simple-icons-mysql",{"title":213,"path":214,"stem":215,"icon":181},"Data Types Representation","\u002Fen\u002Freference\u002Fdata-types","en\u002F6.reference\u002F3.data-types",{"title":217,"path":218,"stem":219,"icon":220},"Permissions Reference","\u002Fen\u002Freference\u002Fpermissions","en\u002F6.reference\u002F4.permissions","i-lucide-shield",{"title":222,"path":223,"stem":224,"children":225,"page":6},"API Reference","\u002Fen\u002Freference\u002Fapi-reference","en\u002F6.reference\u002F5.api-reference",[226,231,236],{"title":227,"path":228,"stem":229,"icon":230},"System Endpoints","\u002Fen\u002Freference\u002Fapi-reference\u002Fsystem-endpoints","en\u002F6.reference\u002F5.api-reference\u002F1.system-endpoints","i-lucide-server",{"title":232,"path":233,"stem":234,"icon":235},"OpenAPI Spec","\u002Fen\u002Freference\u002Fapi-reference\u002Fopenapi-spec","en\u002F6.reference\u002F5.api-reference\u002F2.openapi-spec","i-lucide-file-code",{"title":237,"path":238,"stem":239,"children":240,"icon":242},"Schema Migration","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration","en\u002F6.reference\u002F5.api-reference\u002F3.schema-migration\u002Findex",[241,243,248,253],{"title":237,"path":238,"stem":239,"icon":242},"i-lucide-database-zap",{"title":244,"path":245,"stem":246,"icon":247},"Apply Migrations","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Fapply-migrations","en\u002F6.reference\u002F5.api-reference\u002F3.schema-migration\u002F1.apply-migrations","i-lucide-upload",{"title":249,"path":250,"stem":251,"icon":252},"Import Changes","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Fimport-changes","en\u002F6.reference\u002F5.api-reference\u002F3.schema-migration\u002F2.import-changes","i-lucide-refresh-cw",{"title":254,"path":255,"stem":256,"icon":257},"Operation Reference","\u002Fen\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Foperation-reference","en\u002F6.reference\u002F5.api-reference\u002F3.schema-migration\u002F3.operation-reference","i-lucide-list-tree",{"title":259,"path":260,"stem":261,"children":262,"page":6},"Pitfalls","\u002Fen\u002Freference\u002Fpitfalls","en\u002F6.reference\u002F6.pitfalls",[263,267,272,277,282],{"title":114,"path":264,"stem":265,"icon":266},"\u002Fen\u002Freference\u002Fpitfalls\u002Foverview","en\u002F6.reference\u002F6.pitfalls\u002F1.overview","i-lucide-triangle-alert",{"title":268,"path":269,"stem":270,"icon":271},"Concurrent Migrations","\u002Fen\u002Freference\u002Fpitfalls\u002Fconcurrent-migrations","en\u002F6.reference\u002F6.pitfalls\u002F2.concurrent-migrations","i-lucide-git-merge",{"title":273,"path":274,"stem":275,"icon":276},"Instance Configuration","\u002Fen\u002Freference\u002Fpitfalls\u002Finstance-configuration-related-problems","en\u002F6.reference\u002F6.pitfalls\u002F3.instance-configuration-related-problems","i-lucide-wrench",{"title":278,"path":279,"stem":280,"icon":281},"Overly Permissive Public Roles","\u002Fen\u002Freference\u002Fpitfalls\u002Foverly-permissive","en\u002F6.reference\u002F6.pitfalls\u002F4.overly-permissive","i-lucide-shield-off",{"title":283,"path":284,"stem":285,"icon":286},"No Aggregates","\u002Fen\u002Freference\u002Fpitfalls\u002Fno-aggregates","en\u002F6.reference\u002F6.pitfalls\u002F5.no-aggregates","i-lucide-sigma",{"title":288,"icon":289,"path":290,"stem":291,"children":292,"page":6},"Release Notes","i-lucide-rocket","\u002Fen\u002Frelease-notes","en\u002F7.release-notes",[293],{"title":294,"path":295,"stem":296,"icon":289},"Changelog","\u002Fen\u002Frelease-notes\u002Fchangelog","en\u002F7.release-notes\u002F1.changelog",{"id":298,"title":249,"body":299,"description":935,"extension":936,"links":937,"meta":938,"navigation":939,"path":250,"seo":940,"stem":251,"__hash__":941},"docs_en\u002Fen\u002F6.reference\u002F5.api-reference\u002F3.schema-migration\u002F2.import-changes.md",{"type":300,"value":301,"toc":928},"minimark",[302,307,321,327,511,515,531,542,811,828,832,835,865,869,875,886,893,897,924],[303,304,306],"h2",{"id":305},"import-changes-made-outside-monospace","Import Changes Made Outside Monospace",[308,309,310,311,315,316,320],"p",{},"When a collection or field is added, altered, or deleted directly in a data source — through SQL, another tool, or a separate migration system — Monospace does not see it until you re-introspect. Send a request to ",[312,313],"http-method",{"method":314},"POST"," ",[317,318,319],"code",{},"\u002Fapi\u002F{project}\u002Fschema\u002Fintrospect\u002F{source}"," to read the data source's live schema, reconcile the project's model to match, and get back the set of changes that were detected.",[308,322,323,326],{},[317,324,325],{},"{source}"," is the ID of the data source to introspect. The request takes no body.",[328,329,330,370],"code-group",{},[331,332,338],"pre",{"className":333,"code":334,"filename":335,"language":336,"meta":337,"style":337},"language-bash shiki shiki-themes monospace-light monospace-light monospace-dark","curl -X POST https:\u002F\u002Fexample.monospace.io\u002Fapi\u002Fblog\u002Fschema\u002Fintrospect\u002Fd7c8f0e2-9b3a-4c1e-8f2a-1a2b3c4d5e6f \\\n  -H \"Authorization: Bearer YOUR_API_KEY\"\n","curl","bash","",[317,339,340,361],{"__ignoreMap":337},[341,342,345,348,351,355,358],"span",{"class":343,"line":344},"line",1,[341,346,335],{"class":347},"ssBNi",[341,349,350],{"class":347}," -X",[341,352,354],{"class":353},"suKVh"," POST",[341,356,357],{"class":353}," https:\u002F\u002Fexample.monospace.io\u002Fapi\u002Fblog\u002Fschema\u002Fintrospect\u002Fd7c8f0e2-9b3a-4c1e-8f2a-1a2b3c4d5e6f",[341,359,360],{"class":347}," \\\n",[341,362,364,367],{"class":343,"line":363},2,[341,365,366],{"class":347},"  -H",[341,368,369],{"class":353}," \"Authorization: Bearer YOUR_API_KEY\"\n",[331,371,376],{"className":372,"code":373,"filename":374,"language":375,"meta":337,"style":337},"language-ts shiki shiki-themes monospace-light monospace-light monospace-dark","const source = 'd7c8f0e2-9b3a-4c1e-8f2a-1a2b3c4d5e6f'\n\nconst response = await fetch(\n  `https:\u002F\u002Fexample.monospace.io\u002Fapi\u002Fblog\u002Fschema\u002Fintrospect\u002F${source}`,\n  {\n    method: 'POST',\n    headers: { Authorization: 'Bearer YOUR_API_KEY' },\n  },\n)\n\nconst { data } = await response.json()\n","fetch","ts",[317,377,378,393,399,419,435,441,452,464,470,476,481],{"__ignoreMap":337},[341,379,380,384,387,390],{"class":343,"line":344},[341,381,383],{"class":382},"sLVBU","const",[341,385,386],{"class":347}," source",[341,388,389],{"class":382}," =",[341,391,392],{"class":353}," 'd7c8f0e2-9b3a-4c1e-8f2a-1a2b3c4d5e6f'\n",[341,394,395],{"class":343,"line":363},[341,396,398],{"emptyLinePlaceholder":397},true,"\n",[341,400,402,404,407,409,412,415],{"class":343,"line":401},3,[341,403,383],{"class":382},[341,405,406],{"class":347}," response",[341,408,389],{"class":382},[341,410,411],{"class":382}," await",[341,413,414],{"class":347}," fetch",[341,416,418],{"class":417},"sTMul","(\n",[341,420,422,425,429,432],{"class":343,"line":421},4,[341,423,424],{"class":353},"  `https:\u002F\u002Fexample.monospace.io\u002Fapi\u002Fblog\u002Fschema\u002Fintrospect\u002F${",[341,426,428],{"class":427},"sNJ9c","source",[341,430,431],{"class":353},"}`",[341,433,434],{"class":417},",\n",[341,436,438],{"class":343,"line":437},5,[341,439,440],{"class":417},"  {\n",[341,442,444,447,450],{"class":343,"line":443},6,[341,445,446],{"class":417},"    method: ",[341,448,449],{"class":353},"'POST'",[341,451,434],{"class":417},[341,453,455,458,461],{"class":343,"line":454},7,[341,456,457],{"class":417},"    headers: { Authorization: ",[341,459,460],{"class":353},"'Bearer YOUR_API_KEY'",[341,462,463],{"class":417}," },\n",[341,465,467],{"class":343,"line":466},8,[341,468,469],{"class":417},"  },\n",[341,471,473],{"class":343,"line":472},9,[341,474,475],{"class":417},")\n",[341,477,479],{"class":343,"line":478},10,[341,480,398],{"emptyLinePlaceholder":397},[341,482,484,486,489,492,495,498,500,502,505,508],{"class":343,"line":483},11,[341,485,383],{"class":382},[341,487,488],{"class":417}," { ",[341,490,491],{"class":347},"data",[341,493,494],{"class":417}," } ",[341,496,497],{"class":382},"=",[341,499,411],{"class":382},[341,501,406],{"class":427},[341,503,504],{"class":417},".",[341,506,507],{"class":347},"json",[341,509,510],{"class":417},"()\n",[303,512,514],{"id":513},"response","Response",[308,516,517,518,520,521,524,525,530],{},"The response wraps the detected changes in a ",[317,519,491],{}," envelope. The ",[317,522,523],{},"operations"," array is a migration in the ",[526,527,529],"a",{"href":528},"\u002Freference\u002Fapi-reference\u002Fschema-migration#migration-format","standard format"," — the same operations you would author by hand.",[308,532,533,534,537,538,541],{},"When a field was added to the ",[317,535,536],{},"articles"," collection outside Monospace, the diff reports it as an ",[317,539,540],{},"updateCollection"," that creates the new field:",[331,543,547],{"className":544,"code":545,"filename":546,"language":507,"meta":337,"style":337},"language-json shiki shiki-themes monospace-light monospace-light monospace-dark","{\n  \"data\": {\n    \"operations\": [\n      {\n        \"kind\": \"updateCollection\",\n        \"data\": {\n          \"id\": \"f4ccfb8e-5d79-4d2f-83b0-5b749f784b00\",\n          \"operations\": [\n            {\n              \"kind\": \"createPrimitiveField\",\n              \"data\": {\n                \"id\": \"a7b8c9d0-5555-4a1a-9c1a-666677778888\",\n                \"dbName\": \"subtitle\",\n                \"apiName\": \"subtitle\",\n                \"type\": { \"name\": \"string\", \"params\": { \"length\": \"unlimited\" } },\n                \"isNullable\": true,\n                \"isList\": false,\n                \"defaultValue\": null,\n                \"readonly\": false\n              }\n            }\n          ]\n        }\n      }\n    ]\n  }\n}\n","response.json",[317,548,549,554,563,571,576,589,596,608,615,620,632,639,652,665,677,713,726,739,752,763,769,775,781,787,793,799,805],{"__ignoreMap":337},[341,550,551],{"class":343,"line":344},[341,552,553],{"class":417},"{\n",[341,555,556,560],{"class":343,"line":363},[341,557,559],{"class":558},"snHjA","  \"data\"",[341,561,562],{"class":417},": {\n",[341,564,565,568],{"class":343,"line":401},[341,566,567],{"class":558},"    \"operations\"",[341,569,570],{"class":417},": [\n",[341,572,573],{"class":343,"line":421},[341,574,575],{"class":417},"      {\n",[341,577,578,581,584,587],{"class":343,"line":437},[341,579,580],{"class":558},"        \"kind\"",[341,582,583],{"class":417},": ",[341,585,586],{"class":353},"\"updateCollection\"",[341,588,434],{"class":417},[341,590,591,594],{"class":343,"line":443},[341,592,593],{"class":558},"        \"data\"",[341,595,562],{"class":417},[341,597,598,601,603,606],{"class":343,"line":454},[341,599,600],{"class":558},"          \"id\"",[341,602,583],{"class":417},[341,604,605],{"class":353},"\"f4ccfb8e-5d79-4d2f-83b0-5b749f784b00\"",[341,607,434],{"class":417},[341,609,610,613],{"class":343,"line":466},[341,611,612],{"class":558},"          \"operations\"",[341,614,570],{"class":417},[341,616,617],{"class":343,"line":472},[341,618,619],{"class":417},"            {\n",[341,621,622,625,627,630],{"class":343,"line":478},[341,623,624],{"class":558},"              \"kind\"",[341,626,583],{"class":417},[341,628,629],{"class":353},"\"createPrimitiveField\"",[341,631,434],{"class":417},[341,633,634,637],{"class":343,"line":483},[341,635,636],{"class":558},"              \"data\"",[341,638,562],{"class":417},[341,640,642,645,647,650],{"class":343,"line":641},12,[341,643,644],{"class":558},"                \"id\"",[341,646,583],{"class":417},[341,648,649],{"class":353},"\"a7b8c9d0-5555-4a1a-9c1a-666677778888\"",[341,651,434],{"class":417},[341,653,655,658,660,663],{"class":343,"line":654},13,[341,656,657],{"class":558},"                \"dbName\"",[341,659,583],{"class":417},[341,661,662],{"class":353},"\"subtitle\"",[341,664,434],{"class":417},[341,666,668,671,673,675],{"class":343,"line":667},14,[341,669,670],{"class":558},"                \"apiName\"",[341,672,583],{"class":417},[341,674,662],{"class":353},[341,676,434],{"class":417},[341,678,680,683,686,689,691,694,697,700,702,705,707,710],{"class":343,"line":679},15,[341,681,682],{"class":558},"                \"type\"",[341,684,685],{"class":417},": { ",[341,687,688],{"class":558},"\"name\"",[341,690,583],{"class":417},[341,692,693],{"class":353},"\"string\"",[341,695,696],{"class":417},", ",[341,698,699],{"class":558},"\"params\"",[341,701,685],{"class":417},[341,703,704],{"class":558},"\"length\"",[341,706,583],{"class":417},[341,708,709],{"class":353},"\"unlimited\"",[341,711,712],{"class":417}," } },\n",[341,714,716,719,721,724],{"class":343,"line":715},16,[341,717,718],{"class":558},"                \"isNullable\"",[341,720,583],{"class":417},[341,722,723],{"class":347},"true",[341,725,434],{"class":417},[341,727,729,732,734,737],{"class":343,"line":728},17,[341,730,731],{"class":558},"                \"isList\"",[341,733,583],{"class":417},[341,735,736],{"class":347},"false",[341,738,434],{"class":417},[341,740,742,745,747,750],{"class":343,"line":741},18,[341,743,744],{"class":558},"                \"defaultValue\"",[341,746,583],{"class":417},[341,748,749],{"class":347},"null",[341,751,434],{"class":417},[341,753,755,758,760],{"class":343,"line":754},19,[341,756,757],{"class":558},"                \"readonly\"",[341,759,583],{"class":417},[341,761,762],{"class":347},"false\n",[341,764,766],{"class":343,"line":765},20,[341,767,768],{"class":417},"              }\n",[341,770,772],{"class":343,"line":771},21,[341,773,774],{"class":417},"            }\n",[341,776,778],{"class":343,"line":777},22,[341,779,780],{"class":417},"          ]\n",[341,782,784],{"class":343,"line":783},23,[341,785,786],{"class":417},"        }\n",[341,788,790],{"class":343,"line":789},24,[341,791,792],{"class":417},"      }\n",[341,794,796],{"class":343,"line":795},25,[341,797,798],{"class":417},"    ]\n",[341,800,802],{"class":343,"line":801},26,[341,803,804],{"class":417},"  }\n",[341,806,808],{"class":343,"line":807},27,[341,809,810],{"class":417},"}\n",[308,812,813,814,817,818,821,822,824,825,827],{},"The detected operations use the same shapes documented in the ",[526,815,254],{"href":816},"\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Foperation-reference",". Introspected fields also carry ",[317,819,820],{},"readonly"," — ",[317,823,723],{}," when the data source exposes the field through a view or computed field, ",[317,826,736],{}," for a regular field.",[303,829,831],{"id":830},"no-pending-changes","No Pending Changes",[308,833,834],{},"When the project already matches the data source, the diff is empty.",[331,836,838],{"className":544,"code":837,"filename":546,"language":507,"meta":337,"style":337},"{\n  \"data\": {\n    \"operations\": []\n  }\n}\n",[317,839,840,844,850,857,861],{"__ignoreMap":337},[341,841,842],{"class":343,"line":344},[341,843,553],{"class":417},[341,845,846,848],{"class":343,"line":363},[341,847,559],{"class":558},[341,849,562],{"class":417},[341,851,852,854],{"class":343,"line":401},[341,853,567],{"class":558},[341,855,856],{"class":417},": []\n",[341,858,859],{"class":343,"line":421},[341,860,804],{"class":417},[341,862,863],{"class":343,"line":437},[341,864,810],{"class":417},[303,866,868],{"id":867},"reconciliation-behavior","Reconciliation Behavior",[308,870,871,872,874],{},"Introspection is not a dry run. Monospace applies the detected diff to the project's stored model inside a transaction before returning it, so the project reflects the data source as soon as the call succeeds. The returned ",[317,873,523],{}," tell you what changed.",[308,876,877,878,881,882,885],{},"A rename made directly in the data source is not detected as a rename. A renamed collection or field appears in the diff as a delete of the old object followed by a create of the new one; deleted objects appear as delete operations. To preserve a rename in the model, apply ",[317,879,880],{},"renameCollection"," or ",[317,883,884],{},"renamePrimitiveField"," through the migrate endpoint instead of renaming in the data source.",[308,887,888,889,504],{},"This endpoint reconciles in one direction only — from the data source into the project. It never writes to the data source. To push a change the other way, author it and send it to the ",[526,890,892],{"href":891},"\u002Freference\u002Fapi-reference\u002Fschema-migration\u002Fapply-migrations","migrate endpoint",[303,894,896],{"id":895},"see-also","See Also",[898,899,900,906,911,917],"ul",{},[901,902,903,905],"li",{},[526,904,244],{"href":891}," — push a change you designed to a data source",[901,907,908,910],{},[526,909,254],{"href":816}," — read the operations returned in a diff",[901,912,913,916],{},[526,914,54],{"href":915},"\u002Fconcepts\u002Fintrospection"," — how Monospace reads a data source's schema",[901,918,919,923],{},[526,920,922],{"href":921},"\u002Freference\u002Fapi-reference\u002Fschema-migration","Schema Migration Overview"," — authentication, format, and error codes",[925,926,927],"style",{},"html pre.shiki code .ssBNi, html code.shiki .ssBNi{--shiki-light:#1659E9;--shiki-default:#1659E9;--shiki-dark:#94B3F5}html pre.shiki code .suKVh, html code.shiki .suKVh{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#F8FAFC}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sLVBU, html code.shiki .sLVBU{--shiki-light:#0891B2;--shiki-default:#0891B2;--shiki-dark:#22D3EE}html pre.shiki code .sTMul, html code.shiki .sTMul{--shiki-light:#1F2937;--shiki-default:#1F2937;--shiki-dark:#94A3B8}html pre.shiki code .sNJ9c, html code.shiki .sNJ9c{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E2E8F0}html pre.shiki code .snHjA, html code.shiki .snHjA{--shiki-light:#124BC4;--shiki-default:#124BC4;--shiki-dark:#5B8EF4}",{"title":337,"searchDepth":363,"depth":363,"links":929},[930,931,932,933,934],{"id":305,"depth":363,"text":306},{"id":513,"depth":363,"text":514},{"id":830,"depth":363,"text":831},{"id":867,"depth":363,"text":868},{"id":895,"depth":363,"text":896},"Reconcile a project with schema changes made directly in a data source using the introspect endpoint.","md",null,{},{"icon":252},{"title":249,"description":935},"2cvJ5oAU0hsLl50BBoH3NBQWOIXCwCCEIHd-0jKcAD8",[943,945],{"title":244,"path":245,"stem":246,"description":944,"icon":247,"children":-1},"Author and send a schema migration to a project with the migrate endpoint.",{"title":254,"path":255,"stem":256,"description":946,"icon":257,"children":-1},"The schema migration operations, grouped by the model entity they act on.",1789461508375]