==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
Text Elements
DataOS ^GxEJnHoT
Context ^i8y7FgkR
-
People cobble together their own data / knowledge management workflow. e.g. johan examples of people using excel, google docs, notion, airtable to create their data inventory. Problem of getting notifications for every dataset in a group.
-
this is understandable - these are complex workflows
-
think of content management and publishing. You probably draft your post outside of wordpress (e.g. in google docs)
-
Answer: rather than fight this and try have "one tool to rule them all", let's embrace this and find ways to weave together good off-the-shelf tools and components ^rYK7zyiJ
-
Patterns
-
Tools
-
APIs ^qy5V9lOU
CKAN v3 ^4cK7mGYL
- portal.js
- datapub - https://github.com/datopian/datapub
- giftless ^5iOJCWlM
Infrastructure for data ^00QmAZ2Q
"Renderer" aka "Portal" ^8HoSnLeP
Publisher interface (+ maybe Admin) ^Ii6fR1P4
Storage API ^NiTewaQs
Google Docs / Word ^7ISNvmUU
Google Docs / Word ^pk7dDqh7
Wordpress ^401UFMfv
Issue tracker ^TFy2wssg
Wordpress ^y1iidkvo
Editor ^iEzZiaTA
Editor ^PrJNIVv2
copy & paste? ^nQuMTHjV
Sign-off flow Does it have nice featured image ^4HjMJdyV
CMS Analogy ^oeUVdh4X
v1 ^uDWb6JS6
v2 ^C433DH6e
Example: Ministry of Culture ^hML2oJoQ
- Original source: Internal databases and spreadsheets (source of truth)
- Obligation to open their data … => new task force
- They decide what they want to open
- Publish excel/csv file on the OpenDataSoft portal
Summary
- They need a list of data to decide what to open
- They need to build a flow to repeatedly release a dataset
In ministry of culture: they have an excel file which one person maintains
The internal data catalog is an excel file … (87 lines)
- some data that is
- other data not yet open where they have title
Then for a given published open dataset they need to build a publishing workflow which is often manual
Problems
- internal catalog and now data portal so have 2 sources of truth => classic pain point
Solution:
- Have one source of truth which is the "core" data catalog (internal one)
- separate metadata and data for now
- Automate process of pushing metadata from that to the main portal
- ? what about the data flow? Ans: that is a separate flow we will address later
=> need 3 things
- storage/api layer for core catalog
- UI layer for core catalog
- automation for moving metadata from core catalog to portal
^QKjSJoIU
Publish UI 2 ^JJPUjpAm
Publish UI 1 ^1xZATk6B
Storage ^TiYf5k7J
Metadata Flow (all datasets) ^UfBYbTyT
Data flow (only for approved open datasets) ^5XBvFybt
Automation ^6Imhr8Zb
Data Portal ^lLSPRcyi
Raw Source ^RQDcj76R
ETL (manual or automated) ^zV5tr0Rg
Airtable or Excel covers both ^MRgPSGLv
csv in git(lab/hub) table in a database ckan! ^gqIEENFW
Risk of airtable is lock-in for your storage to this proprietary vendor (including permissions etc) Ultimately inflexible ^iUblyisc
custom UI … google spreadsheet ^CTEjrbzC
2 ministries with diff publish flow ^Q5V8LYvw
Catalog Viewer ^26Lf5Zee
Write API ^InbEbQPC
Read API ^urFXrvsb
Option 1
A. Publish UI: if possible use something close to their existing setup "don't move the cheese"
e.g. if they are using excel - can we live with that to start with?
=> a place they upload their excel and you ingest it …
B. Storage: flat file data packages in closed gitlab/github
(or whatever structure you want)
C. Automation: use gitlab/github actions …
"on every commit" -> notify the catalog viewer to rebuild (if slow, just have catalog viewer query) "update the data portal"
D. Catalog viewer: build something quickly using e.g. portal.js
Step 2:
Replace publish UI with e.g. google spreadsheets
Step 3:
Replace publish UI with custom UI with permissions and login. ^kWIBVE1Y
Decoupled model … ^CLvV3V1M
%%
Drawing
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{
"type": "text",
"version": 54,
"versionNonce": 1363737788,
"isDeleted": false,
"id": "GxEJnHoT",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 508.7812499999999,
"y": -1701.6627604166665,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 145,
"height": 45,
"seed": 1466645308,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318125,
"link": null,
"fontSize": 36,
"fontFamily": 1,
"text": "DataOS",
"rawText": "DataOS",
"baseline": 32,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "DataOS"
},
{
"type": "text",
"version": 16,
"versionNonce": 875479612,
"isDeleted": false,
"id": "i8y7FgkR",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -667.2460937500001,
"y": -1610.9440104166665,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 142,
"height": 45,
"seed": 342238852,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318125,
"link": null,
"fontSize": 36,
"fontFamily": 1,
"text": "Context",
"rawText": "Context",
"baseline": 32,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Context"
},
{
"type": "rectangle",
"version": 58,
"versionNonce": 962312252,
"isDeleted": false,
"id": "buqGxiDA7XTYKfyDA_RnB",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -688.4570312500001,
"y": -1469.8893229166665,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 607,
"height": 565.3828125,
"seed": 1767404476,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "rYK7zyiJ",
"type": "text"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "text",
"version": 764,
"versionNonce": 244528516,
"isDeleted": false,
"id": "rYK7zyiJ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -683.4570312500001,
"y": -1464.8893229166665,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 597,
"height": 375,
"seed": 1298576900,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318505,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "\n * People cobble together their own data / knowledge \nmanagement workflow. e.g. johan examples of people using \nexcel, google docs, notion, airtable to create their data \ninventory. Problem of getting notifications for every \ndataset in a group.\n\n * this is understandable - these are complex workflows\n\n * think of content management and publishing. You probably\ndraft your post outside of wordpress (e.g. in google docs)\n\n * Answer: rather than fight this and try have \"one tool to\nrule them all\", let's embrace this and find ways to weave \ntogether good off-the-shelf tools and components",
"rawText": "\n * People cobble together their own data / knowledge \nmanagement workflow. e.g. johan examples of people using \nexcel, google docs, notion, airtable to create their data \ninventory. Problem of getting notifications for every \ndataset in a group.\n\n * this is understandable - these are complex workflows\n\n * think of content management and publishing. You probably\ndraft your post outside of wordpress (e.g. in google docs)\n\n * Answer: rather than fight this and try have \"one tool to\nrule them all\", let's embrace this and find ways to weave \ntogether good off-the-shelf tools and components",
"baseline": 368,
"textAlign": "left",
"verticalAlign": "top",
"containerId": "buqGxiDA7XTYKfyDA_RnB",
"originalText": "\n * People cobble together their own data / knowledge \nmanagement workflow. e.g. johan examples of people using \nexcel, google docs, notion, airtable to create their data \ninventory. Problem of getting notifications for every \ndataset in a group.\n\n * this is understandable - these are complex workflows\n\n * think of content management and publishing. You probably\ndraft your post outside of wordpress (e.g. in google docs)\n\n * Answer: rather than fight this and try have \"one tool to\nrule them all\", let's embrace this and find ways to weave \ntogether good off-the-shelf tools and components"
},
{
"type": "text",
"version": 122,
"versionNonce": 796872324,
"isDeleted": false,
"id": "qy5V9lOU",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 453.8854166666664,
"y": -1458.4192708333333,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 153,
"height": 105,
"seed": 705338428,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318125,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "* Patterns\n* Tools\n* APIs",
"rawText": "* Patterns\n* Tools\n* APIs",
"baseline": 95,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "* Patterns\n* Tools\n* APIs"
},
{
"type": "text",
"version": 18,
"versionNonce": 1289788348,
"isDeleted": false,
"id": "4cK7mGYL",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1135.75390625,
"y": -1695.9440104166665,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 154,
"height": 45,
"seed": 1185502596,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318125,
"link": null,
"fontSize": 36,
"fontFamily": 1,
"text": "CKAN v3",
"rawText": "CKAN v3",
"baseline": 32,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "CKAN v3"
},
{
"type": "text",
"version": 114,
"versionNonce": 1289815100,
"isDeleted": false,
"id": "5iOJCWlM",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1134.6809895833335,
"y": -1474.4973958333333,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 684,
"height": 105,
"seed": 1399043260,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318125,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "* portal.js\n* datapub - https://github.com/datopian/datapub\n* giftless",
"rawText": "* portal.js\n* datapub - https://github.com/datopian/datapub\n* giftless",
"baseline": 95,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "* portal.js\n* datapub - https://github.com/datopian/datapub\n* giftless"
},
{
"type": "text",
"version": 51,
"versionNonce": 1143917572,
"isDeleted": false,
"id": "00QmAZ2Q",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 459.1640624999999,
"y": -1620.2669270833333,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 358,
"height": 35,
"seed": 1298924804,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318125,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Infrastructure for data ",
"rawText": "Infrastructure for data ",
"baseline": 25,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Infrastructure for data "
},
{
"type": "rectangle",
"version": 97,
"versionNonce": 1703410052,
"isDeleted": false,
"id": "dPS_0Ko9q3802e6-ASl1M",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1243.8059895833335,
"y": -1071.70703125,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 401,
"height": 276.58203125,
"seed": 319143228,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "8HoSnLeP",
"type": "text"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "rectangle",
"version": 173,
"versionNonce": 1025107204,
"isDeleted": false,
"id": "AQ0NvHdKvxS2f2Glbtnu_",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1011.3710937500009,
"y": -717.0781250000005,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 401,
"height": 276.58203125,
"seed": 1462551684,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "Ii6fR1P4",
"type": "text"
}
],
"updated": 1649929318506,
"link": null
},
{
"type": "rectangle",
"version": 282,
"versionNonce": 1624647940,
"isDeleted": false,
"id": "lvPy08PWT9_Cg7QcDu82L",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1566.0260416666665,
"y": -723.666666666667,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 401,
"height": 276.58203125,
"seed": 307410364,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "NiTewaQs",
"type": "text"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "text",
"version": 92,
"versionNonce": 1065866428,
"isDeleted": false,
"id": "8HoSnLeP",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1248.8059895833335,
"y": -1003.416015625,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 391,
"height": 140,
"seed": 2041156612,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318505,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "\n\"Renderer\"\naka \"Portal\"\n",
"rawText": "\n\"Renderer\"\naka \"Portal\"\n",
"baseline": 130,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "dPS_0Ko9q3802e6-ASl1M",
"originalText": "\n\"Renderer\"\naka \"Portal\"\n"
},
{
"type": "text",
"version": 192,
"versionNonce": 631627068,
"isDeleted": false,
"id": "Ii6fR1P4",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1016.3710937500009,
"y": -613.7871093750005,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 391,
"height": 70,
"seed": 2121047612,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318506,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Publisher interface\n(+ maybe Admin)",
"rawText": "Publisher interface\n(+ maybe Admin)",
"baseline": 60,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "AQ0NvHdKvxS2f2Glbtnu_",
"originalText": "Publisher interface\n(+ maybe Admin)"
},
{
"type": "text",
"version": 278,
"versionNonce": 1444848772,
"isDeleted": false,
"id": "NiTewaQs",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1571.0260416666665,
"y": -602.875651041667,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 391,
"height": 35,
"seed": 1658876804,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318506,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Storage API",
"rawText": "Storage API",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "lvPy08PWT9_Cg7QcDu82L",
"originalText": "Storage API"
},
{
"type": "ellipse",
"version": 190,
"versionNonce": 300986044,
"isDeleted": false,
"id": "YbBmw-xytXUO0GlwcYsxp",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1885.6276041666656,
"y": -1431.420572916667,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 203.17708333333337,
"height": 203.17708333333337,
"seed": 271939260,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "7ISNvmUU",
"type": "text"
}
],
"updated": 1649929335239,
"link": null
},
{
"type": "ellipse",
"version": 318,
"versionNonce": 1034426300,
"isDeleted": false,
"id": "R9lmst_l4wCjLqfhI9g-_",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1329.624999999999,
"y": -1436.153645833333,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 203.17708333333337,
"height": 203.17708333333337,
"seed": 1359962884,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "pk7dDqh7",
"type": "text"
},
{
"id": "ZuYTv5HWSj31rdyq1820d",
"type": "arrow"
},
{
"id": "MRdB1mUhGIQl1HftBrhvh",
"type": "arrow"
}
],
"updated": 1649929318511,
"link": null
},
{
"type": "ellipse",
"version": 253,
"versionNonce": 1170451204,
"isDeleted": false,
"id": "5UBeUllYerL2tIJfkWfBz",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1890.9075520833321,
"y": -1040.2747395833337,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 203.17708333333337,
"height": 203.17708333333337,
"seed": 340737852,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "401UFMfv",
"type": "text"
}
],
"updated": 1649929335239,
"link": null
},
{
"type": "ellipse",
"version": 412,
"versionNonce": 1272625156,
"isDeleted": false,
"id": "zg4MeRxGQ2fbIYl6vGMRd",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1342.144531249999,
"y": -1043.7513020833335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 203.17708333333337,
"height": 203.17708333333337,
"seed": 179593860,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "TFy2wssg",
"type": "text"
},
{
"id": "ZuYTv5HWSj31rdyq1820d",
"type": "arrow"
},
{
"id": "MRdB1mUhGIQl1HftBrhvh",
"type": "arrow"
},
{
"id": "T1TvIgS3vacA0aKRF56DN",
"type": "arrow"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "ellipse",
"version": 520,
"versionNonce": 2119154236,
"isDeleted": false,
"id": "FYm8lzTbV1S6upPfMz01v",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1338.0104166666656,
"y": -675.7369791666667,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 203.17708333333337,
"height": 203.17708333333337,
"seed": 1931212732,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "y1iidkvo",
"type": "text"
},
{
"id": "UcDDX77usf2e8tZGBy4vr",
"type": "arrow"
},
{
"id": "T1TvIgS3vacA0aKRF56DN",
"type": "arrow"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "text",
"version": 181,
"versionNonce": 1994019716,
"isDeleted": false,
"id": "7ISNvmUU",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1880.6276041666656,
"y": -1364.8320312500002,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 193.17708333333337,
"height": 70,
"seed": 1452110340,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318509,
"link": null,
"fontSize": 28.025690846286707,
"fontFamily": 1,
"text": "Google Docs \n/ Word",
"rawText": "Google Docs \n/ Word",
"baseline": 60,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "YbBmw-xytXUO0GlwcYsxp",
"originalText": "Google Docs \n/ Word"
},
{
"type": "text",
"version": 308,
"versionNonce": 482721852,
"isDeleted": false,
"id": "pk7dDqh7",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1324.624999999999,
"y": -1369.5651041666663,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 193.17708333333337,
"height": 70,
"seed": 951951420,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318511,
"link": null,
"fontSize": 28.025690846286707,
"fontFamily": 1,
"text": "Google Docs \n/ Word",
"rawText": "Google Docs \n/ Word",
"baseline": 60,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "R9lmst_l4wCjLqfhI9g-_",
"originalText": "Google Docs \n/ Word"
},
{
"type": "text",
"version": 245,
"versionNonce": 1682432316,
"isDeleted": false,
"id": "401UFMfv",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1885.9075520833321,
"y": -956.186197916667,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 193.17708333333337,
"height": 35,
"seed": 1939378564,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318512,
"link": null,
"fontSize": 28.025690846286707,
"fontFamily": 1,
"text": "Wordpress",
"rawText": "Wordpress",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "5UBeUllYerL2tIJfkWfBz",
"originalText": "Wordpress"
},
{
"type": "text",
"version": 446,
"versionNonce": 1902076732,
"isDeleted": false,
"id": "TFy2wssg",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1337.144531249999,
"y": -959.6627604166667,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 193.17708333333337,
"height": 35,
"seed": 487995580,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318514,
"link": null,
"fontSize": 28.025690846286707,
"fontFamily": 1,
"text": "Issue tracker",
"rawText": "Issue tracker",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "zg4MeRxGQ2fbIYl6vGMRd",
"originalText": "Issue tracker"
},
{
"type": "text",
"version": 511,
"versionNonce": 588563516,
"isDeleted": false,
"id": "y1iidkvo",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1333.0104166666656,
"y": -591.6484375,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 193.17708333333337,
"height": 35,
"seed": 286507268,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318515,
"link": null,
"fontSize": 28.025690846286707,
"fontFamily": 1,
"text": "Wordpress",
"rawText": "Wordpress",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "FYm8lzTbV1S6upPfMz01v",
"originalText": "Wordpress"
},
{
"type": "text",
"version": 118,
"versionNonce": 1911822596,
"isDeleted": false,
"id": "iEzZiaTA",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -2089.683593749999,
"y": -1357.885416666667,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 85,
"height": 35,
"seed": 197640508,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Editor",
"rawText": "Editor",
"baseline": 25,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Editor"
},
{
"type": "text",
"version": 241,
"versionNonce": 1773726012,
"isDeleted": false,
"id": "PrJNIVv2",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1534.0911458333326,
"y": -1362.6184895833335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 85,
"height": 35,
"seed": 1182597252,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Editor",
"rawText": "Editor",
"baseline": 25,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Editor"
},
{
"type": "arrow",
"version": 335,
"versionNonce": 712883076,
"isDeleted": false,
"id": "UcDDX77usf2e8tZGBy4vr",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": null,
"y": null,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": null,
"height": null,
"seed": 741620156,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929335239,
"link": null,
"startBinding": null,
"endBinding": null,
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
null,
null
]
]
},
{
"type": "arrow",
"version": 995,
"versionNonce": 718975548,
"isDeleted": false,
"id": "ZuYTv5HWSj31rdyq1820d",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1231.8820905711186,
"y": -1225.0909366947817,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 3.2193002374576736,
"height": 171.19457452919778,
"seed": 194138116,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346415,
"link": null,
"startBinding": {
"elementId": "R9lmst_l4wCjLqfhI9g-_",
"focus": 0.017587253412691607,
"gap": 7.953150081135533
},
"endBinding": {
"elementId": "zg4MeRxGQ2fbIYl6vGMRd",
"focus": 0.03300435785695835,
"gap": 10.278121855489005
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
-3.2193002374576736,
171.19457452919778
]
]
},
{
"type": "text",
"version": 126,
"versionNonce": 1111271428,
"isDeleted": false,
"id": "nQuMTHjV",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -2039.9505208333321,
"y": -1152.8398437500002,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 198,
"height": 35,
"seed": 1769841212,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "copy & paste?",
"rawText": "copy & paste?",
"baseline": 25,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "copy & paste?"
},
{
"type": "text",
"version": 577,
"versionNonce": 189057596,
"isDeleted": false,
"id": "4HjMJdyV",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1100.0677083333321,
"y": -1002.5559895833335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 195,
"height": 75,
"seed": 810659716,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "Sign-off flow\nDoes it have\nnice featured image",
"rawText": "Sign-off flow\nDoes it have\nnice featured image",
"baseline": 68,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Sign-off flow\nDoes it have\nnice featured image"
},
{
"type": "arrow",
"version": 565,
"versionNonce": 767625916,
"isDeleted": false,
"id": "MRdB1mUhGIQl1HftBrhvh",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1232.324730456462,
"y": -1224.1089852228956,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 0.15178152989983573,
"height": 171.53015376322764,
"seed": 2055600828,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346416,
"link": null,
"startBinding": {
"elementId": "R9lmst_l4wCjLqfhI9g-_",
"focus": 0.04125003999360515,
"gap": 8.950788392468425
},
"endBinding": {
"elementId": "zg4MeRxGQ2fbIYl6vGMRd",
"focus": 0.07856959753908002,
"gap": 9.122734646150903
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
-0.15178152989983573,
171.53015376322764
]
]
},
{
"type": "arrow",
"version": 567,
"versionNonce": 591942460,
"isDeleted": false,
"id": "T1TvIgS3vacA0aKRF56DN",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1245.3390755297482,
"y": -822.9077657617748,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 3.1799907154122593,
"height": 138.30212688939616,
"seed": 1425612548,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346416,
"link": null,
"startBinding": {
"elementId": "zg4MeRxGQ2fbIYl6vGMRd",
"focus": 0.07405496775288628,
"gap": 17.762334581935264
},
"endBinding": {
"elementId": "FYm8lzTbV1S6upPfMz01v",
"focus": -0.03146629069470833,
"gap": 9.017556318353755
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
3.1799907154122593,
138.30212688939616
]
]
},
{
"type": "text",
"version": 19,
"versionNonce": 1376545596,
"isDeleted": false,
"id": "oeUVdh4X",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1522.912760416667,
"y": -1628.7773437500002,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 220,
"height": 45,
"seed": 1777287996,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 36,
"fontFamily": 1,
"text": "CMS Analogy",
"rawText": "CMS Analogy",
"baseline": 32,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "CMS Analogy"
},
{
"type": "text",
"version": 57,
"versionNonce": 1481876412,
"isDeleted": false,
"id": "uDWb6JS6",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1804.891927083334,
"y": -1501.6458333333337,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 30,
"height": 45,
"seed": 1644600964,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 36,
"fontFamily": 1,
"text": "v1",
"rawText": "v1",
"baseline": 32,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "v1"
},
{
"type": "text",
"version": 142,
"versionNonce": 1914686524,
"isDeleted": false,
"id": "C433DH6e",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1236.8190104166679,
"y": -1506.1966145833335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 45,
"height": 45,
"seed": 505117628,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 36,
"fontFamily": 1,
"text": "v2",
"rawText": "v2",
"baseline": 32,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "v2"
},
{
"type": "text",
"version": 99,
"versionNonce": 1095951548,
"isDeleted": false,
"id": "hML2oJoQ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -668.7135416666684,
"y": -804.545572916667,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 390,
"height": 35,
"seed": 3681796,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Example: Ministry of Culture",
"rawText": "Example: Ministry of Culture",
"baseline": 25,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Example: Ministry of Culture"
},
{
"type": "text",
"version": 1834,
"versionNonce": 1564988676,
"isDeleted": false,
"id": "QKjSJoIU",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -667.8932291666684,
"y": -723.8697916666672,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 830,
"height": 1000,
"seed": 1630315580,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "1. Original source: Internal databases and spreadsheets (source of truth)\n2. Obligation to open their data ... => new task force\n3. They decide what they want to open\n4. Publish excel/csv file on the OpenDataSoft portal\n\nSummary\n\n* They need a list of data to decide what to open\n* They need to build a flow to repeatedly release a dataset\n\nIn ministry of culture: they have an excel file which one person maintains\n\nThe internal data catalog is an excel file ... (87 lines)\n\n* some data that is \n* other data not yet open where they have title\n\nThen for a given published open dataset they\nneed to build a publishing workflow which is often manual\n\nProblems\n\n* internal catalog and now data portal so have 2 sources of truth\n=> classic pain point\n\nSolution:\n\n* Have one source of truth which is the \"core\" data catalog (internal one)\n* separate metadata and data for now\n* Automate process of pushing metadata from that to the main portal\n* ? what about the data flow? Ans: that is a separate flow we will address later\n\n=> need 3 things\n\n* storage/api layer for core catalog\n* UI layer for core catalog\n* automation for moving metadata from core catalog to portal\n\n\n",
"rawText": "1. Original source: Internal databases and spreadsheets (source of truth)\n2. Obligation to open their data ... => new task force\n3. They decide what they want to open\n4. Publish excel/csv file on the OpenDataSoft portal\n\nSummary\n\n* They need a list of data to decide what to open\n* They need to build a flow to repeatedly release a dataset\n\nIn ministry of culture: they have an excel file which one person maintains\n\nThe internal data catalog is an excel file ... (87 lines)\n\n* some data that is \n* other data not yet open where they have title\n\nThen for a given published open dataset they\nneed to build a publishing workflow which is often manual\n\nProblems\n\n* internal catalog and now data portal so have 2 sources of truth\n=> classic pain point\n\nSolution:\n\n* Have one source of truth which is the \"core\" data catalog (internal one)\n* separate metadata and data for now\n* Automate process of pushing metadata from that to the main portal\n* ? what about the data flow? Ans: that is a separate flow we will address later\n\n=> need 3 things\n\n* storage/api layer for core catalog\n* UI layer for core catalog\n* automation for moving metadata from core catalog to portal\n\n\n",
"baseline": 993,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "1. Original source: Internal databases and spreadsheets (source of truth)\n2. Obligation to open their data ... => new task force\n3. They decide what they want to open\n4. Publish excel/csv file on the OpenDataSoft portal\n\nSummary\n\n* They need a list of data to decide what to open\n* They need to build a flow to repeatedly release a dataset\n\nIn ministry of culture: they have an excel file which one person maintains\n\nThe internal data catalog is an excel file ... (87 lines)\n\n* some data that is \n* other data not yet open where they have title\n\nThen for a given published open dataset they\nneed to build a publishing workflow which is often manual\n\nProblems\n\n* internal catalog and now data portal so have 2 sources of truth\n=> classic pain point\n\nSolution:\n\n* Have one source of truth which is the \"core\" data catalog (internal one)\n* separate metadata and data for now\n* Automate process of pushing metadata from that to the main portal\n* ? what about the data flow? Ans: that is a separate flow we will address later\n\n=> need 3 things\n\n* storage/api layer for core catalog\n* UI layer for core catalog\n* automation for moving metadata from core catalog to portal\n\n\n"
},
{
"type": "ellipse",
"version": 372,
"versionNonce": 458037124,
"isDeleted": false,
"id": "Rs4fJOkayTaHc1XGOMN3j",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -712.5677083333354,
"y": 1232.0950520833326,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 239,
"height": 238.56770833333337,
"seed": 277597572,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "RQDcj76R",
"type": "text"
},
{
"id": "f1ID-Hs3i1v9uwN64PJLs",
"type": "arrow"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "ellipse",
"version": 410,
"versionNonce": 1565856444,
"isDeleted": false,
"id": "gLeBlaup1A7syKtusezhE",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -264.5208333333354,
"y": 1230.5976562499995,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 239,
"height": 238.56770833333337,
"seed": 1761918140,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "zV5tr0Rg",
"type": "text"
},
{
"id": "f1ID-Hs3i1v9uwN64PJLs",
"type": "arrow"
},
{
"id": "DRNWp13eCHaYNCr7Fe8fc",
"type": "arrow"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "ellipse",
"version": 306,
"versionNonce": 474449668,
"isDeleted": false,
"id": "Jd1Awk1Do0Vn52OIVIlZj",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -718.0885416666687,
"y": 657.1861979166674,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 239,
"height": 238.56770833333337,
"seed": 608140548,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "JJPUjpAm",
"type": "text"
},
{
"id": "AAZLYObnTl7EOkAIfQsj7",
"type": "arrow"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "ellipse",
"version": 391,
"versionNonce": 765377156,
"isDeleted": false,
"id": "LbNI4j7qvXjRaMcRWCpKN",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -717.6197916666687,
"y": 388.8007812500007,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 239,
"height": 238.56770833333337,
"seed": 1598407996,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "1xZATk6B",
"type": "text"
},
{
"id": "AAZLYObnTl7EOkAIfQsj7",
"type": "arrow"
},
{
"id": "qljWWhZUiK1882XP8jQfJ",
"type": "arrow"
}
],
"updated": 1649929318517,
"link": null
},
{
"type": "ellipse",
"version": 365,
"versionNonce": 55051908,
"isDeleted": false,
"id": "mk-XZWCFAV1Tp38vZtlvF",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -296.3177083333354,
"y": 665.7604166666674,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 239,
"height": 238.56770833333337,
"seed": 1959869572,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "TiYf5k7J",
"type": "text"
},
{
"id": "AAZLYObnTl7EOkAIfQsj7",
"type": "arrow"
},
{
"id": "4lTTnxXYj0-xT_2YiOqgQ",
"type": "arrow"
},
{
"id": "qljWWhZUiK1882XP8jQfJ",
"type": "arrow"
},
{
"id": "impQHQUELbAs2qZnFdA_b",
"type": "arrow"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "ellipse",
"version": 628,
"versionNonce": 973378492,
"isDeleted": false,
"id": "8t7jpT4suxsOe3R3EyN8j",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 172.4778645833311,
"y": 664.7122395833335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 239,
"height": 238.56770833333337,
"seed": 1766964668,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "4lTTnxXYj0-xT_2YiOqgQ",
"type": "arrow"
},
{
"id": "lLSPRcyi",
"type": "text"
},
{
"id": "DRNWp13eCHaYNCr7Fe8fc",
"type": "arrow"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "ellipse",
"version": 758,
"versionNonce": 1158452740,
"isDeleted": false,
"id": "KheKFx6S8i4vR9mX58Zh5",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -171.4023437500024,
"y": 251.33333333333445,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 239,
"height": 238.56770833333337,
"seed": 1543441412,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "4lTTnxXYj0-xT_2YiOqgQ",
"type": "arrow"
},
{
"id": "DRNWp13eCHaYNCr7Fe8fc",
"type": "arrow"
},
{
"id": "26Lf5Zee",
"type": "text"
},
{
"id": "impQHQUELbAs2qZnFdA_b",
"type": "arrow"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "rectangle",
"version": 371,
"versionNonce": 1345502268,
"isDeleted": false,
"id": "7he82C1JoyGM5oiJg-vgJ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -45.73177083333451,
"y": 545.9427083333335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 198,
"height": 124,
"seed": 810198588,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "6Imhr8Zb",
"type": "text"
},
{
"id": "_ts-zK3e_qNJmo-KsA0kh",
"type": "arrow"
}
],
"updated": 1649929318128,
"link": null
},
{
"type": "text",
"version": 118,
"versionNonce": 1441177276,
"isDeleted": false,
"id": "JJPUjpAm",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -713.0885416666687,
"y": 758.9700520833342,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 229,
"height": 35,
"seed": 1271327620,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318517,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Publish UI 2",
"rawText": "Publish UI 2",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "Jd1Awk1Do0Vn52OIVIlZj",
"originalText": "Publish UI 2"
},
{
"type": "text",
"version": 199,
"versionNonce": 212017084,
"isDeleted": false,
"id": "1xZATk6B",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -712.6197916666687,
"y": 490.58463541666737,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 229,
"height": 35,
"seed": 1762819772,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318518,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Publish UI 1",
"rawText": "Publish UI 1",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "LbNI4j7qvXjRaMcRWCpKN",
"originalText": "Publish UI 1"
},
{
"type": "text",
"version": 45,
"versionNonce": 1493542916,
"isDeleted": false,
"id": "TiYf5k7J",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -291.3177083333354,
"y": 767.5442708333342,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 229,
"height": 35,
"seed": 1181145860,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318519,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Storage",
"rawText": "Storage",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "mk-XZWCFAV1Tp38vZtlvF",
"originalText": "Storage"
},
{
"type": "text",
"version": 66,
"versionNonce": 124433340,
"isDeleted": false,
"id": "UfBYbTyT",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1072.3515625000018,
"y": 728.4622395833326,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 210,
"height": 70,
"seed": 1548437308,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Metadata Flow\n(all datasets)",
"rawText": "Metadata Flow\n(all datasets)",
"baseline": 60,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "Metadata Flow\n(all datasets)"
},
{
"type": "text",
"version": 174,
"versionNonce": 9991684,
"isDeleted": false,
"id": "5XBvFybt",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -1106.5455729166688,
"y": 1294.0937499999995,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 250,
"height": 105,
"seed": 1448925828,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318126,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Data flow\n(only for approved\nopen datasets)",
"rawText": "Data flow\n(only for approved\nopen datasets)",
"baseline": 95,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "Data flow\n(only for approved\nopen datasets)"
},
{
"type": "text",
"version": 212,
"versionNonce": 1827064892,
"isDeleted": false,
"id": "6Imhr8Zb",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -40.73177083333451,
"y": 590.4427083333335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 188,
"height": 35,
"seed": 1851195324,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318521,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Automation",
"rawText": "Automation",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "7he82C1JoyGM5oiJg-vgJ",
"originalText": "Automation"
},
{
"type": "arrow",
"version": 337,
"versionNonce": 1775406012,
"isDeleted": false,
"id": "AAZLYObnTl7EOkAIfQsj7",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -469.5906089250654,
"y": 775.3186133516895,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 163.1895996621684,
"height": 0.13376163966984222,
"seed": 107407876,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346416,
"link": null,
"startBinding": {
"elementId": "Jd1Awk1Do0Vn52OIVIlZj",
"focus": -0.010539348081268177,
"gap": 9.503088786547735
},
"endBinding": {
"elementId": "mk-XZWCFAV1Tp38vZtlvF",
"focus": 0.0795218862569686,
"gap": 10.438997905879972
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
163.1895996621684,
0.13376163966984222
]
]
},
{
"type": "arrow",
"version": 382,
"versionNonce": 1132573756,
"isDeleted": false,
"id": "4lTTnxXYj0-xT_2YiOqgQ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -46.70182299804884,
"y": 778.5273437499993,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 209.32962075694596,
"height": 0,
"seed": 660056124,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346416,
"link": null,
"startBinding": {
"elementId": "mk-XZWCFAV1Tp38vZtlvF",
"focus": -0.054633773605514295,
"gap": 10.779527250311588
},
"endBinding": {
"elementId": "8t7jpT4suxsOe3R3EyN8j",
"focus": 0.04584652330532363,
"gap": 9.966007581171056
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
209.32962075694596,
0
]
]
},
{
"type": "text",
"version": 129,
"versionNonce": 796292868,
"isDeleted": false,
"id": "lLSPRcyi",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 177.4778645833311,
"y": 669.7122395833335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 229,
"height": 35,
"seed": 1501759876,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318520,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Data Portal",
"rawText": "Data Portal",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "top",
"containerId": "8t7jpT4suxsOe3R3EyN8j",
"originalText": "Data Portal"
},
{
"type": "arrow",
"version": 206,
"versionNonce": 1976548740,
"isDeleted": false,
"id": "_ts-zK3e_qNJmo-KsA0kh",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "dashed",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 53.67388025137495,
"y": 693.6770833333335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 0.2102343319565989,
"height": 68.07942708333303,
"seed": 992952508,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346416,
"link": null,
"startBinding": {
"elementId": "7he82C1JoyGM5oiJg-vgJ",
"focus": -0.0014204545454465944,
"gap": 23.734375
},
"endBinding": null,
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
0.2102343319565989,
68.07942708333303
]
]
},
{
"type": "text",
"version": 265,
"versionNonce": 204299524,
"isDeleted": false,
"id": "RQDcj76R",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "dashed",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -707.5677083333354,
"y": 1333.8789062499993,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 229,
"height": 35,
"seed": 1122973956,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318515,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Raw Source",
"rawText": "Raw Source",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "Rs4fJOkayTaHc1XGOMN3j",
"originalText": "Raw Source"
},
{
"type": "text",
"version": 328,
"versionNonce": 1240787972,
"isDeleted": false,
"id": "zV5tr0Rg",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "dashed",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -259.5208333333354,
"y": 1297.3815104166663,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 229,
"height": 105,
"seed": 293587260,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318516,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "ETL\n(manual or \nautomated)",
"rawText": "ETL\n(manual or \nautomated)",
"baseline": 95,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "gLeBlaup1A7syKtusezhE",
"originalText": "ETL\n(manual or \nautomated)"
},
{
"type": "arrow",
"version": 864,
"versionNonce": 461729028,
"isDeleted": false,
"id": "f1ID-Hs3i1v9uwN64PJLs",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -458.46606269393624,
"y": 1343.4773413685712,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 183.6507987021156,
"height": 0.5900150317165753,
"seed": 506034308,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346416,
"link": null,
"startBinding": {
"elementId": "Rs4fJOkayTaHc1XGOMN3j",
"focus": -0.06986659311618286,
"gap": 15.334114266777377
},
"endBinding": {
"elementId": "gLeBlaup1A7syKtusezhE",
"focus": 0.04524615216680252,
"gap": 10.425022090729001
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
183.6507987021156,
0.5900150317165753
]
]
},
{
"type": "text",
"version": 544,
"versionNonce": 2000682300,
"isDeleted": false,
"id": "MRgPSGLv",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -501.62630208333496,
"y": 1028.9231770833335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 293,
"height": 25,
"seed": 1303069116,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318127,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "Airtable or Excel covers both",
"rawText": "Airtable or Excel covers both",
"baseline": 18,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "Airtable or Excel covers both"
},
{
"type": "text",
"version": 154,
"versionNonce": 418476220,
"isDeleted": false,
"id": "gqIEENFW",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -274.06119791666845,
"y": 937.2304687499995,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 203,
"height": 75,
"seed": 653248516,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318127,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "csv in git(lab/hub)\ntable in a database\nckan!",
"rawText": "csv in git(lab/hub)\ntable in a database\nckan!",
"baseline": 68,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "csv in git(lab/hub)\ntable in a database\nckan!"
},
{
"type": "arrow",
"version": 402,
"versionNonce": 1842949252,
"isDeleted": false,
"id": "DRNWp13eCHaYNCr7Fe8fc",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -12.906878652506236,
"y": 1327.1244014594565,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 284.49932678282255,
"height": 410.03586026307175,
"seed": 1456712252,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346416,
"link": null,
"startBinding": {
"elementId": "gLeBlaup1A7syKtusezhE",
"focus": 0.6814232657869439,
"gap": 14.565867488023812
},
"endBinding": {
"elementId": "8t7jpT4suxsOe3R3EyN8j",
"focus": -0.305451140001593,
"gap": 15.355789235393132
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
192.42250365250453,
-207.36007854279046
],
[
284.49932678282255,
-410.03586026307175
]
]
},
{
"type": "text",
"version": 228,
"versionNonce": 637228036,
"isDeleted": false,
"id": "iUblyisc",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -711.1640625000019,
"y": 1072.1901041666665,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 692,
"height": 75,
"seed": 1900029828,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318127,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "Risk of airtable is lock-in for your storage to this proprietary vendor\n(including permissions etc)\nUltimately inflexible",
"rawText": "Risk of airtable is lock-in for your storage to this proprietary vendor\n(including permissions etc)\nUltimately inflexible",
"baseline": 68,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "Risk of airtable is lock-in for your storage to this proprietary vendor\n(including permissions etc)\nUltimately inflexible"
},
{
"type": "text",
"version": 94,
"versionNonce": 1226235452,
"isDeleted": false,
"id": "CTEjrbzC",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -696.3645833333352,
"y": 937.5286458333335,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 188,
"height": 50,
"seed": 1608188604,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318127,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "custom UI ...\ngoogle spreadsheet",
"rawText": "custom UI ...\ngoogle spreadsheet",
"baseline": 43,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "custom UI ...\ngoogle spreadsheet"
},
{
"type": "arrow",
"version": 151,
"versionNonce": 1317600260,
"isDeleted": false,
"id": "qljWWhZUiK1882XP8jQfJ",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -464.08463715945095,
"y": 547.4791652153342,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 185.54036960261107,
"height": 154.51172292988383,
"seed": 1633195780,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346417,
"link": null,
"startBinding": {
"elementId": "LbNI4j7qvXjRaMcRWCpKN",
"focus": -0.4649362969437173,
"gap": 20.22173700272272
},
"endBinding": {
"elementId": "mk-XZWCFAV1Tp38vZtlvF",
"focus": -0.010692628974880537,
"gap": 11.91120005711177
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
185.54036960261107,
154.51172292988383
]
]
},
{
"type": "text",
"version": 198,
"versionNonce": 1434578748,
"isDeleted": false,
"id": "Q5V8LYvw",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -548.473958333334,
"y": 616.9036458333317,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 204,
"height": 50,
"seed": 1868778300,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318127,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "2 ministries\nwith diff publish flow",
"rawText": "2 ministries\nwith diff publish flow",
"baseline": 43,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "2 ministries\nwith diff publish flow"
},
{
"type": "text",
"version": 131,
"versionNonce": 1610261436,
"isDeleted": false,
"id": "26Lf5Zee",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -166.4023437500024,
"y": 353.11718750000114,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 229,
"height": 35,
"seed": 599201412,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318520,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Catalog Viewer",
"rawText": "Catalog Viewer",
"baseline": 25,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "KheKFx6S8i4vR9mX58Zh5",
"originalText": "Catalog Viewer"
},
{
"type": "arrow",
"version": 304,
"versionNonce": 932371332,
"isDeleted": false,
"id": "impQHQUELbAs2qZnFdA_b",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -150.33053744925888,
"y": 651.603506924537,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 56.214189892506226,
"height": 145.08025891998534,
"seed": 1741587388,
"groupIds": [],
"strokeSharpness": "round",
"boundElements": [],
"updated": 1649929346417,
"link": null,
"startBinding": {
"elementId": "urFXrvsb",
"focus": 1.0044372761816918,
"gap": 3.2905563007421392
},
"endBinding": {
"elementId": "KheKFx6S8i4vR9mX58Zh5",
"focus": -0.08152452753819309,
"gap": 23.00837017763112
},
"lastCommittedPoint": null,
"startArrowhead": null,
"endArrowhead": "arrow",
"points": [
[
0,
0
],
[
56.214189892506226,
-145.08025891998534
]
]
},
{
"type": "text",
"version": 48,
"versionNonce": 272308540,
"isDeleted": false,
"id": "InbEbQPC",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -354.000000000001,
"y": 704.1835937499995,
"strokeColor": "#c92a2a",
"backgroundColor": "transparent",
"width": 50,
"height": 50,
"seed": 622437892,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318127,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "Write\nAPI",
"rawText": "Write\nAPI",
"baseline": 43,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "Write\nAPI"
},
{
"type": "text",
"version": 52,
"versionNonce": 1504752572,
"isDeleted": false,
"id": "urFXrvsb",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": -202.62109375000102,
"y": 609.7044270833326,
"strokeColor": "#c92a2a",
"backgroundColor": "transparent",
"width": 49,
"height": 50,
"seed": 255765564,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [
{
"id": "impQHQUELbAs2qZnFdA_b",
"type": "arrow"
}
],
"updated": 1649929335251,
"link": null,
"fontSize": 20,
"fontFamily": 1,
"text": "Read\nAPI",
"rawText": "Read\nAPI",
"baseline": 43,
"textAlign": "center",
"verticalAlign": "top",
"containerId": null,
"originalText": "Read\nAPI"
},
{
"type": "text",
"version": 878,
"versionNonce": 763411972,
"isDeleted": false,
"id": "kWIBVE1Y",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 693.6835937499987,
"y": 315.1093749999987,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 1357,
"height": 1120,
"seed": 176047492,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318127,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Option 1\n\nA. Publish UI: if possible use something close to their existing setup\n\"don't move the cheese\"\n\ne.g. if they are using excel - can we live with that to start with?\n\n=> a place they upload their excel and you ingest it ...\n\n\nB. Storage: flat file data packages in *closed* gitlab/github\n\n(or whatever structure you want)\n\n\nC. Automation: use gitlab/github actions ...\n\n\"on every commit\" -> notify the catalog viewer to rebuild (if slow, just have catalog viewer query)\n\"update the data portal\"\n\n\nD. Catalog viewer: build something quickly using e.g. portal.js\n\n\nStep 2:\n\nReplace publish UI with e.g. google spreadsheets\n\n\nStep 3:\n\nReplace publish UI with custom UI with permissions and login.",
"rawText": "Option 1\n\nA. Publish UI: if possible use something close to their existing setup\n\"don't move the cheese\"\n\ne.g. if they are using excel - can we live with that to start with?\n\n=> a place they upload their excel and you ingest it ...\n\n\nB. Storage: flat file data packages in *closed* gitlab/github\n\n(or whatever structure you want)\n\n\nC. Automation: use gitlab/github actions ...\n\n\"on every commit\" -> notify the catalog viewer to rebuild (if slow, just have catalog viewer query)\n\"update the data portal\"\n\n\nD. Catalog viewer: build something quickly using e.g. portal.js\n\n\nStep 2:\n\nReplace publish UI with e.g. google spreadsheets\n\n\nStep 3:\n\nReplace publish UI with custom UI with permissions and login.",
"baseline": 1110,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Option 1\n\nA. Publish UI: if possible use something close to their existing setup\n\"don't move the cheese\"\n\ne.g. if they are using excel - can we live with that to start with?\n\n=> a place they upload their excel and you ingest it ...\n\n\nB. Storage: flat file data packages in *closed* gitlab/github\n\n(or whatever structure you want)\n\n\nC. Automation: use gitlab/github actions ...\n\n\"on every commit\" -> notify the catalog viewer to rebuild (if slow, just have catalog viewer query)\n\"update the data portal\"\n\n\nD. Catalog viewer: build something quickly using e.g. portal.js\n\n\nStep 2:\n\nReplace publish UI with e.g. google spreadsheets\n\n\nStep 3:\n\nReplace publish UI with custom UI with permissions and login."
},
{
"type": "text",
"version": 29,
"versionNonce": 1446186044,
"isDeleted": false,
"id": "CLvV3V1M",
"fillStyle": "hachure",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 1227.0872395833317,
"y": -1183.7773437500036,
"strokeColor": "#000000",
"backgroundColor": "transparent",
"width": 259,
"height": 35,
"seed": 395691196,
"groupIds": [],
"strokeSharpness": "sharp",
"boundElements": [],
"updated": 1649929318127,
"link": null,
"fontSize": 28,
"fontFamily": 1,
"text": "Decoupled model ...",
"rawText": "Decoupled model ...",
"baseline": 25,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Decoupled model ..."
}
],
"appState": {
"theme": "light",
"viewBackgroundColor": "#ffffff",
"currentItemStrokeColor": "#000000",
"currentItemBackgroundColor": "transparent",
"currentItemFillStyle": "hachure",
"currentItemStrokeWidth": 1,
"currentItemStrokeStyle": "solid",
"currentItemRoughness": 1,
"currentItemOpacity": 100,
"currentItemFontFamily": 1,
"currentItemFontSize": 20,
"currentItemTextAlign": "left",
"currentItemStrokeSharpness": "sharp",
"currentItemStartArrowhead": null,
"currentItemEndArrowhead": "arrow",
"currentItemLinearStrokeSharpness": "round",
"gridSize": null,
"colorPalette": {}
},
"files": {}
}
%%