cashless2ecash

cashless2ecash: pay with cards for digital cash (experimental)
Log | Files | Refs | README

commit 8d788b2b6a319deef49f267b8966bfe226bcbc20
parent 0c79ae99713e6d4d6d31bd621a949617ebfe503a
Author: Joel-Haeberli <haebu@rubigen.ch>
Date:   Sun, 24 Mar 2024 21:53:55 +0100

docs: improve documentation

Diffstat:
Mc2ec/postgres.go | 2+-
Mdata/c2ec_schema.sql | 8++++----
Mdocs/content/abstract.tex | 8+-------
Mdocs/content/appendix/meeting_notes.tex | 44++++++++++++++++++++++++++++++++++++++++++--
Mdocs/content/architecture/c2ec.tex | 114++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
Mdocs/content/architecture/overview.tex | 87++++++++++++++++++++++++++++---------------------------------------------------
Mdocs/content/architecture/wallee.tex | 18++++++++++++++++--
Adocs/content/architecture/wallet.tex | 6++++++
Mdocs/content/implementation/exchange.tex | 4++--
Mdocs/content/introduction/goal.tex | 6+++---
Mdocs/content/introduction/introduction.tex | 43++++++++++++++++---------------------------
Adocs/listings/specs/api-c2ec.txt | 342+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ddocs/listings/specs/nonce2ecash_api_spec.yml | 115-------------------------------------------------------------------------------
Adocs/pictures/database/relationships.png | 0
Mdocs/pictures/database/table_terminal.png | 0
Mdocs/pictures/database/table_terminal_provider.png | 0
Mdocs/pictures/database/table_withdrawal.png | 0
Adocs/pictures/diagrams/overview.png | 0
Adocs/pictures/diagrams/withdrawal-op-state-transition.png | 0
Mdocs/project.bib | 42++++++++++++++++++++++++++++++++++++++++++
Mdocs/thesis.pdf | 0
Mdocs/thesis.tex | 14++++++++++++--
Aschemaspy/c2ec-erd/anomalies.html | 294+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rdocs/content/architecture/terminal.tex -> schemaspy/c2ec-erd/anomalies.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.css -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.css.map -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.css.map | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css.map -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css.map | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap.css -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap.css.map -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap.css.map | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap.min.css -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap.min.css.map -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap.min.css.map | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.eot -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.eot | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.svg -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.svg | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.ttf -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.ttf | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff2 -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff2 | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/js/bootstrap.js -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/js/bootstrap.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/js/bootstrap.min.js -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/js/bootstrap.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/js/npm.js -> schemaspy/c2ec-erd/bower/admin-lte/bootstrap/js/npm.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/AdminLTE.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/AdminLTE.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/AdminLTE.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/AdminLTE.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-bootstrap-social.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-bootstrap-social.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-bootstrap-social.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-bootstrap-social.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-select2.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-select2.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-select2.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-select2.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-without-plugins.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-without-plugins.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-without-plugins.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-without-plugins.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-black-light.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-black-light.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-black-light.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-black-light.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-black.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-black.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-black.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-black.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-blue-light.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-blue-light.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-blue-light.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-blue-light.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-blue.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-blue.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-blue.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-blue.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-green-light.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-green-light.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-green-light.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-green-light.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-green.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-green.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-green.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-green.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-purple-light.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-purple-light.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-purple-light.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-purple-light.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-purple.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-purple.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-purple.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-purple.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-red-light.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-red-light.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-red-light.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-red-light.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-red.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-red.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-red.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-red.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-yellow-light.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-yellow-light.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-yellow-light.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-yellow-light.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-yellow.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-yellow.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-yellow.min.css -> schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-yellow.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/app.js -> schemaspy/c2ec-erd/bower/admin-lte/dist/js/app.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/app.min.js -> schemaspy/c2ec-erd/bower/admin-lte/dist/js/app.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/demo.js -> schemaspy/c2ec-erd/bower/admin-lte/dist/js/demo.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/pages/dashboard.js -> schemaspy/c2ec-erd/bower/admin-lte/dist/js/pages/dashboard.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/pages/dashboard2.js -> schemaspy/c2ec-erd/bower/admin-lte/dist/js/pages/dashboard2.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/plugins/fastclick/fastclick.js -> schemaspy/c2ec-erd/bower/admin-lte/plugins/fastclick/fastclick.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/plugins/fastclick/fastclick.min.js -> schemaspy/c2ec-erd/bower/admin-lte/plugins/fastclick/fastclick.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js -> schemaspy/c2ec-erd/bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/plugins/jQueryUI/jquery-ui.js -> schemaspy/c2ec-erd/bower/admin-lte/plugins/jQueryUI/jquery-ui.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js -> schemaspy/c2ec-erd/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.js -> schemaspy/c2ec-erd/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.js | 0
Rschemaspy/nonce2ecash-erd/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js -> schemaspy/c2ec-erd/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/anchor-js/anchor.min.js -> schemaspy/c2ec-erd/bower/anchor-js/anchor.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/codemirror/codemirror.css -> schemaspy/c2ec-erd/bower/codemirror/codemirror.css | 0
Rschemaspy/nonce2ecash-erd/bower/codemirror/codemirror.js -> schemaspy/c2ec-erd/bower/codemirror/codemirror.js | 0
Rschemaspy/nonce2ecash-erd/bower/codemirror/sql.js -> schemaspy/c2ec-erd/bower/codemirror/sql.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-bs/css/dataTables.bootstrap.css -> schemaspy/c2ec-erd/bower/datatables.net-bs/css/dataTables.bootstrap.css | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-bs/css/dataTables.bootstrap.min.css -> schemaspy/c2ec-erd/bower/datatables.net-bs/css/dataTables.bootstrap.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-bs/js/dataTables.bootstrap.js -> schemaspy/c2ec-erd/bower/datatables.net-bs/js/dataTables.bootstrap.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-bs/js/dataTables.bootstrap.min.js -> schemaspy/c2ec-erd/bower/datatables.net-bs/js/dataTables.bootstrap.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons-bs/css/buttons.bootstrap.css -> schemaspy/c2ec-erd/bower/datatables.net-buttons-bs/css/buttons.bootstrap.css | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css -> schemaspy/c2ec-erd/bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons-bs/js/buttons.bootstrap.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons-bs/js/buttons.bootstrap.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.colVis.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.colVis.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.colVis.min.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.colVis.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.flash.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.flash.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.flash.min.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.flash.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.html5.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.html5.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.html5.min.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.html5.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.print.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.print.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.print.min.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.print.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/dataTables.buttons.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/dataTables.buttons.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net-buttons/dataTables.buttons.min.js -> schemaspy/c2ec-erd/bower/datatables.net-buttons/dataTables.buttons.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/datatables.net/jquery.dataTables.min.js -> schemaspy/c2ec-erd/bower/datatables.net/jquery.dataTables.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/font-awesome/css/font-awesome.css -> schemaspy/c2ec-erd/bower/font-awesome/css/font-awesome.css | 0
Rschemaspy/nonce2ecash-erd/bower/font-awesome/css/font-awesome.css.map -> schemaspy/c2ec-erd/bower/font-awesome/css/font-awesome.css.map | 0
Rschemaspy/nonce2ecash-erd/bower/font-awesome/css/font-awesome.min.css -> schemaspy/c2ec-erd/bower/font-awesome/css/font-awesome.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/font-awesome/fonts/FontAwesome.otf -> schemaspy/c2ec-erd/bower/font-awesome/fonts/FontAwesome.otf | 0
Rschemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.eot -> schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.eot | 0
Rschemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.svg -> schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.svg | 0
Rschemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.ttf -> schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.ttf | 0
Rschemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.woff -> schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.woff | 0
Rschemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.woff2 -> schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.woff2 | 0
Rschemaspy/nonce2ecash-erd/bower/html5shiv/html5shiv.min.js -> schemaspy/c2ec-erd/bower/html5shiv/html5shiv.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/ionicons/css/ionicons.css -> schemaspy/c2ec-erd/bower/ionicons/css/ionicons.css | 0
Rschemaspy/nonce2ecash-erd/bower/ionicons/css/ionicons.min.css -> schemaspy/c2ec-erd/bower/ionicons/css/ionicons.min.css | 0
Rschemaspy/nonce2ecash-erd/bower/ionicons/fonts/ionicons.eot -> schemaspy/c2ec-erd/bower/ionicons/fonts/ionicons.eot | 0
Rschemaspy/nonce2ecash-erd/bower/ionicons/fonts/ionicons.svg -> schemaspy/c2ec-erd/bower/ionicons/fonts/ionicons.svg | 0
Rschemaspy/nonce2ecash-erd/bower/ionicons/fonts/ionicons.ttf -> schemaspy/c2ec-erd/bower/ionicons/fonts/ionicons.ttf | 0
Rschemaspy/nonce2ecash-erd/bower/ionicons/fonts/ionicons.woff -> schemaspy/c2ec-erd/bower/ionicons/fonts/ionicons.woff | 0
Rschemaspy/nonce2ecash-erd/bower/jquery/jquery.js -> schemaspy/c2ec-erd/bower/jquery/jquery.js | 0
Rschemaspy/nonce2ecash-erd/bower/js-xlsx/xlsx.full.min.js -> schemaspy/c2ec-erd/bower/js-xlsx/xlsx.full.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/pdfmake/pdfmake.min.js -> schemaspy/c2ec-erd/bower/pdfmake/pdfmake.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/pdfmake/vfs_fonts.js -> schemaspy/c2ec-erd/bower/pdfmake/vfs_fonts.js | 0
Rschemaspy/nonce2ecash-erd/bower/respond/respond.min.js -> schemaspy/c2ec-erd/bower/respond/respond.min.js | 0
Rschemaspy/nonce2ecash-erd/bower/salvattore/salvattore.css -> schemaspy/c2ec-erd/bower/salvattore/salvattore.css | 0
Rschemaspy/nonce2ecash-erd/bower/salvattore/salvattore.min.js -> schemaspy/c2ec-erd/bower/salvattore/salvattore.min.js | 0
Rschemaspy/nonce2ecash-erd/column.js -> schemaspy/c2ec-erd/column.js | 0
Aschemaspy/c2ec-erd/columns.html | 462+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rschemaspy/nonce2ecash-erd/constraint.js -> schemaspy/c2ec-erd/constraint.js | 0
Aschemaspy/c2ec-erd/constraints.html | 246+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rschemaspy/nonce2ecash-erd/deletionOrder.txt -> schemaspy/c2ec-erd/deletionOrder.txt | 0
Rschemaspy/nonce2ecash-erd/diagrams/orphans/orphans.dot -> schemaspy/c2ec-erd/diagrams/orphans/orphans.dot | 0
Aschemaspy/c2ec-erd/diagrams/summary/relationships.real.compact.dot | 44++++++++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/diagrams/summary/relationships.real.large.dot | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/diagrams/tables/terminal.1degree.dot | 46++++++++++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/diagrams/tables/terminal_provider.1degree.dot | 31+++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/diagrams/tables/terminal_provider.2degrees.dot | 43+++++++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/diagrams/tables/withdrawal.1degree.dot | 39+++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/diagrams/tables/withdrawal.2degrees.dot | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
Rschemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.eot -> schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.eot | 0
Rschemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.svg -> schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.svg | 0
Rschemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.ttf -> schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.ttf | 0
Rschemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.woff -> schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.woff | 0
Rschemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.woff2 -> schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.woff2 | 0
Rschemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower.css -> schemaspy/c2ec-erd/fonts/indieflower/indie-flower.css | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.eot -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.eot | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.svg -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.svg | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.ttf -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.ttf | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff2 -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff2 | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.eot -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.eot | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.svg -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.svg | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.ttf -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.ttf | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff2 -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff2 | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.eot -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.eot | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.svg -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.svg | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.ttf -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.ttf | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff2 -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff2 | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.eot -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.eot | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.svg -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.svg | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.ttf -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.ttf | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff2 -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff2 | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.eot -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.eot | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.svg -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.svg | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.ttf -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.ttf | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff2 -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff2 | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.eot -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.eot | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.svg -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.svg | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.ttf -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.ttf | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff2 -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff2 | 0
Rschemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro.css -> schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro.css | 0
Aschemaspy/c2ec-erd/index.html | 304+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/info-html.txt | 5+++++
Rschemaspy/nonce2ecash-erd/insertionOrder.txt -> schemaspy/c2ec-erd/insertionOrder.txt | 0
Rschemaspy/nonce2ecash-erd/main.js -> schemaspy/c2ec-erd/main.js | 0
Aschemaspy/c2ec-erd/orphans.html | 146+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/postgres.c2ec.xml | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/relationships.html | 165+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rschemaspy/nonce2ecash-erd/relationships.js -> schemaspy/c2ec-erd/relationships.js | 0
Aschemaspy/c2ec-erd/routines.html | 165+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rschemaspy/nonce2ecash-erd/routines.js -> schemaspy/c2ec-erd/routines.js | 0
Rschemaspy/nonce2ecash-erd/routines/routine.js -> schemaspy/c2ec-erd/routines/routine.js | 0
Rschemaspy/nonce2ecash-erd/schemaSpy.css -> schemaspy/c2ec-erd/schemaSpy.css | 0
Rschemaspy/nonce2ecash-erd/schemaSpy.js -> schemaspy/c2ec-erd/schemaSpy.js | 0
Rschemaspy/nonce2ecash-erd/tables/table.js -> schemaspy/c2ec-erd/tables/table.js | 0
Aschemaspy/c2ec-erd/tables/terminal.html | 375+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/tables/terminal_provider.html | 335+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aschemaspy/c2ec-erd/tables/withdrawal.html | 501+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dschemaspy/nonce2ecash-erd/anomalies.html | 294-------------------------------------------------------------------------------
Dschemaspy/nonce2ecash-erd/anomalies.js | 0
Dschemaspy/nonce2ecash-erd/columns.html | 364-------------------------------------------------------------------------------
Dschemaspy/nonce2ecash-erd/constraints.html | 246-------------------------------------------------------------------------------
Dschemaspy/nonce2ecash-erd/diagrams/summary/relationships.real.compact.dot | 43-------------------------------------------
Dschemaspy/nonce2ecash-erd/diagrams/summary/relationships.real.large.dot | 49-------------------------------------------------
Dschemaspy/nonce2ecash-erd/diagrams/tables/terminal.1degree.dot | 45---------------------------------------------
Dschemaspy/nonce2ecash-erd/diagrams/tables/terminal_provider.1degree.dot | 30------------------------------
Dschemaspy/nonce2ecash-erd/diagrams/tables/terminal_provider.2degrees.dot | 42------------------------------------------
Dschemaspy/nonce2ecash-erd/diagrams/tables/withdrawal.1degree.dot | 33---------------------------------
Dschemaspy/nonce2ecash-erd/diagrams/tables/withdrawal.2degrees.dot | 45---------------------------------------------
Dschemaspy/nonce2ecash-erd/index.html | 304-------------------------------------------------------------------------------
Dschemaspy/nonce2ecash-erd/info-html.txt | 5-----
Dschemaspy/nonce2ecash-erd/orphans.html | 146-------------------------------------------------------------------------------
Dschemaspy/nonce2ecash-erd/postgres.public.xml | 47-----------------------------------------------
Dschemaspy/nonce2ecash-erd/relationships.html | 165-------------------------------------------------------------------------------
Dschemaspy/nonce2ecash-erd/routines.html | 165-------------------------------------------------------------------------------
Dschemaspy/nonce2ecash-erd/tables/terminal.html | 362-------------------------------------------------------------------------------
Dschemaspy/nonce2ecash-erd/tables/terminal_provider.html | 299-------------------------------------------------------------------------------
Dschemaspy/nonce2ecash-erd/tables/withdrawal.html | 386-------------------------------------------------------------------------------
Aspecs/withdrawal-op-state-transition.plantuml | 10++++++++++
220 files changed, 3983 insertions(+), 3315 deletions(-)

diff --git a/c2ec/postgres.go b/c2ec/postgres.go @@ -11,7 +11,7 @@ const PS_INSERT_WITHDRAWAL = "INSERT INTO withdrawal " + "(wopid, reserve_pub_key, registration_ts, amount, terminal_id)" + " VALUES ($1, $2, $3, $4, $5)" -const PS_GET_WITHDRAWAL_BY_ID = "" +const PS_GET_WITHDRAWAL_BY_WOPID = "SELECT * FROM withdrawal WHERE wopid=$1" // Postgres implementation of the C2ECDatabase type C2ECPostgres struct { diff --git a/data/c2ec_schema.sql b/data/c2ec_schema.sql @@ -69,7 +69,7 @@ COMMENT ON COLUMN terminal.provider_id CREATE TABLE IF NOT EXISTS withdrawal ( - withdrawal_id INT8 GENERATED VALUE BY DEFAULT AS IDENTITY PRIMARY KEY, + withdrawal_id INT8 GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, wopid BYTEA CHECK (LENGTH(wopid)=32) NOT NULL, reserve_pub_key BYTEA CHECK (LENGTH(reserve_pub_key)=32) NOT NULL, registration_ts INT8 NOT NULL, @@ -80,15 +80,15 @@ CREATE TABLE IF NOT EXISTS withdrawal ( provider_transaction_id TEXT, last_retry_ts INT8, retry_counter INT4 NOT NULL DEFAULT 0, - completion_proof BLOB + completion_proof BYTEA ); COMMENT ON TABLE withdrawal IS 'Table representing withdrawal processes initiated by terminals'; COMMENT ON COLUMN withdrawal.withdrawal_id IS 'The withdrawal id is used a technical id used by the wire gateway to sequentially select new transactions'; COMMENT ON COLUMN withdrawal.wopid - IS 'The wopid (withdrawal operation id) is a nonce generated by the terminal requesting a withdrawal. '+ - 'The wopid identifies a specific withdrawal spawning all involved systems.'; + IS 'The wopid (withdrawal operation id) is a nonce generated by the terminal requesting a withdrawal. + The wopid identifies a specific withdrawal spawning all involved systems.'; COMMENT ON COLUMN withdrawal.reserve_pub_key IS 'Reserve public key for the reserve which will hold the withdrawal amount after completion'; COMMENT ON COLUMN withdrawal.registration_ts diff --git a/docs/content/abstract.tex b/docs/content/abstract.tex @@ -1,7 +1 @@ -In order to buy Taler, the Taler Exchange needs guarantees to legally secure the payment. Buying Taler physically establishes -direct trust, since cash can be used in order to buy Taler and the transaction is completed. If you want -to buy Taler using cashless systems like credit cards, the Exchange has no proof that the payment has succeeded. -In order to fill this cap, this thesis establishes a trust relationship between the terminal manufacturer Wallee -and the Taler Exchange through a newly created component called \textit{nonce2ecash}. This enables a trust relationship -between the Taler Exchange and the terminal operator which allows withdrawing Taler without using cash. The liability for -the money is on the side of the terminal operator and therefore establishes the guarantees for the Taler Exchange. +In order to buy Taler, the \textit{Taler Exchange} needs guarantees to legally secure the payment. Buying Taler physically establishes direct trust, since cash can be used in order to buy Taler and the transaction is completed. If you want to buy Taler using cashless systems like credit cards, the Exchange has no proof that the payment has succeeded. In order to fill this cap, this thesis proposes a framework allowing cashless withdrawals using Taler. A reference implementation is created which establishes a trust relationship between the terminal manufacturer Wallee and the \textit{Taler Exchange} through a newly created component called \textit{C2EC}. This enables a trust relationship between the \textit{Taler Exchange} and the terminal operator which allows withdrawing Taler without using cash. The liability for the digital cash is on the side of the terminal operator and therefore establishes the guarantees for the \textit{Taler Exchange}. diff --git a/docs/content/appendix/meeting_notes.tex b/docs/content/appendix/meeting_notes.tex @@ -63,13 +63,13 @@ \textbf{Decisions} \begin{itemize} - \item We can establish a generic approach for both our cases. Therefore the abstraction of \textit{Providers} will be implemented. The \textit{Providers} abstract and generalize some endpoint which can accept money in any form (Credit Card, Cash, and so on) and give the Exchange the guarantee, that the money will eventually be transferred to the Exchange. + \item We can establish a generic approach for both our cases. Therefore the abstraction of \textit{Providers} will be implemented. The \textit{Providers} abstract and generalize some endpoint which can accept digital cash in any form (Credit Card, Cash, and so on) and give the Exchange the guarantee, that the digital cash will eventually be transferred to the Exchange. \item The verification at the provider from the perspective of the exchange must be optional (withdrawing at an ATM will not get any better than the amount the ATM sends to the Excahnge in the payment notification). Therefore an additional request to the provider will not bring any benefit. \end{itemize} \textbf{Notes} \begin{itemize} - \item Flo wants to create a Reserve containing money from the ATM. He then wants to trigger a peer to peer transaction. And therefore this reserve deals as guarantee to the Exchange. This flow is possible if the provider is controlled, which in my case is not given (Wallee is a company and I cannot easily alter their source code to open a reserve) + \item Flo wants to create a Reserve containing digital cash from the ATM. He then wants to trigger a peer to peer transaction. And therefore this reserve deals as guarantee to the Exchange. This flow is possible if the provider is controlled, which in my case is not given (Wallee is a company and I cannot easily alter their source code to open a reserve) \end{itemize} \subsection*{22.02.2024} @@ -149,6 +149,46 @@ \item Add proper versioning to the SQL script. \end{itemize} +\subsection*{20.03.2024} + +\textbf{Participants} + +\begin{itemize} + \item Fehrensen Benjamin + \item Grothoff Christian + \item H\"aberli Joel +\end{itemize} + +\textbf{Topics} +\begin{itemize} + \item Payto Specification. +\end{itemize} + +\textbf{Action points} +\begin{itemize} + \item Specify payto-uri scheme in GANA repo +\end{itemize} + +\subsection*{20.03.2024 - 2} + +\textbf{Participants} + +\begin{itemize} + \item Grothoff Christian + \item H\"aberli Joel +\end{itemize} + +\textbf{Topics} +\begin{itemize} + \item Architecture + \item Payto +\end{itemize} + +\textbf{Action points} +\begin{itemize} + \item Look at Wire Gateway and Bank Integration API as specification of an API and not as individual components of Taler. C2EC must implement those specification in order to integrate into the Taler ecosystem. +\end{itemize} + % TEMPLATE % \subsection*{TEMPLATE} diff --git a/docs/content/architecture/c2ec.tex b/docs/content/architecture/c2ec.tex @@ -1,72 +1,116 @@ \section{C2EC} -The API of the C2EC (cashless2ecash) component mirrors the flow from the creation of a C2EC mapping to the creation of the reserve. For the integration into the Taler ecosystem additionally to the newly created API, the new component must implement the Taler Wirewatch Gateway API \cite{} and the Taler Bank Integration API. +The C2EC (\textbf{c}ashless\textbf{2ec}ash) component is the central coordination component in the cashless withdrawal of digital cash using Taler. It initializes the parameters and mediates between the different stakeholders of a withdrawal, which finally allows the customer to withdraw digital cash from a reserve owned by the \textit{Exchange}. Therefore C2EC provides API which can be integrated and used by the \textit{Terminal}, \textit{Wallet} and the \textit{Exchange}. -A specification of the API in yaml format can be found in \autoref*{appendix-api-spec}. +The API of the C2EC (cashless2ecash) component handles the flow from the creation of a C2EC mapping to the creation of the reserve. For the integration into the Taler ecosystem, C2EC must implement the Taler Wirewatch Gateway API \cite{taler-wirewatch-gateway-api} and the Taler Bank Integration API \cite{taler-bank-integration-api}. + +The exact specification can be found in the official Taler docs repository as part of the core specifications \cite{taler-c2ec-spec} + +\subsection{Withdrawal-Operation state transitions} + +Basically C2EC mediates between the stakeholders of a withdrawal in order to maintain the correct state of the withdrawal. Therefore it decides when a withdrawal's status can be transitioned. The diagram in \autoref{fig-withdrawal-operation-state-transition-diagram} shows the transitions of states in which a withdrawal operation can be and which events will trigger a transition. The term attestation in this context means, that the backend of the provider was asked and the transaction was successfully processed (or not). So if a transaction was successfully processed by the provider, the final state is the success case \textit{confirmed}, where the \textit{Exchange} will create a reserve and allow the withdrawal. If the attestation fails, thus the provider could not process the transaction successfully, the failure case \textit{aborted}, is reached as final state. + +\begin{figure}[h] + \centering + \includegraphics[width=0.7\textwidth]{pictures/diagrams/withdrawal-op-state-transition.png} + \caption{Withdrawal Operation state transition diagram} + \label{fig-withdrawal-operation-state-transition-diagram} +\end{figure} + +\subsection{Authentication} + +Terminals and the Exchange which authenticate against the C2EC API must provide their respective access token. Therefore, they provide a \texttt{Authorization: Bearer \$ACCESS\_TOKEN} header, where \texttt{\$ACCESS\_TOKEN} is a secret authentication token configured by the exchange and must begin with the prefix specified in RFC 8959 \cite{rfc8959}: \textit{secret-token}. \subsection{The C2EC RESTful API} -\subsubsection{Authentication} +This section describes the various API implemented in the C2EC component. The description contains a short list of the consumers of the respective API. Consumer in this context does not necessarily mean that data is consumed but rather that the consumer uses the API to either gather data or send data to C2EC. -Terminals which authenticate against the C2EC API must provide their respective access token. Therefore, they provide a \texttt{Authorization: Bearer \$ACCESS\_TOKEN} header, where \texttt{\$ACCESS\_TOKEN} is a secret authentication token configured by the exchange and must begin with the prefix specified in RFC 8959 \cite{rfc8959}: \textit{secret-token}. +\subsubsection{Taler Bank Integration API} -\subsubsection{Configuration of C2EC Bank Integration API} +Withdrawals with a C2EC are based on withdrawal operations which register a withdrawal identifier (nonce) at the C2EC component. The provider must first create a unique identifier for the withdrawal operation (the \texttt{WOPID}) to interact with the withdrawal operation and eventually withdraw using the wallet. The withdrawal operation API is an implementation of the \textit{Bank Integration API} \cite{taler-bank-integration-api}. +\textbf{GET - config} \begin{itemize} \item \textbf{Method:} GET \item \textbf{Endpoint:} /config \item \textbf{Description:} Return the protocol version and configuration information about the C2EC API. \item \textbf{Response:} HTTP status code 200 OK. The exchange responds with a \texttt{C2ECConfig} object. + \item \textbf{Consumers:} Components who want to use the API and therefore want to load the config of the instance. \end{itemize} -\subsubsection{Taler Bank Integration API} +\textbf{POST - withdrawal-operation} -Withdrawals with a C2EC are based on withdrawal operations which register a withdrawal identifier (nonce) at the C2EC component. The provider must first create a unique identifier for the withdrawal operation (the \texttt{WITHDRAWAL\_ID}) to interact with the withdrawal operation and eventually withdraw using the wallet. The withdrawal operation API is an implementation of the Bank Integration API \cite{taler-bank-integration-api}. +This API is not specified within the standard Bank Integration API and therefore an extension to the official specification. The Wallet must implement the initialization through this flow. -\textbf{POST - withdrawal-operation} \begin{itemize} \item \textbf{Method:} POST \item \textbf{Endpoint:} /withdrawal-operation - \item \textbf{Description:} Initiate the withdrawal operation, identified by the \texttt{WITHDRAWAL\_ID}. - \item \textbf{Request:} The request body contains a \texttt{WithdrawRegistration} object. - \item \textbf{Response:} HTTP status code 204 No content, 400 Bad request, or 500 Internal Server error. + \item \textbf{Description:} Initiate the withdrawal operation, identified by the \texttt{WOPID}. + \item \textbf{Request:} The request body contains a \texttt{C2ECWithdrawRegistration} object. + \item \textbf{Response:} The response is HTTP status code 204 No Content on success and a 400 or 500 status code on failure (with respective \texttt{ErrorDetail}) + \item \textbf{Consumers:} The \textit{Taler Wallet} registers and initializes the withdrawal operation through this API. \end{itemize} -\textbf{GET - withdrawal-operation by withdrawal-id} +\textbf{GET - withdrawal-operation by wopid} \begin{itemize} \item \textbf{Method:} GET - \item \textbf{Endpoint:} /withdrawal-operation/\$WITHDRAWAL\_ID - \item \textbf{Description:} Query information about a withdrawal operation, identified by the \texttt{WITHDRAWAL\_ID}. - \item \textbf{Response:} HTTP status code 200 OK or 404 Not found. + \item \textbf{Endpoint:} /withdrawal-operation/\$WOPID + \item \textbf{Description:} Query information about a withdrawal operation, identified by the \texttt{WOPID}. + \item \textbf{Response:} HTTP status code 200 OK and body containing a \texttt{C2ECWithdrawalStatus} object or 404 Not found. + \item \textbf{Consumers:} The API is used by the \textit{Terminal} and \textit{Taler Wallet} to retrieve information about the current state of the withdrawal operation. The API allows long-polling and can therefore be used by the consumer to be updated if the status of the withdrawal operation changes. \end{itemize} -\textbf{POST - withdrawal-operation by withdrawal-id} +\textbf{POST - withdrawal-operation by wopid} \begin{itemize} \item \textbf{Method:} POST - \item \textbf{Endpoint:} /withdrawal-operation/\$WITHDRAWAL\_ID + \item \textbf{Endpoint:} /withdrawal-operation/\$WOPID \item \textbf{Description:} Notifies C2EC about an executed payment for a specific withdrawal. - \item \textbf{Request:} The request body contains a \texttt{PaymentNotification} object. + \item \textbf{Request:} The request body contains a \texttt{C2ECPaymentNotification} object. \item \textbf{Response:} HTTP status code 204 No content, 400 Bad request, 404 Not found, or 500 Internal Server error. + \item \textbf{Consumers:} The API is used by the \textit{Terminal} to notify the C2EC component that a payment was made and to give the C2EC component information about the payment itself (e.g. the provider specific transaction identifier). \end{itemize} \subsection{Taler Wirewatch Gateway API} -The Taler Wirewatch Gateway \cite{taler-wirewatch-gateway-api} must be implemented in order to capture incoming transactions and allow the withdrawal of money. The specification of the Taler Wirewatch Gateway can be found in the official Taler documentation \cite{taler-wirewatch-gateway-api}. +The Taler Wirewatch Gateway \cite{taler-wirewatch-gateway-api} must be implemented in order to capture incoming transactions and allow the withdrawal of digital cash. The specification of the Taler Wirewatch Gateway can be found in the official Taler documentation \cite{taler-wirewatch-gateway-api}. -The wirewatch gateway helps the Exchange communicate with the C2EC component using a the API. It helps the Exchange to fetch guarantees, that a certain transaction went through and that the reserve can be created and withdrawn. This will help C2EC to capture the transaction of the Terminal Backend to the Exchange's account and therefore allow the withdrawal by the customer. Therefore the wirewatch gateway API is used in C2EC. When the wirewatch gateway can get the proof, that a transaction was successfully processed, the exchange will create a reserve with the corresponding reserve public key. +The wirewatch gateway helps the Exchange communicate with the C2EC component using a the API. It helps the Exchange to fetch guarantees, that a certain transaction went through and that the reserve can be created and withdrawn. This will help C2EC to capture the transaction of the Terminal Backend to the Exchange's account and therefore allow the withdrawal by the customer. Therefore the wirewatch gateway API is implemented as part of C2EC. When the wirewatch gateway can get the proof, that a transaction was successfully processed, the exchange will create a reserve with the corresponding reserve public key. For C2EC not all endpoints of the Wire Gateway API are needed. Therefore the endoints which are not needed will be implemented but always return http status code 400 with explanatory error details as specified by the specification. -\subsubsection{Configuration of C2EC Wire Gateway API} +\textbf{GET - config} +\begin{itemize} + \item \textbf{Method:} GET + \item \textbf{Endpoint:} /config + \item \textbf{Description:} Returns a \texttt{WireConfig} object with configuration information about the Wirewatch Gateway API of the C2EC component. + \item \textbf{Response:} HTTP status code 200 OK. The exchange responds with a \texttt{C2ECConfig} object. + \item \textbf{Consumers:} Components who want to use the API and therefore want to load the config of the instance. +\end{itemize} -\subsubsection{Taler Bank Integration API} +\textbf{POST - transfer} +\begin{itemize} + \item \textbf{Method:} GET + \item \textbf{Endpoint:} /transfer + \item \textbf{Description:} Allows the \textit{Exchange} to make a transaction. This API is used in case of a refund. The transfer will therefore pointed towards a \texttt{payto://wallee-transaction} address. + \item \textbf{Request:} The request contains a \texttt{TransferRequest} object. + \item \textbf{Response:} HTTP status code 200 OK. The exchange responds with a \texttt{C2ECConfig} object. + \item \textbf{Consumers:} The \textit{Exchange} who wants to transfer digital cash to a account which can be handled by the C2EC component. +\end{itemize} +\textbf{GET - history of incoming transactions} +\begin{itemize} + \item \textbf{Method:} GET + \item \textbf{Endpoint:} /history/incoming + \item \textbf{Description:} Returns a list of transactions which were recently created in the C2EC component. In case of C2EC, this are withdrawal operations which are confirmed and a reserve can therefore be created by the exchange. + \item \textbf{Response:} HTTP status code 200 OK. The exchange responds with a \texttt{C2ECConfig} object. + \item \textbf{Consumers:} The \textit{Exchange} who will create the reserve which then can be withdrawn by the \textit{Taler Wallet}. +\end{itemize} \subsection{The C2EC database} -The database of the C2EC component must track two different aspects. The first is the mapping of a nonce to a reserve public key to enable withdrawals and the second aspect is the authentication of terminals allowing withdrawals owned by terminal providers like \textit{Wallee}. +The database of the C2EC component must track two different aspects. The first is the mapping of a nonce (the \texttt{WOPID}) to a reserve public key to enable withdrawals and the second aspect is the authentication of terminals allowing withdrawals owned by terminal providers like \textit{Wallee}. \subsubsection{Terminal Provider} -Table in \autoref{fig-erd-terminal-provider} describing providers of C2EC compliant terminals. The name of the provider is important, because it decides which flow shall be taken in order to attest the payment. For example will the name \textit{Wallee} signal the terminal provider to +Table in \autoref{fig-erd-terminal-provider} describing providers of C2EC compliant terminals. The name of the provider is important, because it decides which flow shall be taken in order to attest the payment. For example will the name \textit{Wallee} signal the terminal provider to trigger the attestation flow of \textit{Wallee} once the payment notification for the withdrawal reaches C2EC. \begin{figure}[h] \centering @@ -94,3 +138,24 @@ Table in \autoref{fig-erd-withdrawal} represents the withdrawal processes initia \caption{Withdrawal Table} \label{fig-erd-withdrawal} \end{figure} + +\subsubsection{Relationships} +The structure of the three tables forms a tree which is rooted at the terminal provider. Each provider can have many terminals and each terminal can have many withdrawals. The reverse does not apply. A withdrawal does always belong to exactly one terminal and a terminal is always linked to exactly one provider. These relations are installed by using foreign keys, which link the sub-entities (Terminal and Withdrawal) to their corresponding owners (Provider and Terminal). A provider owns its terminals and a terminal owns its Withdrawals. + +\begin{figure}[h] + \centering + \includegraphics[width=0.7\textwidth]{pictures/database/relationships.png} + \caption{Relationships of the entities.} + \label{fig-erd-relationships} +\end{figure} + +\section{Payto wallee-transaction extension} +RFC 8905 \cite{rfc8905} specifies a URI scheme (complying with RFC 3986 \cite{rfc3986}), which allows to address a creditor with theoretically any protocol that can be used to pay someone (such as IBAN, BIC etc.) in a standardized way. Therefore it introduces a registry which holds the specific official values of the standard. The registry is supervised by the GANA (GNUnet Assigned Numbers Authority) \cite{gnunet-gana}. + +In case a refund becomes necessary, which might occur if a credit card transaction does not succeed, a new \textit{target type} called \textit{wallee-transaction} is registered. It takes a transaction identifier as \textit{target identifier} which identifies the transaction for which a refund process shall be triggered. The idea is that the handler of the payto URI is able to deduct the transaction from the payto-uri and trigger the refund process. + +\subsection{Payto refund using Wallee} +Wallee allows to trigger refunds using the Refund Service of the Wallee backend. The service allows to trigger a refund given a transaction identifier. Therefore the C2EC component can trigger the refund using the refund service if needed, and the payto-uri retrieved as debit account by the wirewatch gateway API, is leveraged to delegate the refund process to the Wallee Backend using the Refund Service and parsing the transaction identifier of the payto-uri. + +\subsection{Extensibility} +The flow is extensible and other providers like Wallee might be added. They must therefore register their own refund payto-uri with the GANA and then the refund process can be implemented likewise. +\ No newline at end of file diff --git a/docs/content/architecture/overview.tex b/docs/content/architecture/overview.tex @@ -1,6 +1,4 @@ -\section{Overview} - -\subsection{Components} +\section{Components} \begin{figure}[h] \centering @@ -9,90 +7,68 @@ \label{fig-diagram-all-components} \end{figure} -The component diagram shows the components involved by the withdrawal using the terminal. Besides the credit card owned by the user, two systems are involved and within each system two components are required to fulfill the task. The Taler ecosystem which represents the Taler Wallet and the Taler Exchange involved in the withdrawal process. In the Terminal system, the terminal and the backend system of the terminal manufacturer are leveraged in the process. +The component diagram shows the components involved by the withdrawal using the terminal. Besides the credit card owned by the user, two systems are involved and within each system two components are required to fulfill the task. The Taler ecosystem which represents the Taler Wallet and the Taler Exchange (C2EC is a part of the Exchange) involved in the withdrawal process. In the Terminal system, the terminal and the backend system of the terminal manufacturer are leveraged in the process. The numbers in the diagrams are picked up by the description of the process further down. + +\section{Process} + \begin{figure}[h] \centering \includegraphics[width=0.7\textwidth]{pictures/diagrams/nonce2ecash.png} - \caption{Diagram of high level flow} + \caption{Process of a withdrawal using a credit card} \label{fig-diagram-all-sequence} \end{figure} -The diagram in \autoref{fig-diagram-all-sequence} shows the high level flow to withdraw Taler using the credit card terminal. It shows when the components of \autoref{fig-diagram-all-components} interact with each other. It shows the implementation of the flow. Terminal, Wallet and Exchange are linked leveraging a nonce initially generated by the terminal and presented to the Exchange by the withdrawing Wallet accompanied by a public key. - -\subsection{Process} +The diagram in \autoref{fig-diagram-all-sequence} shows the high level flow to withdraw digital cash using the credit card terminal and Taler. It shows when the components of \autoref{fig-diagram-all-components} interact with each other. It shows the implementation of the flow. Terminal, Wallet and Exchange are linked leveraging a \textit{wopid} initially generated by the terminal and presented to the Exchange by the withdrawing Wallet accompanied by a public key. The process requires three parties interacting with each other. The Terminal, the Wallet and the Exchange must therefore interact with each other. In this section the highlevel process as showed in \autoref{fig-diagram-all-sequence} is explained. -\subsubsection{The Terminal} +\subsection{The Terminal} The Terminal initiates the withdrawal leveraging an application which works as follows: \begin{enumerate} - \item At startup of the application, the terminal loads the Exchange configuration + \item At startup of the application, the terminal loads the C2EC configuration \item When a user wishes to do a withdrawal, the owner of the terminal opens the application and initiates a new withdrawal. \begin{enumerate} - \item Application creates a nonce - \item The application starts long polling at the Exchange and awaits the selection of the reserve parameters mapped to the nonce. The parameters are sent by the Wallet to the Exchange. - \item Nonce is packed into a QR code (with Exchange and amount entered by the terminal owner) + \item Application creates a \textit{wopid} + \item The application starts long polling at the C2EC and awaits the selection of the reserve parameters mapped to the \textit{wopid}. The parameters are sent by the Wallet to C2EC. + \item \textit{Wopid} is packed into a QR code (with Exchange and amount entered by the terminal owner) \item Terminal calculates fees and shows summary and the Terms of Service (ToS) of Taler. \item The user accepts the offer, agrees with the ToS \item QR code is displayed \end{enumerate} - \item The user now scans the QR Code using his wallet. - \item The application receives the notification of the Exchange, inlcuding the reserve public key. - \item The Terminal executes the payment (using the Terminal Backend, the reserve public key is sent as payment purpose). + \item The user now scans the QR Code using his Wallet. + \item The application receives the notification of the C2EC, that the parameters for the withdrawal were selected. + \item The Terminal executes the payment (after user presented their credit card, using the Terminal Backend). \begin{enumerate} \item It presents the result to the user. - \item It tells the Exchange, that the payment was successful. + \item It tells the C2EC, that the payment was successful. \end{enumerate} \end{enumerate} -\subsubsection{The Exchange} +\subsection{The C2EC} -The Exchange manages the withdrawal using a third party provider (e.g. Wallee) and seeks guarantees in order to provide a reserve containing Taler which can be withdrawn by the wallet. +The C2EC component manages the withdrawal using a third party provider (e.g. Wallee) and seeks guarantees in order to create a reserve containing digital cash which can be withdrawn by the Wallet. \begin{enumerate} - \item The Exchange retrieves a long polling request for a nonce (from the Terminal). - \item The Exchange creates a mapping entry with the nonce and an empty reserve public key field - \item The Exchange retrieves a request including a nonce and a reserve public key. - \item The Exchange validates the request and adds the key to the mapping. This establishes the nonce to reserve public key mapping. - \item The Exchange ends the long polling from the terminal (by sending back the reserve public key). - \item The Exchange receives payment notification of the terminal. - \item The Exchange verifies the notification by asking the terminal backend for confirmation. - \item The Exchange, upon successfully checking the notification, checks that the transaction went through and therefore a reserve is created by the wirewatch gateway (using the public key in the payment purpose field). + \item C2EC retrieves a long polling request for a \textit{wopid} (from the Terminal). + \item C2EC creates a mapping entry with the \textit{wopid} and an empty reserve public key field + \item C2EC retrieves a request including a \textit{wopid} and a reserve public key. + \item C2EC validates the request and adds the key to the mapping. This establishes the \textit{wopid} to reserve public key mapping. + \item C2EC ends the long polling from the terminal (by sending back the reserve public key). + \item C2EC receives payment notification of the terminal. + \item C2EC verifies the notification by asking the terminal backend for confirmation. + \item C2EC, upon successfully checking the notification, checks that the transaction went through and therefore a reserve is created by the wirewatch gateway (using the public key in the payment purpose field). \end{enumerate} -\subsubsection{The Wallet} +\subsection{The Wallet} -The Wallet must attest its presence to the terminal by registering a nonce and belonging reserve public key which will holds the digital currency that can eventually be withdrawn by the wallet. +The Wallet must attest its presence to the terminal by registering a \textit{wopid} and belonging reserve public key which will holds the digital currency that can eventually be withdrawn by the Wallet. \begin{enumerate} - \item The Wallet scans the QR Code (nonce, Exchange information and amount) on the Terminal + \item The Wallet scans the QR Code (\textit{wopid}, Exchange information and amount) on the Terminal \item It creates a reserve key pair - \item The Wallet sends the reserve public key and the scanned nonce to the Exchange - \item The Wallet can withdraw money from the created reserve. + \item The Wallet sends the reserve public key and the scanned \textit{wopid} to the C2EC + \item The Wallet can withdraw digital cash from the created reserve. \end{enumerate} - -\subsection{Nonce} -The nonce is leveraged by all components to establish the connection to an entry in the mapping table of nonce2ecash. The nonce is therefore crucial and every participant of the withdrawal must eventually gain knowledge about the value of the nonce in order to process the withdrawal. The nonce is created by the Terminal and advertised to the Exchange by requesting notification, when the reserve public key belonging to the nonce was received and the mapping could be created. -The Wallet gains the nonce value when scanning the QR code at the Terminal and then sends the nonce (and the other parameters) to the Exchange. - -\subsubsection{Nonce creation} -Besides the entropy needed to establish a correct nonce, the hash function leveraged must be specified. (TODO - e.g. FIPS 180-4 \cite{fips-180-4} (SHA-1 and SHA-2 families) or FIPS-202 \cite{fips-202} (SHA-3 family, which is still beeing reviewed)) - -\subsection{Reserve Public Key} -The reserve public key is created by the Wallet and sent to the Exchange to establish the mapping between the nonce and the reserve public key. The reserve public key is used to eventually create a reserve at the exchange which contains the money. The Wallet can then withdraw the money from this reserve using the withdrawal process of the wallet \cite{wallet-withdrawal}. - -\subsection{Payto wallee-transaction extension} -RFC 8905 \cite{rfc8905} specifies a URI scheme (complying with RFC 3986 \cite{rfc3986}), which allows to address a creditor with theoretically any protocol that can be used to pay someone (such as IBAN, BIC etc.) in a standardized way. Therefore it introduces a registry which holds the specific official values of the standard. The registry is supervised by the GANA (GNUnet Assigned Numbers Authority) \cite{gnunet-gana}. - -In case a refund becomes necessary, which might occur if a credit card transaction does not succeed, a new \textit{target type} called \textit{wallee-transaction} is registered. It takes a transaction identifier as \textit{target identifier} which identifies the transaction for which a refund process shall be triggered. The idea is that the handler of the payto URI is able to deduct the transaction from the payto-uri and trigger the refund process. - -\subsubsection{Payto refund using Wallee} -Wallee allows to trigger refunds using the Refund Service of the Wallee backend. The service allows to trigger a refund given a transaction identifier. Therefore the nonce2ecash component can trigger the refund using the refund service if needed, and the payto-uri retrieved as debit account by the wirewatch gateway API, is leveraged to delegate the refund process to the Wallee Backend using the Refund Service and parsing the transaction identifier of the payto-uri. - -\subsubsection{Extensibility} -The flow is extensible and other providers like Wallee might be added. They must therefore register their own refund payto-uri with the GANA and then the refund process can be implemented likewise. - -\pagebreak -\ No newline at end of file diff --git a/docs/content/architecture/wallee.tex b/docs/content/architecture/wallee.tex @@ -4,8 +4,22 @@ Wallee offers level 1 PCI-DSS \cite{pci-dss} compliant payment processes to its \subsection{Wallee Terminal} Wallee Terminals are based on android and run a modified, certified android version as operating system. Thus they can be used for payments and establish strong authentication in a trusted way. +\subsubsection{Withdrawal Operation Identifier} +The \textbf{W}ithdrawal-\textbf{OP}eration-\textbf{ID}entifier (\textit{wopid}) is leveraged by all components to establish the connection to an entry in the withdrawal table (\autoref{fig-erd-withdrawal}) of C2EC. The \textit{wopid} is therefore crucial and every participant of the withdrawal must eventually gain knowledge about the value of the \textit{wopid} in order to process the withdrawal. The \textit{wopid} is created by the Terminal and advertised to the Exchange by requesting notification, when the reserve public key belonging to the \textit{wopid} was received and the mapping could be created. +The Wallet gains the \textit{wopid} value when scanning the QR code at the Terminal and then sends the \textit{wopid} (and the other parameters) to the Exchange. + +\textbf{Creation of the WOPID} + +Besides the entropy needed to establish a correct \textit{wopid}, the hash function leveraged must be specified. (TODO - e.g. FIPS 180-4 \cite{fips-180-4} (SHA-1 and SHA-2 families) or FIPS-202 \cite{fips-202} (SHA-3 family, which is still beeing reviewed)) + \subsection{Wallee Backend and API} -Terminals of Wallee are used to communicate with the customer at the shop of the merchant. The payment and processing of the transaction is run on the wallee backend. This means that +Terminals of Wallee are used to communicate with the customer at the shop of the merchant. The payment and processing of the transaction is run on the \textit{Wallee Backend}. The \textit{Wallee Backend} is used by C2EC to attest a payment, when a \texttt{C2ECPaymentNotification} message reaches C2EC. The \textit{Wallee Backend} is also used in order to do refunds, in case something goes wrong during the payment. Therefore the API of \textit{Wallee Backend} is used to collect this information or process a refund. Wallee structures its API using \textit{Services}. For C2EC this means that the \textit{Transaction Service} \cite{wallee-transaction-service-docs} and \textit{Refund Service} \cite{wallee-refund-service-docs} must be implemented. + +\subsubsection{Transaction Service} +The \textit{Transaction Service} is used by C2EC to attest a transaction was successfully processed and the reserve can be created by the \textit{Exchange}. Therefore the \texttt{GET /api/transaction/read} API of the \textit{Transaction Service} is used. If the returned transaction is in state \textit{fulfill}, the transaction can be stored as \textit{completion\_proof} for the withdrawal as specified in the withdrawal table \autoref{fig-erd-withdrawal} and the withdrawal status can be transitioned to \textit{confirmed}. This will tell the \textit{Exchange} to create the reserve which can eventually be withdrawn by the wallet. + +\subsubsection{Refund Service} +The \textit{Refund Service} is used by C2EC in case of a refund. Therefore the C2EC gets notified by the \textit{Exchange} that the transaction shall be refunded. To trigger the refund process at the Wallee backend, the \texttt{POST /api/refund/refund} is used. \subsubsection{Wallee Transaction State} -In order to decide if a transaction was successful, the states of a transaction within Wallee must be mapped to the world of Taler. This means that a reserve shall only be created, if the transaction is in a state which allows Taler not having any liabilities regarding the transaction and that Wallee could process the payment successfully. The documentation states that \textit{only} in the transaction state \textit{fulfill}, the delivery of the goods (in case of withdrawal this means, that the reserve can be created) shall be started \cite*{wallee-transaction-process}. For the withdrawal this means, that the only interesting state for fulfillment is the \textit{fulfill} state. Every other state means, that the transaction was not successful and the reserve shall not be created. +In order to decide if a transaction was successful, the states of a transaction within Wallee must be mapped to the world of Taler. This means that a reserve shall only be created, if the transaction is in a state which allows Taler not having any liabilities regarding the transaction and that Wallee could process the payment successfully. The documentation states that \textit{only} in the transaction state \textit{fulfill}, the delivery of the goods (in case of withdrawal this means, that the reserve can be created) shall be started \cite{wallee-transaction-process}. For the withdrawal this means, that the only interesting state for fulfillment is the \textit{fulfill} state. Every other state means, that the transaction was not successful and the reserve shall not be created. diff --git a/docs/content/architecture/wallet.tex b/docs/content/architecture/wallet.tex @@ -0,0 +1,5 @@ +\section{Taler Wallet} + +The \textit{Taler Wallet} is responsible to create a reserve key pair which will allow him the withdrawal using the \textit{Exchange} using the reserve public key of the key pair. + +The reserve public key is created by the \textit{Taler Wallet} and sent to C2EC to establish the mapping between the \textit{wopid} and the reserve public key. The reserve public key is used to eventually create a reserve at the exchange which contains the digital cash. The \textit{Taler Wallet} can then withdraw the digital cash from this reserve using the withdrawal process of the wallet \cite{wallet-withdrawal}. The process for the case of C2EC is slightly different from the present processes because the requests to the Bank-Integration API contain different properties than the currently supported. This means the \textit{Taler Wallet} must be extended in order to allow the withdrawal using C2EC. +\ No newline at end of file diff --git a/docs/content/implementation/exchange.tex b/docs/content/implementation/exchange.tex @@ -1 +1 @@ -\section{implementing nonce2ecash docs} -\ No newline at end of file +\section{implementing C2EC docs} +\ No newline at end of file diff --git a/docs/content/introduction/goal.tex b/docs/content/introduction/goal.tex @@ -1,10 +1,10 @@ \section{Goal} -The goal of this thesis is to implement a process which allows withdrawing Taler using a credit card at a terminal of the terminal provider \textit{Wallee}. +The goal of this thesis is to propose a framework for cashless withdrawals and implement the process which allows withdrawing Taler using a credit card at a terminal of the terminal provider \textit{Wallee}. -\subsection{nonce2ecash} +\subsection{C2EC} -Therefore a new component, named \textbf{nonce2ecash}, will be implemented as part of the Taler Exchange. Nonce2ecash will mediate between the Taler Exchange and the terminal provider. This includes checking that the transaction of the debitor reaches the account of the Exchange and therefore the digital currency can be withdrawn by the user, using its Wallet. +Therefore a new component, named \textbf{C2EC}, will be implemented as part of the Taler Exchange. C2EC will mediate between the Taler Exchange and the terminal provider. This includes checking that the transaction of the debitor reaches the account of the Exchange and therefore the digital currency can be withdrawn by the user, using its Wallet. \subsection{Wallee} A new app for the payment terminal provider \textbf{Wallee} must be implemented which allows to start the withdrawal using providers facilities. The provider will guarantee through its backend, that the payment was successful. This puts the liability of the payment on the provider of the terminal. diff --git a/docs/content/introduction/introduction.tex b/docs/content/introduction/introduction.tex @@ -1,40 +1,29 @@ \section{Motivation} -Ever used Taler to pay for your goods? Probably not. This is because there exist only very specific ways to withdraw money with Taler. +Which payment systems do you use in your daily live and why? Probably one you know it is universally accepted, reliable, secure and the payment goes through more or less instantly. -So the problem currently is that it is not possible for a larger group of users to get money using Taler. This thesis proposes a way allowing users who own a credit card and a Taler Wallet, to withdraw money using Taler at a terminal supporting the withdrawal. +The \textbf{universal acceptance} was identified as one of the most important in a report which was published on behalf of the ECB (European Central Bank) in march 2022 as result of a focus group concerning the acceptance of a digital euro \cite{panetta-speech-march-30} as new payment system. The universal acceptance was even identified as \textit{the} most important property amongst the general public and tech-savvy people in the report \cite{study-new-digital-payment-methods}. -To make the withdrawal possible, various loose ends must be put together within the Taler ecosystem and the terminal provider. Also a new component called \textit{nonce2ecash} is implemented. The thesis focuses on the terminal provider called \textit{Wallee}. Therefore an application for the Wallee Terminal (PAX A50) for withdrawing money with Taler is implemented. +In a world, where everything is connected and everything is accessible from everywhere (one might think), it is therefore very important to make it as easy as possible to on-board people on a product. This is also the case for Taler. For a wide acceptance of the payment system Taler, it is important that various ways exist to withdraw digital cash in Taler. -With these components, a trustworthy relationship can be created, which makes it possible for the Exchange to issue digital money to a user. Therefore the Exchange is not putting his trust on the money received but rather on the promise of a trusted third party (the terminal provider) to put the received money in a location, controlled by the Exchange eventually (e.g. a bank account owned by the Exchange). +This is where this thesis hooks in. Currenlty it is possible to withdraw digital cash using Taler at a Bank which runs a \textit{Taler Exchange} and integrates the respective API. At time of this writing only one Bank is in the process of running a \textit{Taler Exchange}. At the Berner Fachhochschule an \textit{Exchange} is operated and digital cash can be withdrawn at the secretariat using cash. -This enables a broader group of people to leverage Taler for their payments. Which eventually leads to wider adoption of the payment system Taler. - -\section{Perspectives} -During the initial analysis of the task, two main areas of work were discovered. One is the Taler Exchange and the other is the Application for the terminal. This led to different views on the system by two different players within it. To allow a more concise view on the system and to support the readers and implementer, two perspectives shall be kept in mind. They have different views on the process but need to interact with each other seamlessly. - -\subsection{Terminal Application} -The perspective of the terminal application includes all processes within the application which interacts with the user, his Taler Wallet and its credit card allowing the withdrawal of digital money. The terminal application wants to conviently allow the withdrawal of digital money and charge fees to cover its costs and risks. +To make the access to digital cash using Taler easier and allow faster spreading of the payment system Taler, a framework for cashless withdrawal of digital cash is proposed and implemented in order to open new doors for the integration and adoption of the Taler payment system within the society. -\subsection{Taler Exchange (nonce2ecash)} -The perspective of the Taler Exchange includes all processes within nonce2ecash component and the interaction with the terminal application, terminal backend and the wallet of the user. The Taler Exchange wants to allow withdrawal of digital money only to users who pay the equivalent value to the Exchange. The Exchange wants to stay out of any legal implications at all costs. +To make the withdrawals using a credit card possible, various loose ends must be put together within the Taler ecosystem and the terminal provider. -\section{Fees} -Since buying Taler using a credit card leverages a third party payment system, new \textbf{fees} are introduced and must be taken care of. The fees to withdraw money using Taler are defined by the third party payment system and therefore do not lie in the control of the Taler system. The fees are retrieved by the terminal and added to the amount of money which is to be withdrawn by the user. Only after giving the confirmation to buy the specified amount of Taler with the specified amount of fees, the payment shall be processed. +Therefore a new component C2EC shall help, establishing a trustworthy relationship, which makes it possible for the \textit{Exchange} to issue digital cash to a customer. Therefore the \textit{Exchange} is not putting his trust on cash received but rather on the promise of a trusted third party (a terminal provider) to put the received digital cash in a location, controlled by the \textit{Exchange} eventually (e.g. a bank account owned by the \textit{Exchange}). -\section{nonce2ecash} -Very simplified, the process of a withdrawal currently looks as follows: - -\begin{enumerate} - \item User pays Exchange - \item Exchange validates payment and iff successful, creates reserve - \item User can access reserve and withdraw money using his wallet -\end{enumerate} +This enables a broader group of people to leverage Taler for their payments. Which eventually leads to wider adoption of the payment system Taler. -As long as the interaction of withdrawal is manual and the identification and verification of the payment is a human interaction, this process is ok because this makes stealing Taler as hard as manipulating the Taler Exchange (which would mean a complete compromisation of the system). +\section{Perspectives} +During the initial analysis of the task, three areas of work were discovered. One is the \textit{Taler Exchange}, one the Application for the terminal and the (Taler) \textit{Wallet}. This led to different views on the system by two different players within it. To allow a more concise view on the system and to support the readers and implementer, two perspectives shall be kept in mind. They have different views on the process but need to interact with each other seamlessly. -But now we have the problem that the Exchange is not able to proof that the money was sent to the wallet it was intended for. This leaves the Exchange with liability weaknesses and makes it unattractive to operate the cashless2ecash feature for Exchange operators and therefore introduces a weakness. +\subsection{Taler Exchange (C2EC)} +The perspective of the \textit{Taler Exchange} includes all processes within C2EC component and the interaction with the terminal application, terminal backend and the wallet of the user. The \textit{Taler Exchange} wants to allow withdrawal of digital digital cash only to users who pay the equivalent value to the \textit{Exchange}. The \textit{Exchange} wants to stay out of any legal implications at all costs. -Imagine the following situation: A user gets kidnapped and is forced to buy a certain amount of Taler. But now instead of using the wallet of the kidnapped user, the kidnapper accesses Exchange with his own wallet and steals the money. This makes stealing money from someone as hard as making them pay using their credit card or reveal the credentials to do so (which is totally possible \cite{cc-fraud-types}). Also plain digital attacks are possible (and probably more likely) where the attacker is able to claim the reserves for himself before the user gets his hands on the money. +\subsection{Terminal Application} +The perspective of the terminal application includes all processes within the application which interacts with the user, their \textit{Wallet} and credit card allowing the withdrawal of digital cash. The terminal application wants to conviently allow the withdrawal of digital cash and charge fees to cover its costs and risks. -This situation can be prevented by leveraging the \textbf{nonce2ecash} approach proposed by Florian Jung. This approach forces the withdrawing party to lock their withdrawal to a specific user (public key) before the actual withdrawal. This approach makes stealing money as hard as gaining control over the wallet (which is the equivalent to stealing the wallet). +\subsection{Taler Wallet} +The \textit{Wallet} holds the digital cash owned by the customer. The \textit{Wallet} wants to eventually gather the digital cash from the \textit{Taler Exchange}. The owner of the \textit{Wallet} must therefore present their credit card at a \textit{Terminal} of the terminal provider and pay the \textit{Exchange} as well accept the fees of the provider. diff --git a/docs/listings/specs/api-c2ec.txt b/docs/listings/specs/api-c2ec.txt @@ -0,0 +1,342 @@ +.. + This file is part of GNU TALER. + + Copyright (C) 2014-2024 Taler Systems SA + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero General Public License as published by the Free Software + Foundation; either version 2.1, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with + TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + + @author Joel Haeberli + +=========================== +The C2EC RESTful API +=========================== + +.. note:: + + **This API is experimental and not yet implemented** + +This chapter describe the APIs that third party providers need to integrate to allow +withdrawals through indirect payment channels like credit cards or ATM. + +.. contents:: Table of Contents + +-------------- +Authentication +-------------- + +Terminals which authenticate against the C2EC API must provide their respective +access token. Therefore they provide a ``Authorization: Bearer $ACCESS_TOKEN`` header, +where `$ACCESS_TOKEN`` is a secret authentication token configured by the exchange and +must begin with the RFC 8959 prefix. + +---------------------------- +Configuration of C2EC +---------------------------- + +.. http:get:: /config + + Return the protocol version and configuration information about the C2EC API. + + **Response:** + + :http:statuscode:`200 OK`: + The exchange responds with a `C2ECConfig` object. This request should + virtually always be successful. + + **Details:** + + .. ts:def:: C2ECConfig + + interface C2ECConfig { + // Name of the API. + name: "taler-c2ec"; + + // libtool-style representation of the C2EC protocol version, see + // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning + // The format is "current:revision:age". + version: string; + } + +----------------------------- +Withdrawing using C2EC +----------------------------- + +Withdrawals with a C2EC are based on withdrawal operations which register a withdrawal identifier +(nonce) at the C2EC component. The provider must first create a unique identifier for the withdrawal +operation (the ``WOPID``) to interact with the withdrawal operation and eventually withdraw using the wallet. + +.. http:post:: /withdrawal-operation + + Register a `WOPID` belonging to a reserve public key. + + **Request:** + + .. ts:def:: C2ECWithdrawRegistration + + interface C2ECWithdrawRegistration { + // Maps a nonce generated by the provider to a reserve public key generated by the wallet. + wopid: ShortHashCode; + + // Reserve public key generated by the wallet. + // According to TALER_ReservePublicKeyP (https://docs.taler.net/core/api-common.html#cryptographic-primitives) + reserve_pub_key: EddsaPublicKey; + + // Optional amount for the withdrawal. + amount?: Amount; + + // Id of the terminal of the provider requesting a withdrawal by nonce. + // Assigned by the exchange. + terminal_id: SafeUint64; + } + + **Response:** + + :http:statuscode:`204 No content`: + The withdrawal was successfully registered. + :http:statuscode:`400 Bad request`: + The ``WithdrawRegistration`` request was malformed or contained invalid parameters. + :http:statuscode:`500 Internal Server error`: + The registration of the withdrawal failed due to server side issues. + +.. http:get:: /withdrawal-operation/$WOPID + + Query information about a withdrawal operation, identified by the ``WOPID``. + + **Request:** + + :query long_poll_ms: + *Optional.* If specified, the bank will wait up to ``long_poll_ms`` + milliseconds for operationt state to be different from ``old_state`` before sending the HTTP + response. A client must never rely on this behavior, as the bank may + return a response immediately. + :query old_state: + *Optional.* Default to "pending". + + **Response:** + + :http:statuscode:`200 Ok`: + The withdrawal was found and is returned in the response body as ``C2ECWithdrawalStatus``. + :http:statuscode:`404 Not found`: + C2EC does not have a withdrawal registered with the specified ``WOPID``. + + **Details** + + .. ts:def:: C2ECWithdrawalStatus + + interface C2ECWithdrawalStatus { + // Current status of the operation + // pending: the operation is pending parameters selection (exchange and reserve public key) + // selected: the operations has been selected and is pending confirmation + // aborted: the operation has been aborted + // confirmed: the transfer has been confirmed and registered by the bank + // Since protocol v1. + status: "pending" | "selected" | "aborted" | "confirmed"; + + // Amount that will be withdrawn with this operation + // (raw amount without fee considerations). + amount: Amount; + + // A refund address as ``payto`` URI. This address shall be used + // in case a refund must be done. Only not-null if the status + // is "confirmed" or "aborted" + sender_wire?: string; + + // Reserve public key selected by the exchange, + // only non-null if ``status`` is ``selected`` or ``confirmed``. + // Since protocol v1. + selected_reserve_pub?: string; + } + + +.. http:post:: /withdrawal-operation/$WOPID + + Notifies C2EC about an executed payment for a specific withdrawal. + + **Request:** + + .. ts:def:: C2ECPaymentNotification + + interface C2ECPaymentNotification { + + // Unique identifier of the provider transaction. + provider_transaction_id: string; + + // Specifies the amount which was payed to the provider (without fees). + // This amount shall be put into the reserve linked to by the withdrawal id. + amount: Amount; + + // Fees associated with the payment. + fees: Amount; + } + + **Response:** + + :http:statuscode:`204 No content`: + C2EC received the ``C2ECPaymentNotification`` successfully and will further process + the withdrawal. + :http:statuscode:`400 Bad request`: + The ``C2ECPaymentNotification`` request was malformed or contained invalid parameters. + :http:statuscode:`404 Not found`: + C2EC does not have a withdrawal registered with the specified ``WOPID``. + :http:statuscode:`500 Internal Server error`: + The ``C2ECPaymentNotification`` could not be processed due to server side issues. + + +-------------- +Taler Wire Gateway +-------------- + +C2EC implements the wire gateway API in order to check for incoming transactions and +let the exchange get proofs of payments. This will allow the C2EC componente to add reserves +and therefore allow the withdrawal of the digital cash. C2EC does not entirely implement all endpoints, +because the it is not needed for the case of C2EC. The endpoints not implemented are not described +further. They will be available but respond with 400 http error code. + +.. http:get:: /config + + Return the protocol version and configuration information about the bank. + This specification corresponds to ``current`` protocol being version **0**. + + **Response:** + + :http:statuscode:`200 OK`: + The exchange responds with a `WireConfig` object. This request should + virtually always be successful. + + **Details:** + + .. ts:def:: WireConfig + + interface WireConfig { + // Name of the API. + name: "taler-wire-gateway"; + + // libtool-style representation of the Bank protocol version, see + // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning + // The format is "current:revision:age". + version: string; + + // Currency used by this gateway. + currency: string; + + // URN of the implementation (needed to interpret 'revision' in version). + // @since v0, may become mandatory in the future. + implementation?: string; + } + +.. http:post:: /transfer + + This API allows the exchange to make a transaction, typically to a merchant. The bank account + of the exchange is not included in the request, but instead derived from the user name in the + authentication header and/or the request base URL. + + To make the API idempotent, the client must include a nonce. Requests with the same nonce + are rejected unless the request is the same. + + **Request:** + + .. ts:def:: TransferRequest + + interface TransferRequest { + // Nonce to make the request idempotent. Requests with the same + // ``request_uid`` that differ in any of the other fields + // are rejected. + request_uid: HashCode; + + // Amount to transfer. + amount: Amount; + + // Base URL of the exchange. Shall be included by the bank gateway + // in the appropriate section of the wire transfer details. + exchange_base_url: string; + + // Wire transfer identifier chosen by the exchange, + // used by the merchant to identify the Taler order(s) + // associated with this wire transfer. + wtid: ShortHashCode; + + // The recipient's account identifier as a payto URI. + credit_account: string; + } + + **Response:** + + :http:statuscode:`200 OK`: + The request has been correctly handled, so the funds have been transferred to + the recipient's account. The body is a `TransferResponse`. + :http:statuscode:`400 Bad request`: + Request malformed. The bank replies with an `ErrorDetail` object. + :http:statuscode:`401 Unauthorized`: + Authentication failed, likely the credentials are wrong. + :http:statuscode:`404 Not found`: + The endpoint is wrong or the user name is unknown. The bank replies with an `ErrorDetail` object. + :http:statuscode:`409 Conflict`: + A transaction with the same ``request_uid`` but different transaction details + has been submitted before. + + **Details:** + + .. ts:def:: TransferResponse + + interface TransferResponse { + // Timestamp that indicates when the wire transfer will be executed. + // In cases where the wire transfer gateway is unable to know when + // the wire transfer will be executed, the time at which the request + // has been received and stored will be returned. + // The purpose of this field is for debugging (humans trying to find + // the transaction) as well as for taxation (determining which + // time period a transaction belongs to). + timestamp: Timestamp; + + // Opaque ID of the transaction that the bank has made. + row_id: SafeUint64; + } + +.. http:get:: /history/incoming + + **Request:** + + :query start: *Optional.* + Row identifier to explicitly set the *starting point* of the query. + :query delta: + The *delta* value that determines the range of the query. + :query long_poll_ms: *Optional.* If this parameter is specified and the + result of the query would be empty, the bank will wait up to ``long_poll_ms`` + milliseconds for new transactions that match the query to arrive and only + then send the HTTP response. A client must never rely on this behavior, as + the bank may return a response immediately or after waiting only a fraction + of ``long_poll_ms``. + + **Response:** + + .. ts:def:: IncomingReserveTransaction + + interface IncomingReserveTransaction { + type: "RESERVE"; + + // Opaque identifier of the returned record. + row_id: SafeUint64; + + // Date of the transaction. + date: Timestamp; + + // Amount transferred. + amount: Amount; + + // Payto URI to identify the sender of funds. + debit_account: string; + + // The reserve public key extracted from the transaction details. + reserve_pub: EddsaPublicKey; + + } + diff --git a/docs/listings/specs/nonce2ecash_api_spec.yml b/docs/listings/specs/nonce2ecash_api_spec.yml @@ -1,115 +0,0 @@ -openapi: 3.0.3 -info: - title: nonce2ecash API - description: API managing a mapping table which links a nonce to a public key. This allows withdrawing from the exchange by the nonce. Additionally it provides facilities allowing for the Exchange operators to register new providers or delete obsolete ones. - version: 0.0.1 -paths: - /n2c/nonces/withdrawal-registration: - post: - summary: Register Nonce to Reserve Public Key - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/N2CWithdrawalRequest' - responses: - '200': - description: Message received successfully - tags: - - nonces - /n2c/nonces/withdrawal-processing: - post: - summary: Provider notifies the exchange about the payment (if it was successful or not) - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/N2CPaymentNotification' - responses: - '200': - description: Message received successfully - tags: - - nonces - /n2c/nonces/withdrawal-status: - get: - summary: Check Status - parameters: - - name: nonce - in: query - description: The nonce for which to check the status - required: true - schema: - type: string - - name: listenForStatus - in: query - description: The status to listen for the given nonce - required: false - schema: - $ref: '#/components/schemas/N2CStatus' - responses: - '200': - description: Status retrieved successfully - content: - application/json: - schema: - $ref: '#/components/schemas/N2CMapping' - '404': - description: Mapping not found - '' - tags: - - nonces -tags: - - name: nonces - description: managing and retrieving information about the mapping table for the nonce to reserve public key mapping. -components: - schemas: - N2CWithdrawalRequest: - description: Maps a nonce generated by the provider to a reserve public key generated by the wallet. - type: object - properties: - nonce: - type: string - reservePubKey: - type: string - format: byte - amount: - type: string - providerType: - $ref: '#/components/schemas/N2CProviderType' - N2CPaymentNotification: - description: Notifies the exchange about an executed payment. This will trigger a provider specific attestation of the payment according to the ProviderPaymentAttestationType. - type: object - properties: - nonce: - type: string - providerTransactionId: - type: string - success: - type: boolean - fees: - type: number - N2CStatus: - description: Describes the states a nonce to reserve public key mapping can be in. - type: string - enum: - - ESTABLISHED - - PAYED - - RESERVE_CREATED - N2CMapping: - description: Maps a nonce generated by the provider to a reserve public key generated by the wallet. - type: object - properties: - nonce: - type: string - reservePubKey: - type: string - format: byte - status: - $ref: '#/components/schemas/N2CStatus' - N2CProviderType: - description: Signals the exchange which provider is talking to him. Like this more Providers can be easily supported by adding their verfification flow to the code of nonce2ecash. This allows to extend the system with various providers. - type: string - enum: - - WALLEE diff --git a/docs/pictures/database/relationships.png b/docs/pictures/database/relationships.png Binary files differ. diff --git a/docs/pictures/database/table_terminal.png b/docs/pictures/database/table_terminal.png Binary files differ. diff --git a/docs/pictures/database/table_terminal_provider.png b/docs/pictures/database/table_terminal_provider.png Binary files differ. diff --git a/docs/pictures/database/table_withdrawal.png b/docs/pictures/database/table_withdrawal.png Binary files differ. diff --git a/docs/pictures/diagrams/overview.png b/docs/pictures/diagrams/overview.png Binary files differ. diff --git a/docs/pictures/diagrams/withdrawal-op-state-transition.png b/docs/pictures/diagrams/withdrawal-op-state-transition.png Binary files differ. diff --git a/docs/project.bib b/docs/project.bib @@ -5,6 +5,27 @@ howpublished = {\url{https://docs.taler.net/taler-user-guide.html}} } +@misc{panetta-speech-march-30, + author = {Fabio Panetta}, + role = {Member of the Executive Board of the ECB}, + year = {2022}, + month = {March}, + day = {30}, + speech-location = {Brussel, Committee on Economic and Monetary Affairs of the European Parliament}, + title = {A digital euro that serves the needs of the public: striking the right balance}, + url = {https://www.ecb.europa.eu/press/key/date/2022/html/ecb.sp220330_1~f9fa9a6137.en.html}, + howpublished = {\url{https://www.ecb.europa.eu/press/key/date/2022/html/ecb.sp220330_1~f9fa9a6137.en.html}} +} + +@misc{study-new-digital-payment-methods, + author = {Kantar Public (Verian since November 2023), on behalf of ECB}, + title = {Study on New Digital Payment Methods}, + year = {2022}, + month = {March}, + url = {https://www.ecb.europa.eu/euro/digital_euro/investigation/profuse/shared/files/dedocs/ecb.dedocs220330_report.en.pdf}, + howpublished = {\url{https://www.ecb.europa.eu/euro/digital_euro/investigation/profuse/shared/files/dedocs/ecb.dedocs220330_report.en.pdf}}, +} + @misc{srf-espresso-cc-fraud, author = {Peter Fritsche}, year = {2022}, @@ -43,6 +64,20 @@ howpublished = {\url{https://app-wallee.com/de-de/doc/payment}} } +@misc{wallee-transaction-service-docs, + author = {Wallee}, + title = {Transaction Service}, + url = {https://app-wallee.com/de-de/doc/api/web-service#transaction-service}, + howpublished = {\url{https://app-wallee.com/de-de/doc/api/web-service#transaction-service}} +} + +@misc{wallee-refund-service-docs, + author = {Wallee}, + title = {Refund Service}, + url = {https://app-wallee.com/de-de/doc/api/web-service#refund-service}, + howpublished = {\url{https://app-wallee.com/de-de/doc/api/web-service#refund-service}} +} + @misc{rfc8959, series = {Request for Comments}, number = 8959, @@ -126,6 +161,13 @@ howpublished = {\url{https://docs.taler.net/core/api-bank-wire.html}} } +@misc{taler-c2ec-spec, + author = {Joel Häberli}, + title = {The C2EC RESTful API}, + url = {https://git.taler.net/docs.git/tree/core/api-c2ec.rst}, + howpublished = {\url{https://git.taler.net/docs.git/tree/core/api-c2ec.rst}} +} + @misc{wallet-withdrawal, author = {Taler}, title = {Withdrawal}, diff --git a/docs/thesis.pdf b/docs/thesis.pdf Binary files differ. diff --git a/docs/thesis.tex b/docs/thesis.tex @@ -119,6 +119,15 @@ frame=single, backgroundcolor=\color{gray!5} } + +%% rst style definition TODO (looks like shit) +\lstdefinestyle{rst}{ + basicstyle=\ttfamily, + breaklines=true, + showstringspaces=false, + backgroundcolor=\color{gray!5} +} + %--------------------------------------------------------------------------- %% %% Customize Footer and Headers in Document @@ -177,11 +186,12 @@ \input{content/introduction/introduction} \input{content/introduction/goal} -\chapter{System Overview} +\chapter{Overview} \input{content/architecture/overview} \chapter{Architecture} \input{content/architecture/c2ec} +\input{content/architecture/wallet} \input{content/architecture/wallee} \chapter{Implementation} @@ -221,7 +231,7 @@ \chapter{Appendix A} \section{API} \label{appendix-api-spec} -\lstinputlisting[style=yaml,caption={nonce2ecash API specification}]{listings/specs/nonce2ecash_api_spec.yml} +\lstinputlisting[style=rst,caption={C2EC API specification}]{listings/specs/api-c2ec.txt} \chapter{Appendix B} \section{Meeting notes} diff --git a/schemaspy/c2ec-erd/anomalies.html b/schemaspy/c2ec-erd/anomalies.html @@ -0,0 +1,293 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="bower/html5shiv/html5shiv.min.js"></script> + <script src="bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>Anomalies</h1><br /> + <div class="callout callout-warning"> + <p>Things that might not be 'quite right' about your database and schema</p> + </div> + </section> + <!-- Main content --> + <section class="content"> + <div class="row"> + <div class="col-md-6"> <!-- Implied Relationship --> + <div class="box box-success"> + <div class="box-header with-border"> + <h3 class="box-title">Columns whose name and type imply a relationship to another table's primary key</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="implied_constraint" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Child Column</th> + <th>Implied Parent Column</th> + </tr> + </thead> + <tbody> + <tr> + <td colspan="3">Anomaly not detected</td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + <div class="col-md-6"> <!-- Tables without indexes --> + <div class="box box-danger"> + <div class="box-header with-border"> + <h3 class="box-title">Tables without indexes</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="un_indexed_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Table</th> + <th>Rows</th> + </tr> + </thead> + <tbody> + <tr> + <td colspan="3">Anomaly not detected</td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + <div class="col-md-6"> <!-- Tables that contain a single column --> + <div class="box box-info"> + <div class="box-header with-border"> + <h3 class="box-title">Tables that contain a single column</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="single_column_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Table</th> + <th>Column</th> + </tr> + </thead> + <tbody> + <tr> + <td colspan="3">Anomaly not detected</td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + <div class="col-md-6"> <!-- Tables with incrementing column names, potentially indicating denormalization --> + <div class="box box-danger"> + <div class="box-header with-border"> + <h3 class="box-title">Tables with incrementing column names, potentially indicating denormalization</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="inc_column_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Table</th> + </tr> + </thead> + <tbody> + <tr> + <td colspan="3">Anomaly not detected</td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + <div class="col-md-6"> <!-- Columns whose default value is the word 'NULL' or 'null', but the SQL NULL value may have been intended --> + <div class="box box-primary"> + <div class="box-header with-border"> + <h3 class="box-title" title="Columns whose default value is the word 'NULL' or 'null', but the SQL NULL value may have been intende">Columns whose default value is the word 'NULL' or 'null'</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="null_string_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Table</th> + </tr> + </thead> + <tbody> + <tr> + <td colspan="3">Anomaly not detected</td> + </tr> + </tbody> + </table> + </div> + </div> + </div> + </div> + </section> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="bower/pdfmake/pdfmake.min.js"></script> + <script src="bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="bower/codemirror/codemirror.js"></script> + <script src="bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="bower/admin-lte/dist/js/app.min.js"></script> + <script src="anomalies.js"></script> + <script src="schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/docs/content/architecture/terminal.tex b/schemaspy/c2ec-erd/anomalies.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.css b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.css.map b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.css.map diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css.map b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap-theme.min.css.map diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap.css b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap.css.map b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap.css.map diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap.min.css b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/css/bootstrap.min.css.map b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/css/bootstrap.min.css.map diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.eot b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.svg b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.ttf b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/fonts/glyphicons-halflings-regular.woff2 Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/js/bootstrap.js b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/js/bootstrap.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/js/bootstrap.min.js b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/js/bootstrap.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/bootstrap/js/npm.js b/schemaspy/c2ec-erd/bower/admin-lte/bootstrap/js/npm.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/AdminLTE.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/AdminLTE.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/AdminLTE.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/AdminLTE.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-bootstrap-social.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-bootstrap-social.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-bootstrap-social.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-bootstrap-social.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-fullcalendar.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-select2.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-select2.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-select2.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-select2.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-without-plugins.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-without-plugins.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/alt/AdminLTE-without-plugins.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/alt/AdminLTE-without-plugins.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-black-light.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-black-light.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-black-light.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-black-light.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-black.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-black.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-black.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-black.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-blue-light.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-blue-light.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-blue-light.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-blue-light.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-blue.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-blue.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-blue.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-blue.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-green-light.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-green-light.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-green-light.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-green-light.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-green.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-green.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-green.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-green.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-purple-light.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-purple-light.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-purple-light.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-purple-light.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-purple.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-purple.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-purple.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-purple.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-red-light.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-red-light.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-red-light.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-red-light.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-red.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-red.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-red.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-red.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-yellow-light.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-yellow-light.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-yellow-light.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-yellow-light.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-yellow.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-yellow.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/css/skins/skin-yellow.min.css b/schemaspy/c2ec-erd/bower/admin-lte/dist/css/skins/skin-yellow.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/app.js b/schemaspy/c2ec-erd/bower/admin-lte/dist/js/app.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/app.min.js b/schemaspy/c2ec-erd/bower/admin-lte/dist/js/app.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/demo.js b/schemaspy/c2ec-erd/bower/admin-lte/dist/js/demo.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/pages/dashboard.js b/schemaspy/c2ec-erd/bower/admin-lte/dist/js/pages/dashboard.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/dist/js/pages/dashboard2.js b/schemaspy/c2ec-erd/bower/admin-lte/dist/js/pages/dashboard2.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/plugins/fastclick/fastclick.js b/schemaspy/c2ec-erd/bower/admin-lte/plugins/fastclick/fastclick.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/plugins/fastclick/fastclick.min.js b/schemaspy/c2ec-erd/bower/admin-lte/plugins/fastclick/fastclick.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js b/schemaspy/c2ec-erd/bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/plugins/jQueryUI/jquery-ui.js b/schemaspy/c2ec-erd/bower/admin-lte/plugins/jQueryUI/jquery-ui.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js b/schemaspy/c2ec-erd/bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.js b/schemaspy/c2ec-erd/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.js diff --git a/schemaspy/nonce2ecash-erd/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js b/schemaspy/c2ec-erd/bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/anchor-js/anchor.min.js b/schemaspy/c2ec-erd/bower/anchor-js/anchor.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/codemirror/codemirror.css b/schemaspy/c2ec-erd/bower/codemirror/codemirror.css diff --git a/schemaspy/nonce2ecash-erd/bower/codemirror/codemirror.js b/schemaspy/c2ec-erd/bower/codemirror/codemirror.js diff --git a/schemaspy/nonce2ecash-erd/bower/codemirror/sql.js b/schemaspy/c2ec-erd/bower/codemirror/sql.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-bs/css/dataTables.bootstrap.css b/schemaspy/c2ec-erd/bower/datatables.net-bs/css/dataTables.bootstrap.css diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-bs/css/dataTables.bootstrap.min.css b/schemaspy/c2ec-erd/bower/datatables.net-bs/css/dataTables.bootstrap.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-bs/js/dataTables.bootstrap.js b/schemaspy/c2ec-erd/bower/datatables.net-bs/js/dataTables.bootstrap.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-bs/js/dataTables.bootstrap.min.js b/schemaspy/c2ec-erd/bower/datatables.net-bs/js/dataTables.bootstrap.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons-bs/css/buttons.bootstrap.css b/schemaspy/c2ec-erd/bower/datatables.net-buttons-bs/css/buttons.bootstrap.css diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css b/schemaspy/c2ec-erd/bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons-bs/js/buttons.bootstrap.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons-bs/js/buttons.bootstrap.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.colVis.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.colVis.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.colVis.min.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.colVis.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.flash.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.flash.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.flash.min.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.flash.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.html5.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.html5.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.html5.min.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.html5.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.print.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.print.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/buttons.print.min.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/buttons.print.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/dataTables.buttons.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/dataTables.buttons.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net-buttons/dataTables.buttons.min.js b/schemaspy/c2ec-erd/bower/datatables.net-buttons/dataTables.buttons.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/datatables.net/jquery.dataTables.min.js b/schemaspy/c2ec-erd/bower/datatables.net/jquery.dataTables.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/font-awesome/css/font-awesome.css b/schemaspy/c2ec-erd/bower/font-awesome/css/font-awesome.css diff --git a/schemaspy/nonce2ecash-erd/bower/font-awesome/css/font-awesome.css.map b/schemaspy/c2ec-erd/bower/font-awesome/css/font-awesome.css.map diff --git a/schemaspy/nonce2ecash-erd/bower/font-awesome/css/font-awesome.min.css b/schemaspy/c2ec-erd/bower/font-awesome/css/font-awesome.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/font-awesome/fonts/FontAwesome.otf b/schemaspy/c2ec-erd/bower/font-awesome/fonts/FontAwesome.otf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.eot b/schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.svg b/schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.svg diff --git a/schemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.ttf b/schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.woff b/schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/font-awesome/fonts/fontawesome-webfont.woff2 b/schemaspy/c2ec-erd/bower/font-awesome/fonts/fontawesome-webfont.woff2 Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/html5shiv/html5shiv.min.js b/schemaspy/c2ec-erd/bower/html5shiv/html5shiv.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/ionicons/css/ionicons.css b/schemaspy/c2ec-erd/bower/ionicons/css/ionicons.css diff --git a/schemaspy/nonce2ecash-erd/bower/ionicons/css/ionicons.min.css b/schemaspy/c2ec-erd/bower/ionicons/css/ionicons.min.css diff --git a/schemaspy/nonce2ecash-erd/bower/ionicons/fonts/ionicons.eot b/schemaspy/c2ec-erd/bower/ionicons/fonts/ionicons.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/ionicons/fonts/ionicons.svg b/schemaspy/c2ec-erd/bower/ionicons/fonts/ionicons.svg diff --git a/schemaspy/nonce2ecash-erd/bower/ionicons/fonts/ionicons.ttf b/schemaspy/c2ec-erd/bower/ionicons/fonts/ionicons.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/ionicons/fonts/ionicons.woff b/schemaspy/c2ec-erd/bower/ionicons/fonts/ionicons.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/bower/jquery/jquery.js b/schemaspy/c2ec-erd/bower/jquery/jquery.js diff --git a/schemaspy/nonce2ecash-erd/bower/js-xlsx/xlsx.full.min.js b/schemaspy/c2ec-erd/bower/js-xlsx/xlsx.full.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/pdfmake/pdfmake.min.js b/schemaspy/c2ec-erd/bower/pdfmake/pdfmake.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/pdfmake/vfs_fonts.js b/schemaspy/c2ec-erd/bower/pdfmake/vfs_fonts.js diff --git a/schemaspy/nonce2ecash-erd/bower/respond/respond.min.js b/schemaspy/c2ec-erd/bower/respond/respond.min.js diff --git a/schemaspy/nonce2ecash-erd/bower/salvattore/salvattore.css b/schemaspy/c2ec-erd/bower/salvattore/salvattore.css diff --git a/schemaspy/nonce2ecash-erd/bower/salvattore/salvattore.min.js b/schemaspy/c2ec-erd/bower/salvattore/salvattore.min.js diff --git a/schemaspy/nonce2ecash-erd/column.js b/schemaspy/c2ec-erd/column.js diff --git a/schemaspy/c2ec-erd/columns.html b/schemaspy/c2ec-erd/columns.html @@ -0,0 +1,461 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="bower/html5shiv/html5shiv.min.js"></script> + <script src="bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>Columns</h1> + </section> + <!-- Main content --> + <section class="content"> + <div class="box box-primary"> + <div class="box-header with-border"> + <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> + <h3 class="box-title">Columns</h3> + </div> + <div class="box-body"> + <table + id="column_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="50" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Table</th> + <th>Type</th> + <th>Column</th> + <th>Type</th> + <th>Size</th> + <th title='Are nulls allowed?'>Nullable</th> + <th title='Is column automatically updated?'>Auto</th> + <th title='Default value'>Default</th> + <th title='Comments' class="toggle"><span>Comments</span></th> + </tr> + </thead> + <tbody></tbody> + </table> + </div> + </div> + </section> + <script> + var tableData = [ + { + "tableName": "terminal", + "tableFileName": "terminal", + "tableType": "Table", + "keyClass": "foreignKey", + "keyTitle": "Foreign Key", + "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>provider_id", + "type": "int8", + "length": 19, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Indicates the terminal provider to which the terminal belongs<\/p>" + }, + { + "tableName": "terminal_provider", + "tableFileName": "terminal_provider", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "backend_base_url", + "type": "text", + "length": 2147483647, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>URL of the provider backend for transaction proofing<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "provider_transaction_id", + "type": "text", + "length": 2147483647, + "nullable": "√", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Transaction identifier supplied by the provider for backend request<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "reserve_pub_key", + "type": "bytea", + "length": 2147483647, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Reserve public key for the reserve which will hold the withdrawal amount after completion<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "withdrawal_status", + "type": "\"c2ec\".\"withdrawal_operation_status\"", + "length": 2147483647, + "nullable": "", + "autoUpdated": "", + "defaultValue": "'pending'::c2ec.withdrawal_operation_status", + "comments": "<p>Status of the withdrawal process<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "registration_ts", + "type": "int8", + "length": 19, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Timestamp of when the withdrawal request was registered<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "foreignKey", + "keyTitle": "Foreign Key", + "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>terminal_id", + "type": "int8", + "length": 19, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>ID of the terminal that initiated the withdrawal<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "last_retry_ts", + "type": "int8", + "length": 19, + "nullable": "√", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Timestamp of the last retry attempt<\/p>" + }, + { + "tableName": "terminal", + "tableFileName": "terminal", + "tableType": "Table", + "keyClass": "primaryKey", + "keyTitle": "Primary Key", + "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>terminal_id", + "type": "int8", + "length": 19, + "nullable": "", + "autoUpdated": "√", + "defaultValue": "null", + "comments": "<p>Uniquely identifies a terminal<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "fees", + "type": "\"c2ec\".\"taler_amount_currency\"", + "length": 2147483647, + "nullable": "√", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Fees associated with the withdrawal, including exchange and provider fees<\/p>" + }, + { + "tableName": "terminal_provider", + "tableFileName": "terminal_provider", + "tableType": "Table", + "keyClass": "indexedColumn", + "keyTitle": "Indexed", + "name": "<i class='fa fa-sitemap fa-rotate-120' style='padding-right: 5px;'><\/i>name", + "type": "text", + "length": 2147483647, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Name of the provider, used for selection in transaction proofing<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "wopid", + "type": "bytea", + "length": 2147483647, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>The wopid (withdrawal operation id) is a nonce generated by the terminal requesting a withdrawal. The wopid identifies a specific withdrawal spawning all involved systems.<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "retry_counter", + "type": "int4", + "length": 10, + "nullable": "", + "autoUpdated": "", + "defaultValue": "0", + "comments": "<p>Number of retry attempts<\/p>" + }, + { + "tableName": "terminal", + "tableFileName": "terminal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "access_token", + "type": "bytea", + "length": 2147483647, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>The access token of the terminal used for authentication against the c2ec API<\/p>" + }, + { + "tableName": "terminal", + "tableFileName": "terminal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "active", + "type": "bool", + "length": 1, + "nullable": "", + "autoUpdated": "", + "defaultValue": "true", + "comments": "<p>Indicates if the terminal is active or deactivated<\/p>" + }, + { + "tableName": "terminal_provider", + "tableFileName": "terminal_provider", + "tableType": "Table", + "keyClass": "primaryKey", + "keyTitle": "Primary Key", + "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>provider_terminal_id", + "type": "int8", + "length": 19, + "nullable": "", + "autoUpdated": "√", + "defaultValue": "null", + "comments": "<p>Uniquely identifies a provider<\/p>" + }, + { + "tableName": "terminal_provider", + "tableFileName": "terminal_provider", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "backend_credentials", + "type": "text", + "length": 2147483647, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Credentials used to access the backend of the provider<\/p>" + }, + { + "tableName": "terminal", + "tableFileName": "terminal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "description", + "type": "text", + "length": 2147483647, + "nullable": "√", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Description to help identify the terminal. This may include the location and an identifier of the terminal.<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "completion_proof", + "type": "bytea", + "length": 2147483647, + "nullable": "√", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Proof of transaction upon final completion delivered by the providers system<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "primaryKey", + "keyTitle": "Primary Key", + "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>withdrawal_id", + "type": "int8", + "length": 19, + "nullable": "", + "autoUpdated": "√", + "defaultValue": "null", + "comments": "<p>The withdrawal id is used a technical id used by the wire gateway to sequentially select new transactions<\/p>" + }, + { + "tableName": "withdrawal", + "tableFileName": "withdrawal", + "tableType": "Table", + "keyClass": "", + "keyTitle": "", + "name": "amount", + "type": "\"c2ec\".\"taler_amount_currency\"", + "length": 2147483647, + "nullable": "", + "autoUpdated": "", + "defaultValue": "null", + "comments": "<p>Effective amount to be put into the reserve after completion<\/p>" + } +]; + var config = { + pagination: true + }; + </script> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="bower/pdfmake/pdfmake.min.js"></script> + <script src="bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="bower/codemirror/codemirror.js"></script> + <script src="bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="bower/admin-lte/dist/js/app.min.js"></script> + <script src="column.js"></script> + <script src="schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/constraint.js b/schemaspy/c2ec-erd/constraint.js diff --git a/schemaspy/c2ec-erd/constraints.html b/schemaspy/c2ec-erd/constraints.html @@ -0,0 +1,245 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="bower/html5shiv/html5shiv.min.js"></script> + <script src="bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>Constraints</h1> + </section> + <!-- Main content --> + <section class="content"> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="ion ion-key"></i> + <h3 class="box-title">2 Foreign Key Constraints</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="fk_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="50" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Constraint Name</th> + <th>Child Column</th> + <th>Parent Column</th> + <th>Delete Rule</th> + </tr> + </thead> + <tbody> + <tr> + <td>terminal_provider_id_fkey</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + <tr> + <td><a href='tables/terminal.html'>terminal</a><span>.provider_id</span></td> + </tr> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + <tr> + <td><a href='tables/terminal_provider.html'>terminal_provider</a><span>.provider_terminal_id</span></td> + </tr> + </table> + </td> + <td><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>Restrict delete</span></td> + </tr> + <tr> + <td>withdrawal_terminal_id_fkey</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + <tr> + <td><a href='tables/withdrawal.html'>withdrawal</a><span>.terminal_id</span></td> + </tr> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + <tr> + <td><a href='tables/terminal.html'>terminal</a><span>.terminal_id</span></td> + </tr> + </table> + </td> + <td><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>Restrict delete</span></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-sitemap"></i> + <h3 class="box-title">Check Constraints</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="check_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Table</th> + <th>Constraint Name</th> + <th>Constraint</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href='tables/terminal.html'>terminal</a></td> + <td>terminal_access_token_check</td> + <td>((length(access_token) &#61; 32))</td> + </tr> + <tr> + <td><a href='tables/withdrawal.html'>withdrawal</a></td> + <td>withdrawal_reserve_pub_key_check</td> + <td>((length(reserve_pub_key) &#61; 32))</td> + </tr> + <tr> + <td><a href='tables/withdrawal.html'>withdrawal</a></td> + <td>withdrawal_wopid_check</td> + <td>((length(wopid) &#61; 32))</td> + </tr> + </tbody> + </table> + </div> + </div> + </section> + <script> + var config = { + pagination: true + } + </script> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="bower/pdfmake/pdfmake.min.js"></script> + <script src="bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="bower/codemirror/codemirror.js"></script> + <script src="bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="bower/admin-lte/dist/js/app.min.js"></script> + <script src="constraint.js"></script> + <script src="schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/deletionOrder.txt b/schemaspy/c2ec-erd/deletionOrder.txt diff --git a/schemaspy/nonce2ecash-erd/diagrams/orphans/orphans.dot b/schemaspy/c2ec-erd/diagrams/orphans/orphans.dot diff --git a/schemaspy/c2ec-erd/diagrams/summary/relationships.real.compact.dot b/schemaspy/c2ec-erd/diagrams/summary/relationships.real.compact.dot @@ -0,0 +1,44 @@ +digraph "compactRelationshipsDiagram" { + graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; + "terminal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="tables/terminal.html" + target="_top" + tooltip="terminal" + ]; + "terminal_provider" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">provider_terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="name" COLSPAN="3" BGCOLOR="#ffffff" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">name</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="tables/terminal_provider.html" + target="_top" + tooltip="terminal_provider" + ]; + "withdrawal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="withdrawal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD></TR> + </TABLE>> + URL="tables/withdrawal.html" + target="_top" + tooltip="withdrawal" + ]; + "terminal":"provider_id":w -> "terminal_provider":"provider_terminal_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "withdrawal":"terminal_id":w -> "terminal":"terminal_id":e [arrowhead=none dir=back arrowtail=crowodot]; +} diff --git a/schemaspy/c2ec-erd/diagrams/summary/relationships.real.large.dot b/schemaspy/c2ec-erd/diagrams/summary/relationships.real.large.dot @@ -0,0 +1,56 @@ +digraph "largeRelationshipsDiagram" { + graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; + "terminal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="access_token" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">access_token</TD></TR></TABLE></TD></TR> + <TR><TD PORT="active" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">active</TD></TR></TABLE></TD></TR> + <TR><TD PORT="description" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">description</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="tables/terminal.html" + target="_top" + tooltip="terminal" + ]; + "terminal_provider" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">provider_terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="name" COLSPAN="3" BGCOLOR="#ffffff" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">name</TD></TR></TABLE></TD></TR> + <TR><TD PORT="backend_base_url" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">backend_base_url</TD></TR></TABLE></TD></TR> + <TR><TD PORT="backend_credentials" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">backend_credentials</TD></TR></TABLE></TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="tables/terminal_provider.html" + target="_top" + tooltip="terminal_provider" + ]; + "withdrawal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="withdrawal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="wopid" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">wopid</TD></TR></TABLE></TD></TR> + <TR><TD PORT="reserve_pub_key" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">reserve_pub_key</TD></TR></TABLE></TD></TR> + <TR><TD PORT="registration_ts" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">registration_ts</TD></TR></TABLE></TD></TR> + <TR><TD PORT="amount" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">amount</TD></TR></TABLE></TD></TR> + <TR><TD PORT="fees" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">fees</TD></TR></TABLE></TD></TR> + <TR><TD PORT="withdrawal_status" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">withdrawal_status</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_transaction_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">provider_transaction_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="last_retry_ts" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">last_retry_ts</TD></TR></TABLE></TD></TR> + <TR><TD PORT="retry_counter" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">retry_counter</TD></TR></TABLE></TD></TR> + <TR><TD PORT="completion_proof" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">completion_proof</TD></TR></TABLE></TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD></TR> + </TABLE>> + URL="tables/withdrawal.html" + target="_top" + tooltip="withdrawal" + ]; + "terminal":"provider_id":w -> "terminal_provider":"provider_terminal_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "withdrawal":"terminal_id":w -> "terminal":"terminal_id":e [arrowhead=none dir=back arrowtail=crowodot]; +} diff --git a/schemaspy/c2ec-erd/diagrams/tables/terminal.1degree.dot b/schemaspy/c2ec-erd/diagrams/tables/terminal.1degree.dot @@ -0,0 +1,46 @@ +digraph "oneDegreeRelationshipsDiagram" { + graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; + "terminal":"provider_id":w -> "terminal_provider":"provider_terminal_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "withdrawal":"terminal_id":w -> "terminal":"terminal_id.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "terminal" [ + label=< + <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">terminal_id</TD></TR></TABLE></TD><TD PORT="terminal_id.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="access_token" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">access_token</TD></TR></TABLE></TD><TD PORT="access_token.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> + <TR><TD PORT="active" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">active</TD></TR></TABLE></TD><TD PORT="active.type" ALIGN="LEFT">bool[1]</TD></TR> + <TR><TD PORT="description" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">description</TD></TR></TABLE></TD><TD PORT="description.type" ALIGN="LEFT">text[2147483647]</TD></TR> + <TR><TD PORT="provider_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD><TD PORT="provider_id.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="terminal.html" + target="_top" + tooltip="terminal" + ]; + "terminal_provider" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">provider_terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="name" COLSPAN="3" BGCOLOR="#ffffff" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">name</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="terminal_provider.html" + target="_top" + tooltip="terminal_provider" + ]; + "withdrawal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="withdrawal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD></TR> + </TABLE>> + URL="withdrawal.html" + target="_top" + tooltip="withdrawal" + ]; +} diff --git a/schemaspy/c2ec-erd/diagrams/tables/terminal_provider.1degree.dot b/schemaspy/c2ec-erd/diagrams/tables/terminal_provider.1degree.dot @@ -0,0 +1,31 @@ +digraph "oneDegreeRelationshipsDiagram" { + graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; + "terminal":"provider_id":w -> "terminal_provider":"provider_terminal_id.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "terminal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="terminal.html" + target="_top" + tooltip="terminal" + ]; + "terminal_provider" [ + label=< + <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_terminal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">provider_terminal_id</TD></TR></TABLE></TD><TD PORT="provider_terminal_id.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="name" COLSPAN="2" BGCOLOR="#ffffff" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">name</TD></TR></TABLE></TD><TD PORT="name.type" ALIGN="LEFT">text[2147483647]</TD></TR> + <TR><TD PORT="backend_base_url" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">backend_base_url</TD></TR></TABLE></TD><TD PORT="backend_base_url.type" ALIGN="LEFT">text[2147483647]</TD></TR> + <TR><TD PORT="backend_credentials" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">backend_credentials</TD></TR></TABLE></TD><TD PORT="backend_credentials.type" ALIGN="LEFT">text[2147483647]</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 0</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="terminal_provider.html" + target="_top" + tooltip="terminal_provider" + ]; +} diff --git a/schemaspy/c2ec-erd/diagrams/tables/terminal_provider.2degrees.dot b/schemaspy/c2ec-erd/diagrams/tables/terminal_provider.2degrees.dot @@ -0,0 +1,43 @@ +digraph "twoDegreesRelationshipsDiagram" { + graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; + "terminal":"provider_id":w -> "terminal_provider":"provider_terminal_id.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "withdrawal":"elipses":w -> "terminal":"terminal_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "terminal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="terminal.html" + target="_top" + tooltip="terminal" + ]; + "terminal_provider" [ + label=< + <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_terminal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">provider_terminal_id</TD></TR></TABLE></TD><TD PORT="provider_terminal_id.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="name" COLSPAN="2" BGCOLOR="#ffffff" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">name</TD></TR></TABLE></TD><TD PORT="name.type" ALIGN="LEFT">text[2147483647]</TD></TR> + <TR><TD PORT="backend_base_url" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">backend_base_url</TD></TR></TABLE></TD><TD PORT="backend_base_url.type" ALIGN="LEFT">text[2147483647]</TD></TR> + <TR><TD PORT="backend_credentials" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="139" HEIGHT="16">backend_credentials</TD></TR></TABLE></TD><TD PORT="backend_credentials.type" ALIGN="LEFT">text[2147483647]</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 0</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="terminal_provider.html" + target="_top" + tooltip="terminal_provider" + ]; + "withdrawal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD></TR> + </TABLE>> + URL="withdrawal.html" + target="_top" + tooltip="withdrawal" + ]; +} diff --git a/schemaspy/c2ec-erd/diagrams/tables/withdrawal.1degree.dot b/schemaspy/c2ec-erd/diagrams/tables/withdrawal.1degree.dot @@ -0,0 +1,39 @@ +digraph "oneDegreeRelationshipsDiagram" { + graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; + "withdrawal":"terminal_id":w -> "terminal":"terminal_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "terminal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="terminal.html" + target="_top" + tooltip="terminal" + ]; + "withdrawal" [ + label=< + <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="withdrawal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD><TD PORT="withdrawal_id.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="wopid" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">wopid</TD></TR></TABLE></TD><TD PORT="wopid.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> + <TR><TD PORT="reserve_pub_key" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">reserve_pub_key</TD></TR></TABLE></TD><TD PORT="reserve_pub_key.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> + <TR><TD PORT="registration_ts" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">registration_ts</TD></TR></TABLE></TD><TD PORT="registration_ts.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="amount" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">amount</TD></TR></TABLE></TD><TD PORT="amount.type" ALIGN="LEFT">&quot;c2ec&quot;.&quot;taler_amount_currency&quot;[2147483647]</TD></TR> + <TR><TD PORT="fees" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">fees</TD></TR></TABLE></TD><TD PORT="fees.type" ALIGN="LEFT">&quot;c2ec&quot;.&quot;taler_amount_currency&quot;[2147483647]</TD></TR> + <TR><TD PORT="withdrawal_status" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">withdrawal_status</TD></TR></TABLE></TD><TD PORT="withdrawal_status.type" ALIGN="LEFT">&quot;c2ec&quot;.&quot;withdrawal_operation_status&quot;[2147483647]</TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">terminal_id</TD></TR></TABLE></TD><TD PORT="terminal_id.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="provider_transaction_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">provider_transaction_id</TD></TR></TABLE></TD><TD PORT="provider_transaction_id.type" ALIGN="LEFT">text[2147483647]</TD></TR> + <TR><TD PORT="last_retry_ts" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">last_retry_ts</TD></TR></TABLE></TD><TD PORT="last_retry_ts.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="retry_counter" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">retry_counter</TD></TR></TABLE></TD><TD PORT="retry_counter.type" ALIGN="LEFT">int4[10]</TD></TR> + <TR><TD PORT="completion_proof" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">completion_proof</TD></TR></TABLE></TD><TD PORT="completion_proof.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">0 &gt;</TD></TR> + </TABLE>> + URL="withdrawal.html" + target="_top" + tooltip="withdrawal" + ]; +} diff --git a/schemaspy/c2ec-erd/diagrams/tables/withdrawal.2degrees.dot b/schemaspy/c2ec-erd/diagrams/tables/withdrawal.2degrees.dot @@ -0,0 +1,51 @@ +digraph "twoDegreesRelationshipsDiagram" { + graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; + "terminal":"provider_id":w -> "terminal_provider":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "withdrawal":"terminal_id":w -> "terminal":"terminal_id":e [arrowhead=none dir=back arrowtail=crowodot]; + "terminal" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="terminal.html" + target="_top" + tooltip="terminal" + ]; + "terminal_provider" [ + label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> + </TABLE>> + URL="terminal_provider.html" + target="_top" + tooltip="terminal_provider" + ]; + "withdrawal" [ + label=< + <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> + <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> + <TR><TD PORT="withdrawal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD><TD PORT="withdrawal_id.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="wopid" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">wopid</TD></TR></TABLE></TD><TD PORT="wopid.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> + <TR><TD PORT="reserve_pub_key" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">reserve_pub_key</TD></TR></TABLE></TD><TD PORT="reserve_pub_key.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> + <TR><TD PORT="registration_ts" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">registration_ts</TD></TR></TABLE></TD><TD PORT="registration_ts.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="amount" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">amount</TD></TR></TABLE></TD><TD PORT="amount.type" ALIGN="LEFT">&quot;c2ec&quot;.&quot;taler_amount_currency&quot;[2147483647]</TD></TR> + <TR><TD PORT="fees" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">fees</TD></TR></TABLE></TD><TD PORT="fees.type" ALIGN="LEFT">&quot;c2ec&quot;.&quot;taler_amount_currency&quot;[2147483647]</TD></TR> + <TR><TD PORT="withdrawal_status" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">withdrawal_status</TD></TR></TABLE></TD><TD PORT="withdrawal_status.type" ALIGN="LEFT">&quot;c2ec&quot;.&quot;withdrawal_operation_status&quot;[2147483647]</TD></TR> + <TR><TD PORT="terminal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">terminal_id</TD></TR></TABLE></TD><TD PORT="terminal_id.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="provider_transaction_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">provider_transaction_id</TD></TR></TABLE></TD><TD PORT="provider_transaction_id.type" ALIGN="LEFT">text[2147483647]</TD></TR> + <TR><TD PORT="last_retry_ts" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">last_retry_ts</TD></TR></TABLE></TD><TD PORT="last_retry_ts.type" ALIGN="LEFT">int8[19]</TD></TR> + <TR><TD PORT="retry_counter" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">retry_counter</TD></TR></TABLE></TD><TD PORT="retry_counter.type" ALIGN="LEFT">int4[10]</TD></TR> + <TR><TD PORT="completion_proof" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="159" HEIGHT="16">completion_proof</TD></TR></TABLE></TD><TD PORT="completion_proof.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> + <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">0 &gt;</TD></TR> + </TABLE>> + URL="withdrawal.html" + target="_top" + tooltip="withdrawal" + ]; +} diff --git a/schemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.eot b/schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.svg b/schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.svg diff --git a/schemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.ttf b/schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.woff b/schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower-v8-latin-regular.woff2 b/schemaspy/c2ec-erd/fonts/indieflower/indie-flower-v8-latin-regular.woff2 Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/indieflower/indie-flower.css b/schemaspy/c2ec-erd/fonts/indieflower/indie-flower.css diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.eot b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.svg b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.svg diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.ttf b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff2 b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300.woff2 Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.eot b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.svg b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.svg diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.ttf b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff2 b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-300italic.woff2 Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.eot b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.svg b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.svg diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.ttf b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff2 b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600.woff2 Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.eot b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.svg b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.svg diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.ttf b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff2 b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-600italic.woff2 Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.eot b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.svg b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.svg diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.ttf b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff2 b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-700.woff2 Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.eot b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.eot Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.svg b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.svg diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.ttf b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.ttf Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff2 b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro-v10-latin-regular.woff2 Binary files differ. diff --git a/schemaspy/nonce2ecash-erd/fonts/source-sans-pro/source-sans-pro.css b/schemaspy/c2ec-erd/fonts/source-sans-pro/source-sans-pro.css diff --git a/schemaspy/c2ec-erd/index.html b/schemaspy/c2ec-erd/index.html @@ -0,0 +1,303 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="bower/html5shiv/html5shiv.min.js"></script> + <script src="bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>Tables</h1><br /> + <div class="row"> + <div class="col-md-12"> + <div class="callout callout-info"> + <h4>SchemaSpy Analysis of postgres.c2ec</h4> + <p>Generated on Sun Mar 24 12:44 CET 2024</p> + </div> + </div> + </div> + <a href="postgres.c2ec.xml" title="XML Representation">XML Representation</a><br /> + <a href="insertionOrder.txt" title="Useful for loading data into a database">Insertion Order</a> + <a href="deletionOrder.txt" title="Useful for purging data from a database">Deletion Order</a> + </section> + <!-- Main content --> + <section class="content"> + <div class="row"> + <div class="col-md-2 col-sm-4 col-xs-12"> + <div class="info-box"> + <span class="info-box-icon bg-aqua"><i class="fa fa-table"></i></span> + <div class="info-box-content"> + <span class="info-box-text">TABLES</span> + <span class="info-box-number">3</span> + </div> + <!-- /.info-box-content --> + </div> + <!-- /.info-box --> + </div> + <!-- /.col --> + <div class="col-md-2 col-sm-4 col-xs-12"> + <div class="info-box"> + <span class="info-box-icon bg-teal"><i class="fa fa-table"></i></span> + <div class="info-box-content"> + <span class="info-box-text">VIEWS</span> + <span class="info-box-number">0</span> + </div> + <!-- /.info-box-content --> + </div> + <!-- /.info-box --> + </div> + <!-- /.col --> + <div class="col-md-2 col-sm-4 col-xs-12"> + <div class="info-box"> + <span class="info-box-icon bg-green"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span></span> + <div class="info-box-content"> + <span class="info-box-text">COLUMNS</span> + <span class="info-box-number">21</span> + </div> + <!-- /.info-box-content --> + </div> + <!-- /.info-box --> + </div> + <!-- /.col --> + <div class="col-md-2 col-sm-4 col-xs-12"> + <div class="info-box"> + <span class="info-box-icon bg-yellow"><i class="ion ion-key"></i></span> + <div class="info-box-content"> + <span class="info-box-text">Constraints</span> + <span class="info-box-number">2</span> + </div> + <!-- /.info-box-content --> + </div> + <!-- /.info-box --> + </div> + <!-- /.col --> + <div class="col-md-2 col-sm-4 col-xs-12"> + <div class="info-box"> + <span class="info-box-icon bg-red-active"><i class="fa fa-question" aria-hidden="true"></i></span> + <div class="info-box-content"> + <span class="info-box-text">Anomalies</span> + <span class="info-box-number">0</span> + </div> + <!-- /.info-box-content --> + </div> + <!-- /.info-box --> + </div> + <!-- /.col --> + <div class="col-md-2 col-sm-4 col-xs-12"> + <div class="info-box"> + <span class="info-box-icon bg-navy"><i class="fa fa-file-code-o" aria-hidden="true"></i></span> + <div class="info-box-content"> + <span class="info-box-text">Routines</span> + <span class="info-box-number">0</span> + </div> + <!-- /.info-box-content --> + </div> + <!-- /.info-box --> + </div> + <!-- /.col --> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <h3 class="box-title">Database Properties</h3> + <span class="label label-primary pull-right"><i class="fa fa-cog fa-2x"></i></span> + </div><!-- /.box-header --> + <div class="box-body"> + <p>Database Type: PostgreSQL - 15.2 (Debian 15.2-1.pgdg110+1)</p> + </div><!-- /.box-body --> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <h3 class="box-title">Catalog postgres</h3> + <span class="label label-primary pull-right"><i class="fa fa-cog fa-2x"></i></span> + </div><!-- /.box-header --> + <div class="box-body"> + <p> <p>default administrative connection database</p> </p> + </div><!-- /.box-body --> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <h3 class="box-title">Schema c2ec</h3> + <span class="label label-primary pull-right"><i class="fa fa-cog fa-2x"></i></span> + </div><!-- /.box-header --> + <div class="box-body"> + <p> <p>Schema containing all tables and types related to c2ec (cashless2ecash)</p> </p> + </div><!-- /.box-body --> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <h3 class="box-title">Tables</h3> + <span class="label label-primary pull-right"><i class="fa fa-database fa-2x"></i></span> + </div><!-- /.box-header --> + <div class="box-body"> + <table + id="database_objects" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="50" + data-length-change="false"> + <thead> + <tr> + <th valign="bottom">Table / View</th> + <th align="right" valign="bottom">Children</th> + <th align="right" valign="bottom">Parents</th> + <th align="right" valign="bottom">Columns</th> + <th align="right" valign="bottom">Rows</th> + <th align="right" valign="bottom">Type</th> + <th class="toggle">Comments</th> + </tr> + </thead> + <tbody> + <tr class="tbl even" valign="top"> + <td class="detail"><a href="tables/terminal.html">terminal</a></td> + <td class="detail" align="right">1</td> + <td class="detail" align="right">1</td> + <td class="detail" align="right">5</td> + <td class="detail" align="right">-1</td> + <td class="detail" align="right">Table</td> + <td class="comment detail" style="display: table-cell;"><p>Table containing information about terminals of providers</p></td> + </tr> + <tr class="tbl even" valign="top"> + <td class="detail"><a href="tables/terminal_provider.html">terminal_provider</a></td> + <td class="detail" align="right">1</td> + <td class="detail" align="right">0</td> + <td class="detail" align="right">4</td> + <td class="detail" align="right">-1</td> + <td class="detail" align="right">Table</td> + <td class="comment detail" style="display: table-cell;"><p>Table describing providers of c2ec terminal</p></td> + </tr> + <tr class="tbl even" valign="top"> + <td class="detail"><a href="tables/withdrawal.html">withdrawal</a></td> + <td class="detail" align="right">0</td> + <td class="detail" align="right">1</td> + <td class="detail" align="right">12</td> + <td class="detail" align="right">-1</td> + <td class="detail" align="right">Table</td> + <td class="comment detail" style="display: table-cell;"><p>Table representing withdrawal processes initiated by terminals</p></td> + </tr> + </table> + </div> + </div><!-- /.box-body --> + </section> + <!-- /.content --> + <script> + var config = { + pagination: true + } + </script> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="bower/pdfmake/pdfmake.min.js"></script> + <script src="bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="bower/codemirror/codemirror.js"></script> + <script src="bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="bower/admin-lte/dist/js/app.min.js"></script> + <script src="main.js"></script> + <script src="schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/schemaspy/c2ec-erd/info-html.txt b/schemaspy/c2ec-erd/info-html.txt @@ -0,0 +1,5 @@ +date=2024-03-24 12:44:39+0100 +os=Linux 6.5.0-26-generic +schemaspy-version=6.2.4 +schemaspy-build=6.2.4.41 2023-07-21 11:15:12 +renderer=Graphviz dot 2.43.0 diff --git a/schemaspy/nonce2ecash-erd/insertionOrder.txt b/schemaspy/c2ec-erd/insertionOrder.txt diff --git a/schemaspy/nonce2ecash-erd/main.js b/schemaspy/c2ec-erd/main.js diff --git a/schemaspy/c2ec-erd/orphans.html b/schemaspy/c2ec-erd/orphans.html @@ -0,0 +1,145 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="bower/html5shiv/html5shiv.min.js"></script> + <script src="bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>Utility Tables</h1> + </section> + <!-- Main content --> + <section class="content"> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-code-fork"></i> + <h3 class="box-title">Orphan Tables</h3> + </div> + <div class="box-body"> + <div id="grid" data-columns> + <div class="item"> +<img id="orphans" src="diagrams/orphans/orphans.png" usemap="#orphans" style="max-width:100%;" border="0" align="top"> +<map id="orphans" name="orphans"> +</map> + </div> + </div> + </div> + </div> + </section> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="bower/pdfmake/pdfmake.min.js"></script> + <script src="bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="bower/codemirror/codemirror.js"></script> + <script src="bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="bower/admin-lte/dist/js/app.min.js"></script> + <script src=""></script> + <script src="schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/schemaspy/c2ec-erd/postgres.c2ec.xml b/schemaspy/c2ec-erd/postgres.c2ec.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?><database name="postgres" schema="c2ec" type="PostgreSQL - 15.2 (Debian 15.2-1.pgdg110+1)"> + <tables> + <table name="terminal" remarks="Table containing information about terminals of providers" schema="c2ec" type="TABLE"> + <column autoUpdated="true" defaultValue="null" digits="0" id="0" name="terminal_id" nullable="false" remarks="Uniquely identifies a terminal" size="19" type="int8" typeCode="-5"> + <child column="terminal_id" foreignKey="withdrawal_terminal_id_fkey" implied="false" onDeleteCascade="false" schema="c2ec" table="withdrawal"/> + </column> + <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="access_token" nullable="false" remarks="The access token of the terminal used for authentication against the c2ec API" size="2147483647" type="bytea" typeCode="-2"/> + <column autoUpdated="false" defaultValue="true" digits="0" id="2" name="active" nullable="false" remarks="Indicates if the terminal is active or deactivated" size="1" type="bool" typeCode="-7"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="description" nullable="true" remarks="Description to help identify the terminal. This may include the location and an identifier of the terminal." size="2147483647" type="text" typeCode="12"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="provider_id" nullable="false" remarks="Indicates the terminal provider to which the terminal belongs" size="19" type="int8" typeCode="-5"> + <parent column="provider_terminal_id" foreignKey="terminal_provider_id_fkey" implied="false" onDeleteCascade="false" schema="c2ec" table="terminal_provider"/> + </column> + <primaryKey column="terminal_id" sequenceNumberInPK="1"/> + <index name="terminal_pkey" unique="true"> + <column ascending="true" name="terminal_id"/> + </index> + <checkConstraint constraint="((length(access_token) = 32))" name="terminal_access_token_check"/> + </table> + <table name="terminal_provider" remarks="Table describing providers of c2ec terminal" schema="c2ec" type="TABLE"> + <column autoUpdated="true" defaultValue="null" digits="0" id="0" name="provider_terminal_id" nullable="false" remarks="Uniquely identifies a provider" size="19" type="int8" typeCode="-5"> + <child column="provider_id" foreignKey="terminal_provider_id_fkey" implied="false" onDeleteCascade="false" schema="c2ec" table="terminal"/> + </column> + <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="name" nullable="false" remarks="Name of the provider, used for selection in transaction proofing" size="2147483647" type="text" typeCode="12"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="backend_base_url" nullable="false" remarks="URL of the provider backend for transaction proofing" size="2147483647" type="text" typeCode="12"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="backend_credentials" nullable="false" remarks="Credentials used to access the backend of the provider" size="2147483647" type="text" typeCode="12"/> + <primaryKey column="provider_terminal_id" sequenceNumberInPK="1"/> + <index name="terminal_provider_pkey" unique="true"> + <column ascending="true" name="provider_terminal_id"/> + </index> + <index name="terminal_provider_name_key" unique="true"> + <column ascending="true" name="name"/> + </index> + </table> + <table name="withdrawal" remarks="Table representing withdrawal processes initiated by terminals" schema="c2ec" type="TABLE"> + <column autoUpdated="true" defaultValue="null" digits="0" id="0" name="withdrawal_id" nullable="false" remarks="The withdrawal id is used a technical id used by the wire gateway to sequentially select new transactions" size="19" type="int8" typeCode="-5"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="wopid" nullable="false" remarks="The wopid (withdrawal operation id) is a nonce generated by the terminal requesting a withdrawal.&#10;&#9;The wopid identifies a specific withdrawal spawning all involved systems." size="2147483647" type="bytea" typeCode="-2"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="reserve_pub_key" nullable="false" remarks="Reserve public key for the reserve which will hold the withdrawal amount after completion" size="2147483647" type="bytea" typeCode="-2"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="registration_ts" nullable="false" remarks="Timestamp of when the withdrawal request was registered" size="19" type="int8" typeCode="-5"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="amount" nullable="false" remarks="Effective amount to be put into the reserve after completion" size="2147483647" type="&quot;c2ec&quot;.&quot;taler_amount_currency&quot;" typeCode="2002"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="fees" nullable="true" remarks="Fees associated with the withdrawal, including exchange and provider fees" size="2147483647" type="&quot;c2ec&quot;.&quot;taler_amount_currency&quot;" typeCode="2002"/> + <column autoUpdated="false" defaultValue="'pending'::c2ec.withdrawal_operation_status" digits="0" id="6" name="withdrawal_status" nullable="false" remarks="Status of the withdrawal process" size="2147483647" type="&quot;c2ec&quot;.&quot;withdrawal_operation_status&quot;" typeCode="12"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="7" name="terminal_id" nullable="false" remarks="ID of the terminal that initiated the withdrawal" size="19" type="int8" typeCode="-5"> + <parent column="terminal_id" foreignKey="withdrawal_terminal_id_fkey" implied="false" onDeleteCascade="false" schema="c2ec" table="terminal"/> + </column> + <column autoUpdated="false" defaultValue="null" digits="0" id="8" name="provider_transaction_id" nullable="true" remarks="Transaction identifier supplied by the provider for backend request" size="2147483647" type="text" typeCode="12"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="9" name="last_retry_ts" nullable="true" remarks="Timestamp of the last retry attempt" size="19" type="int8" typeCode="-5"/> + <column autoUpdated="false" defaultValue="0" digits="0" id="10" name="retry_counter" nullable="false" remarks="Number of retry attempts" size="10" type="int4" typeCode="4"/> + <column autoUpdated="false" defaultValue="null" digits="0" id="11" name="completion_proof" nullable="true" remarks="Proof of transaction upon final completion delivered by the providers system" size="2147483647" type="bytea" typeCode="-2"/> + <primaryKey column="withdrawal_id" sequenceNumberInPK="1"/> + <index name="withdrawal_pkey" unique="true"> + <column ascending="true" name="withdrawal_id"/> + </index> + <checkConstraint constraint="((length(reserve_pub_key) = 32))" name="withdrawal_reserve_pub_key_check"/> + <checkConstraint constraint="((length(wopid) = 32))" name="withdrawal_wopid_check"/> + </table> + </tables> +</database> diff --git a/schemaspy/c2ec-erd/relationships.html b/schemaspy/c2ec-erd/relationships.html @@ -0,0 +1,164 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="bower/html5shiv/html5shiv.min.js"></script> + <script src="bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>All Relationships</h1> + </section> + <!-- Main content --> + <section class="content"> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-code-fork"></i> + <h3 class="box-title">Diagrams</h3> + </div> + <div class="box-body"> + <div class="nav-tabs-custom"> + <!-- Tabs within a box --> + <h5>By default only columns that are primary keys, foreign keys or indexes are shown.</h5> + <ul class="nav nav-tabs pull-left ui-sortable-handle"> + <li class="active"><a href="#compactDegreeImg-chart" data-toggle="tab" aria-expanded="true">Compact</a></li> + <li class=""><a href="#largeDegreeImg-chart" data-toggle="tab" aria-expanded="true">Large</a></li> + </ul> + <div class="tab-content no-padding"> + <div class="chart tab-pane active" id="compactDegreeImg-chart" style="position: relative; overflow-x:auto;"> + <map id="compactRelationshipsDiagram" name="compactRelationshipsDiagram"> +<area shape="rect" id="node1" href="tables/terminal.html" target="_top" title="terminal" alt="" coords="293,35,461,181"> +<area shape="rect" id="node2" href="tables/terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,64,249,211"> +<area shape="rect" id="node3" href="tables/withdrawal.html" target="_top" title="withdrawal" alt="" coords="505,5,767,152"> +</map> + <a name='diagram'><img id="compactDegreeImg" src="diagrams/summary/relationships.real.compact.png" usemap="#compactRelationshipsDiagram" class="diagram" border="0" align="left"></a> + </div> + <div class="chart tab-pane " id="largeDegreeImg-chart" style="position: relative; overflow-x:auto;"> + <map id="largeRelationshipsDiagram" name="largeRelationshipsDiagram"> +<area shape="rect" id="node1" href="tables/terminal.html" target="_top" title="terminal" alt="" coords="293,211,461,421"> +<area shape="rect" id="node2" href="tables/terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,328,249,509"> +<area shape="rect" id="node3" href="tables/withdrawal.html" target="_top" title="withdrawal" alt="" coords="505,5,767,421"> +</map> + <a name='diagram'><img id="largeDegreeImg" src="diagrams/summary/relationships.real.large.png" usemap="#largeRelationshipsDiagram" class="diagram" border="0" align="left"></a> + </div> + </div> + </div> + </div><!-- /.box-body --> + </div> + </section> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="bower/pdfmake/pdfmake.min.js"></script> + <script src="bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="bower/codemirror/codemirror.js"></script> + <script src="bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="bower/admin-lte/dist/js/app.min.js"></script> + <script src="relationships.js"></script> + <script src="schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/relationships.js b/schemaspy/c2ec-erd/relationships.js diff --git a/schemaspy/c2ec-erd/routines.html b/schemaspy/c2ec-erd/routines.html @@ -0,0 +1,164 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="bower/html5shiv/html5shiv.min.js"></script> + <script src="bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>Routines</h1> + </section> + <!-- Main content --> + <section class="content"> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-file-code-o" aria-hidden="true"></i> + <h3 class="box-title">Routines</h3> + </div> + <div class="box-body"> + <table + id="routine_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="50" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Name</th> + <th>Type</th> + <th>Language</th> + <th>Deterministic</th> + <th>Return Type</th> + <th>Security Restriction</th> + <th title='Comments' class="toggle"><span>Comments</span></th> + </tr> + </thead> + <tbody> + </tbody> + </table> + </div> + </div> + </section> + <script> + var config = { + pagination: true + } + </script> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="bower/pdfmake/pdfmake.min.js"></script> + <script src="bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="bower/codemirror/codemirror.js"></script> + <script src="bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="bower/admin-lte/dist/js/app.min.js"></script> + <script src="routines.js"></script> + <script src="schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/routines.js b/schemaspy/c2ec-erd/routines.js diff --git a/schemaspy/nonce2ecash-erd/routines/routine.js b/schemaspy/c2ec-erd/routines/routine.js diff --git a/schemaspy/nonce2ecash-erd/schemaSpy.css b/schemaspy/c2ec-erd/schemaSpy.css diff --git a/schemaspy/nonce2ecash-erd/schemaSpy.js b/schemaspy/c2ec-erd/schemaSpy.js diff --git a/schemaspy/nonce2ecash-erd/tables/table.js b/schemaspy/c2ec-erd/tables/table.js diff --git a/schemaspy/c2ec-erd/tables/terminal.html b/schemaspy/c2ec-erd/tables/terminal.html @@ -0,0 +1,374 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>terminal - postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="../favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="../bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="../bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="../bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="../bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="../bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="../bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='../fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='../fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="../bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="../bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="../bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="../schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="../bower/html5shiv/html5shiv.min.js"></script> + <script src="../bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="../index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="../index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="../columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="../constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="../relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="../orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="../anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="../routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>terminal</h1><p><span id="recordNumber">-1</span> rows</p><br /> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-file-text-o"></i> + <h3 id="Description" class="box-title">Description</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div><!-- /.box-header --> + <div class="box-body clearfix"> + <p>Table containing information about terminals of providers</p> + </div><!-- /.box-body --> + </div> + </section> + <!-- Main content --> + <section class="content"> + <div class="box box-primary"> + <div class="box-header with-border"> + <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> + <h3 id="Columns" class="box-title">Columns</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="standard_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Column</th> + <th>Type</th> + <th>Size</th> + <th title='Are nulls allowed?'>Nulls</th> + <th title='Is column automatically updated?'>Auto</th> + <th title='Default value'>Default</th> + <th title='Columns in tables that reference this column'>Children</th> + <th title='Columns in tables that are referenced by this column'>Parents</th> + <th title='Comments' class="toggle"><span>Comments</span></th> + </tr> + </thead> + <tbody> + <tr> + <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="terminal_id">terminal_id</span></td> + <td>int8</td> + <td>19</td> + <td title=''></td> + <td title='Automatically updated by the database'>√</td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + <tr> + <td title="withdrawal.terminal_id references terminal.terminal_id via withdrawal_terminal_id_fkey"><a href='withdrawal.html'>withdrawal</a><span class='relatedKey'>.terminal_id</span></td> + <td class="constraint detail">withdrawal_terminal_id_fkey</td> + <td class="constraint detail"><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>R</span></td> + </tr> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Uniquely identifies a terminal</p></td> + </tr> + <tr> + <td><span id="access_token">access_token</span></td> + <td>bytea</td> + <td>2147483647</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>The access token of the terminal used for authentication against the c2ec API</p></td> + </tr> + <tr> + <td><span id="active">active</span></td> + <td>bool</td> + <td>1</td> + <td title=''></td> + <td title=''></td> + <td>true</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Indicates if the terminal is active or deactivated</p></td> + </tr> + <tr> + <td><span id="description">description</span></td> + <td>text</td> + <td>2147483647</td> + <td title='nullable'>√</td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Description to help identify the terminal. This may include the location and an identifier of the terminal.</p></td> + </tr> + <tr> + <td class='foreignKey' title='Foreign Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="provider_id">provider_id</span></td> + <td>int8</td> + <td>19</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + <tr> + <td title="terminal.provider_id references terminal_provider.provider_terminal_id via terminal_provider_id_fkey"><a href='terminal_provider.html'>terminal_provider</a><span class='relatedKey'>.provider_terminal_id</span></td> + <td class="constraint detail">terminal_provider_id_fkey</td> + <td class="constraint detail"><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>R</span></td> + </tr> + </table> + </td> + <td><p>Indicates the terminal provider to which the terminal belongs</p></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-sitemap"></i> + <h3 id="Indexes" class="box-title">Indexes</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="indexes_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead> + <tr> + <th>Constraint Name</th> + <th>Type</th> + <th>Sort</th> + <th>Column(s)</th> + </tr> + </thead> + <tbody> + <tr> + <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey'></i> terminal_pkey</td> + <td>Primary key</td> + <td><span title='Ascending'>Asc</span></td> + <td>terminal_id</td> + </tr> + </tbody> + </table> + </div><!-- /.box-body --> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-sitemap"></i> + <h3 class="box-title">Check Constraints</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="check_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Constraint Name</th> + <th>Constraint</th> + </tr> + </thead> + <tbody> + <tr> + <td>terminal_access_token_check</td> + <td>((length(access_token) &#61; 32))</td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-code-fork"></i> + <h3 id="Relationships" class="box-title">Relationships</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <div class="nav-tabs-custom"><!-- Tabs within a box --> + <h5>Close relationships within degrees of separation</h5> + <ul class="nav nav-tabs pull-left ui-sortable-handle"> + <li class="active"><a href="#oneDegreeImg-chart" data-toggle="tab" aria-expanded="true">One</a></li> + </ul> + <div class="tab-content no-padding"> + <div class="chart tab-pane active" id="oneDegreeImg-chart" style="position: relative; overflow-x:auto;"> + <map id="oneDegreeRelationshipsDiagram" name="oneDegreeRelationshipsDiagram"> +<area shape="rect" id="node1" href="terminal.html" target="_top" title="terminal" alt="" coords="293,32,620,248"> +<area shape="rect" id="node2" href="terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,152,249,299"> +<area shape="rect" id="node3" href="withdrawal.html" target="_top" title="withdrawal" alt="" coords="664,5,925,152"> +</map> + <a name='diagram'><img id="oneDegreeImg" src="../diagrams/tables/terminal.1degree.png" usemap="#oneDegreeRelationshipsDiagram" class="diagram" border="0" align="left"></a> + </div> + </div> + </div> + </div><!-- /.box-body --> + </div> + </section> + <script> + var config = { + pagination: true + } + </script> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="../bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="../bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="../bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="../bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="../bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="../bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="../bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="../bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="../bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="../bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="../bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="../bower/pdfmake/pdfmake.min.js"></script> + <script src="../bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="../bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="../bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="../bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="../bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="../bower/codemirror/codemirror.js"></script> + <script src="../bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="../bower/admin-lte/dist/js/app.min.js"></script> + <script src="table.js"></script> + <script src="../schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/schemaspy/c2ec-erd/tables/terminal_provider.html b/schemaspy/c2ec-erd/tables/terminal_provider.html @@ -0,0 +1,334 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>terminal_provider - postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="../favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="../bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="../bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="../bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="../bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="../bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="../bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='../fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='../fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="../bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="../bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="../bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="../schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="../bower/html5shiv/html5shiv.min.js"></script> + <script src="../bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="../index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="../index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="../columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="../constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="../relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="../orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="../anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="../routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>terminal_provider</h1><p><span id="recordNumber">-1</span> rows</p><br /> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-file-text-o"></i> + <h3 id="Description" class="box-title">Description</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div><!-- /.box-header --> + <div class="box-body clearfix"> + <p>Table describing providers of c2ec terminal</p> + </div><!-- /.box-body --> + </div> + </section> + <!-- Main content --> + <section class="content"> + <div class="box box-primary"> + <div class="box-header with-border"> + <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> + <h3 id="Columns" class="box-title">Columns</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="standard_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Column</th> + <th>Type</th> + <th>Size</th> + <th title='Are nulls allowed?'>Nulls</th> + <th title='Is column automatically updated?'>Auto</th> + <th title='Default value'>Default</th> + <th title='Columns in tables that reference this column'>Children</th> + <th title='Columns in tables that are referenced by this column'>Parents</th> + <th title='Comments' class="toggle"><span>Comments</span></th> + </tr> + </thead> + <tbody> + <tr> + <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="provider_terminal_id">provider_terminal_id</span></td> + <td>int8</td> + <td>19</td> + <td title=''></td> + <td title='Automatically updated by the database'>√</td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + <tr> + <td title="terminal.provider_id references terminal_provider.provider_terminal_id via terminal_provider_id_fkey"><a href='terminal.html'>terminal</a><span class='relatedKey'>.provider_id</span></td> + <td class="constraint detail">terminal_provider_id_fkey</td> + <td class="constraint detail"><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>R</span></td> + </tr> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Uniquely identifies a provider</p></td> + </tr> + <tr> + <td class='indexedColumn' title='Indexed'><i class='fa fa-sitemap fa-rotate-120' style='padding-right: 5px;'></i><span id="name">name</span></td> + <td>text</td> + <td>2147483647</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Name of the provider, used for selection in transaction proofing</p></td> + </tr> + <tr> + <td><span id="backend_base_url">backend_base_url</span></td> + <td>text</td> + <td>2147483647</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>URL of the provider backend for transaction proofing</p></td> + </tr> + <tr> + <td><span id="backend_credentials">backend_credentials</span></td> + <td>text</td> + <td>2147483647</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Credentials used to access the backend of the provider</p></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-sitemap"></i> + <h3 id="Indexes" class="box-title">Indexes</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="indexes_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead> + <tr> + <th>Constraint Name</th> + <th>Type</th> + <th>Sort</th> + <th>Column(s)</th> + </tr> + </thead> + <tbody> + <tr> + <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey'></i> terminal_provider_pkey</td> + <td>Primary key</td> + <td><span title='Ascending'>Asc</span></td> + <td>provider_terminal_id</td> + </tr> + <tr> + <td class='uniqueKey' title='Unique Key'><i class='icon ion-key iconkey'></i> terminal_provider_name_key</td> + <td>Must be unique</td> + <td><span title='Ascending'>Asc</span></td> + <td>name</td> + </tr> + </tbody> + </table> + </div><!-- /.box-body --> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-code-fork"></i> + <h3 id="Relationships" class="box-title">Relationships</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <div class="nav-tabs-custom"><!-- Tabs within a box --> + <h5>Close relationships within degrees of separation</h5> + <ul class="nav nav-tabs pull-left ui-sortable-handle"> + <li class="active"><a href="#oneDegreeImg-chart" data-toggle="tab" aria-expanded="true">One</a></li> + <li class=""><a href="#twodegreesDegreeImg-chart" data-toggle="tab" aria-expanded="true">Two degrees</a></li> + </ul> + <div class="tab-content no-padding"> + <div class="chart tab-pane active" id="oneDegreeImg-chart" style="position: relative; overflow-x:auto;"> + <map id="oneDegreeRelationshipsDiagram" name="oneDegreeRelationshipsDiagram"> +<area shape="rect" id="node1" href="terminal.html" target="_top" title="terminal" alt="" coords="431,5,599,152"> +<area shape="rect" id="node2" href="terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,32,387,219"> +</map> + <a name='diagram'><img id="oneDegreeImg" src="../diagrams/tables/terminal_provider.1degree.png" usemap="#oneDegreeRelationshipsDiagram" class="diagram" border="0" align="left"></a> + </div> + <div class="chart tab-pane " id="twodegreesDegreeImg-chart" style="position: relative; overflow-x:auto;"> + <map id="twoDegreesRelationshipsDiagram" name="twoDegreesRelationshipsDiagram"> +<area shape="rect" id="node1" href="terminal.html" target="_top" title="terminal" alt="" coords="431,5,599,152"> +<area shape="rect" id="node2" href="terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,32,387,219"> +<area shape="rect" id="node3" href="withdrawal.html" target="_top" title="withdrawal" alt="" coords="643,8,827,96"> +</map> + <a name='diagram'><img id="twodegreesDegreeImg" src="../diagrams/tables/terminal_provider.2degrees.png" usemap="#twoDegreesRelationshipsDiagram" class="diagram" border="0" align="left"></a> + </div> + </div> + </div> + </div><!-- /.box-body --> + </div> + </section> + <script> + var config = { + pagination: true + } + </script> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="../bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="../bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="../bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="../bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="../bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="../bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="../bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="../bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="../bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="../bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="../bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="../bower/pdfmake/pdfmake.min.js"></script> + <script src="../bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="../bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="../bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="../bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="../bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="../bower/codemirror/codemirror.js"></script> + <script src="../bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="../bower/admin-lte/dist/js/app.min.js"></script> + <script src="table.js"></script> + <script src="../schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/schemaspy/c2ec-erd/tables/withdrawal.html b/schemaspy/c2ec-erd/tables/withdrawal.html @@ -0,0 +1,500 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <title>withdrawal - postgres.c2ec</title> + <!-- Tell the browser to be responsive to screen width --> + <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> + <link rel="icon" type="image/png" sizes="16x16" href="../favicon.png"> + <!-- Bootstrap 3.3.5 --> + <link rel="stylesheet" href="../bower/admin-lte/bootstrap/css/bootstrap.min.css"> + <!-- Font Awesome --> + <link rel="stylesheet" href="../bower/font-awesome/css/font-awesome.min.css"> + <!-- Ionicons --> + <link rel="stylesheet" href="../bower/ionicons/css/ionicons.min.css"> + <!-- DataTables --> + <link rel="stylesheet" href="../bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> + <link rel="stylesheet" href="../bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> + <!-- Code Mirror --> + <link rel="stylesheet" href="../bower/codemirror/codemirror.css"> + <!-- Fonts --> + <link href='../fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> + <link href='../fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> + + <!-- Theme style --> + <link rel="stylesheet" href="../bower/admin-lte/dist/css/AdminLTE.min.css"> + <!-- Salvattore --> + <link rel="stylesheet" href="../bower/salvattore/salvattore.css"> + <!-- AdminLTE Skins. Choose a skin from the css/skins + folder instead of downloading all of them to reduce the load. --> + <link rel="stylesheet" href="../bower/admin-lte/dist/css/skins/_all-skins.min.css"> + <!-- SchemaSpy --> + <link rel="stylesheet" href="../schemaSpy.css"> + + <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> + <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> + <!--[if lt IE 9]> + <script src="../bower/html5shiv/html5shiv.min.js"></script> + <script src="../bower/respond/respond.min.js"></script> + <![endif]--> + </head> + <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> + <body class="hold-transition skin-blue layout-top-nav"> + <div class="wrapper"> + <header class="main-header"> + <nav class="navbar navbar-static-top"> + <div class="container"> + <div class="navbar-header"> + <a href="../index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.c2ec</span> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> + </div> + + <!-- Collect the nav links, forms, and other content for toggling --> + <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> + <ul class="nav navbar-nav"> + <li><a href="../index.html">Tables <span class="sr-only">(current)</span></a></li> + <li><a href="../columns.html" title="All of the columns in the schema">Columns</a></li> + <li><a href="../constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> + <li><a href="../relationships.html" title="Diagram of table relationships">Relationships</a></li> + <li><a href="../orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> + <li><a href="../anomalies.html" title="Things that might not be quite right">Anomalies</a></li> + <li><a href="../routines.html" title="Procedures and functions">Routines</a></li> + </ul> + </div> + <!-- /.navbar-collapse --> + <!-- Navbar Right Menu --> + </div> + <!-- /.container-fluid --> + </nav> + </header> + <!-- Main content --> + <!-- Full Width Column --> + <div class="content-wrapper"> + <!-- Content Header (Page header) --> + <section class="content-header"> + <h1>withdrawal</h1><p><span id="recordNumber">-1</span> rows</p><br /> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-file-text-o"></i> + <h3 id="Description" class="box-title">Description</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div><!-- /.box-header --> + <div class="box-body clearfix"> + <p>Table representing withdrawal processes initiated by terminals</p> + </div><!-- /.box-body --> + </div> + </section> + <!-- Main content --> + <section class="content"> + <div class="box box-primary"> + <div class="box-header with-border"> + <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> + <h3 id="Columns" class="box-title">Columns</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="standard_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Column</th> + <th>Type</th> + <th>Size</th> + <th title='Are nulls allowed?'>Nulls</th> + <th title='Is column automatically updated?'>Auto</th> + <th title='Default value'>Default</th> + <th title='Columns in tables that reference this column'>Children</th> + <th title='Columns in tables that are referenced by this column'>Parents</th> + <th title='Comments' class="toggle"><span>Comments</span></th> + </tr> + </thead> + <tbody> + <tr> + <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="withdrawal_id">withdrawal_id</span></td> + <td>int8</td> + <td>19</td> + <td title=''></td> + <td title='Automatically updated by the database'>√</td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>The withdrawal id is used a technical id used by the wire gateway to sequentially select new transactions</p></td> + </tr> + <tr> + <td><span id="wopid">wopid</span></td> + <td>bytea</td> + <td>2147483647</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>The wopid (withdrawal operation id) is a nonce generated by the terminal requesting a withdrawal. The wopid identifies a specific withdrawal spawning all involved systems.</p></td> + </tr> + <tr> + <td><span id="reserve_pub_key">reserve_pub_key</span></td> + <td>bytea</td> + <td>2147483647</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Reserve public key for the reserve which will hold the withdrawal amount after completion</p></td> + </tr> + <tr> + <td><span id="registration_ts">registration_ts</span></td> + <td>int8</td> + <td>19</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Timestamp of when the withdrawal request was registered</p></td> + </tr> + <tr> + <td><span id="amount">amount</span></td> + <td>&quot;c2ec&quot;.&quot;taler_amount_currency&quot;</td> + <td>2147483647</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Effective amount to be put into the reserve after completion</p></td> + </tr> + <tr> + <td><span id="fees">fees</span></td> + <td>&quot;c2ec&quot;.&quot;taler_amount_currency&quot;</td> + <td>2147483647</td> + <td title='nullable'>√</td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Fees associated with the withdrawal, including exchange and provider fees</p></td> + </tr> + <tr> + <td><span id="withdrawal_status">withdrawal_status</span></td> + <td>&quot;c2ec&quot;.&quot;withdrawal_operation_status&quot;</td> + <td>2147483647</td> + <td title=''></td> + <td title=''></td> + <td>&#39;pending&#39;::c2ec.withdrawal_operation_status</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Status of the withdrawal process</p></td> + </tr> + <tr> + <td class='foreignKey' title='Foreign Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="terminal_id">terminal_id</span></td> + <td>int8</td> + <td>19</td> + <td title=''></td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + <tr> + <td title="withdrawal.terminal_id references terminal.terminal_id via withdrawal_terminal_id_fkey"><a href='terminal.html'>terminal</a><span class='relatedKey'>.terminal_id</span></td> + <td class="constraint detail">withdrawal_terminal_id_fkey</td> + <td class="constraint detail"><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>R</span></td> + </tr> + </table> + </td> + <td><p>ID of the terminal that initiated the withdrawal</p></td> + </tr> + <tr> + <td><span id="provider_transaction_id">provider_transaction_id</span></td> + <td>text</td> + <td>2147483647</td> + <td title='nullable'>√</td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Transaction identifier supplied by the provider for backend request</p></td> + </tr> + <tr> + <td><span id="last_retry_ts">last_retry_ts</span></td> + <td>int8</td> + <td>19</td> + <td title='nullable'>√</td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Timestamp of the last retry attempt</p></td> + </tr> + <tr> + <td><span id="retry_counter">retry_counter</span></td> + <td>int4</td> + <td>10</td> + <td title=''></td> + <td title=''></td> + <td>0</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Number of retry attempts</p></td> + </tr> + <tr> + <td><span id="completion_proof">completion_proof</span></td> + <td>bytea</td> + <td>2147483647</td> + <td title='nullable'>√</td> + <td title=''></td> + <td>null</td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td> + <table border='0' cellspacing='0' cellpadding='0'> + </table> + </td> + <td><p>Proof of transaction upon final completion delivered by the providers system</p></td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-sitemap"></i> + <h3 id="Indexes" class="box-title">Indexes</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="indexes_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead> + <tr> + <th>Constraint Name</th> + <th>Type</th> + <th>Sort</th> + <th>Column(s)</th> + </tr> + </thead> + <tbody> + <tr> + <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey'></i> withdrawal_pkey</td> + <td>Primary key</td> + <td><span title='Ascending'>Asc</span></td> + <td>withdrawal_id</td> + </tr> + </tbody> + </table> + </div><!-- /.box-body --> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-sitemap"></i> + <h3 class="box-title">Check Constraints</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <table + id="check_table" + class="table table-bordered table-striped dataTable" + role="grid" + data-paging="true" + data-page-length="10" + data-length-change="false"> + <thead align='left'> + <tr> + <th>Constraint Name</th> + <th>Constraint</th> + </tr> + </thead> + <tbody> + <tr> + <td>withdrawal_reserve_pub_key_check</td> + <td>((length(reserve_pub_key) &#61; 32))</td> + </tr> + <tr> + <td>withdrawal_wopid_check</td> + <td>((length(wopid) &#61; 32))</td> + </tr> + </tbody> + </table> + </div> + </div> + <div class="box box-primary"> + <div class="box-header with-border"> + <i class="fa fa-code-fork"></i> + <h3 id="Relationships" class="box-title">Relationships</h3> + <div class="box-tools pull-right"> + <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> + <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> + </div> + </div> + <div class="box-body"> + <div class="nav-tabs-custom"><!-- Tabs within a box --> + <h5>Close relationships within degrees of separation</h5> + <ul class="nav nav-tabs pull-left ui-sortable-handle"> + <li class="active"><a href="#oneDegreeImg-chart" data-toggle="tab" aria-expanded="true">One</a></li> + <li class=""><a href="#twodegreesDegreeImg-chart" data-toggle="tab" aria-expanded="true">Two degrees</a></li> + </ul> + <div class="tab-content no-padding"> + <div class="chart tab-pane active" id="oneDegreeImg-chart" style="position: relative; overflow-x:auto;"> + <map id="oneDegreeRelationshipsDiagram" name="oneDegreeRelationshipsDiagram"> +<area shape="rect" id="node1" href="withdrawal.html" target="_top" title="withdrawal" alt="" coords="217,5,872,427"> +<area shape="rect" id="node2" href="terminal.html" target="_top" title="terminal" alt="" coords="5,213,173,360"> +</map> + <a name='diagram'><img id="oneDegreeImg" src="../diagrams/tables/withdrawal.1degree.png" usemap="#oneDegreeRelationshipsDiagram" class="diagram" border="0" align="left"></a> + </div> + <div class="chart tab-pane " id="twodegreesDegreeImg-chart" style="position: relative; overflow-x:auto;"> + <map id="twoDegreesRelationshipsDiagram" name="twoDegreesRelationshipsDiagram"> +<area shape="rect" id="node1" href="terminal.html" target="_top" title="terminal" alt="" coords="293,213,461,360"> +<area shape="rect" id="node2" href="terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,245,249,333"> +<area shape="rect" id="node3" href="withdrawal.html" target="_top" title="withdrawal" alt="" coords="505,5,1160,427"> +</map> + <a name='diagram'><img id="twodegreesDegreeImg" src="../diagrams/tables/withdrawal.2degrees.png" usemap="#twoDegreesRelationshipsDiagram" class="diagram" border="0" align="left"></a> + </div> + </div> + </div> + </div><!-- /.box-body --> + </div> + </section> + <script> + var config = { + pagination: true + } + </script> + </div> + <!-- /.content-wrapper --> + <footer class="main-footer"> + <div> + <div class="pull-right hidden-xs"> + <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> + <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> + </div> + <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> + </div> + <!-- /.container --> + </footer> + </div> + <!-- ./wrapper --> + + <!-- jQuery 2.2.3 --> + <script src="../bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> + <script src="../bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> + <!-- Bootstrap 3.3.5 --> + <script src="../bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> + <!-- DataTables --> + <script src="../bower/datatables.net/jquery.dataTables.min.js"></script> + <script src="../bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> + <script src="../bower/datatables.net-buttons/dataTables.buttons.min.js"></script> + <script src="../bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> + <script src="../bower/datatables.net-buttons/buttons.html5.min.js"></script> + <script src="../bower/datatables.net-buttons/buttons.print.min.js"></script> + <script src="../bower/datatables.net-buttons/buttons.colVis.min.js"></script> + <!-- SheetJS --> + <script src="../bower/js-xlsx/xlsx.full.min.js"></script> + <!-- pdfmake --> + <script src="../bower/pdfmake/pdfmake.min.js"></script> + <script src="../bower/pdfmake/vfs_fonts.js"></script> + <!-- SlimScroll --> + <script src="../bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> + <!-- FastClick --> + <script src="../bower/admin-lte/plugins/fastclick/fastclick.js"></script> + <!-- Salvattore --> + <script src="../bower/salvattore/salvattore.min.js"></script> + <!-- AnchorJS --> + <script src="../bower/anchor-js/anchor.min.js"></script> + <!-- CodeMirror --> + <script src="../bower/codemirror/codemirror.js"></script> + <script src="../bower/codemirror/sql.js"></script> + <!-- AdminLTE App --> + <script src="../bower/admin-lte/dist/js/app.min.js"></script> + <script src="table.js"></script> + <script src="../schemaSpy.js"></script> + </body> +</html> +\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/anomalies.html b/schemaspy/nonce2ecash-erd/anomalies.html @@ -1,293 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="bower/html5shiv/html5shiv.min.js"></script> - <script src="bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>Anomalies</h1><br /> - <div class="callout callout-warning"> - <p>Things that might not be 'quite right' about your database and schema</p> - </div> - </section> - <!-- Main content --> - <section class="content"> - <div class="row"> - <div class="col-md-6"> <!-- Implied Relationship --> - <div class="box box-success"> - <div class="box-header with-border"> - <h3 class="box-title">Columns whose name and type imply a relationship to another table's primary key</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="implied_constraint" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Child Column</th> - <th>Implied Parent Column</th> - </tr> - </thead> - <tbody> - <tr> - <td colspan="3">Anomaly not detected</td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="col-md-6"> <!-- Tables without indexes --> - <div class="box box-danger"> - <div class="box-header with-border"> - <h3 class="box-title">Tables without indexes</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="un_indexed_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Table</th> - <th>Rows</th> - </tr> - </thead> - <tbody> - <tr> - <td colspan="3">Anomaly not detected</td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="col-md-6"> <!-- Tables that contain a single column --> - <div class="box box-info"> - <div class="box-header with-border"> - <h3 class="box-title">Tables that contain a single column</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="single_column_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Table</th> - <th>Column</th> - </tr> - </thead> - <tbody> - <tr> - <td colspan="3">Anomaly not detected</td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="col-md-6"> <!-- Tables with incrementing column names, potentially indicating denormalization --> - <div class="box box-danger"> - <div class="box-header with-border"> - <h3 class="box-title">Tables with incrementing column names, potentially indicating denormalization</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="inc_column_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Table</th> - </tr> - </thead> - <tbody> - <tr> - <td colspan="3">Anomaly not detected</td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - <div class="col-md-6"> <!-- Columns whose default value is the word 'NULL' or 'null', but the SQL NULL value may have been intended --> - <div class="box box-primary"> - <div class="box-header with-border"> - <h3 class="box-title" title="Columns whose default value is the word 'NULL' or 'null', but the SQL NULL value may have been intende">Columns whose default value is the word 'NULL' or 'null'</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="null_string_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Table</th> - </tr> - </thead> - <tbody> - <tr> - <td colspan="3">Anomaly not detected</td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - </div> - </section> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="bower/pdfmake/pdfmake.min.js"></script> - <script src="bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="bower/codemirror/codemirror.js"></script> - <script src="bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="bower/admin-lte/dist/js/app.min.js"></script> - <script src="anomalies.js"></script> - <script src="schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/anomalies.js b/schemaspy/nonce2ecash-erd/anomalies.js diff --git a/schemaspy/nonce2ecash-erd/columns.html b/schemaspy/nonce2ecash-erd/columns.html @@ -1,363 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="bower/html5shiv/html5shiv.min.js"></script> - <script src="bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>Columns</h1> - </section> - <!-- Main content --> - <section class="content"> - <div class="box box-primary"> - <div class="box-header with-border"> - <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> - <h3 class="box-title">Columns</h3> - </div> - <div class="box-body"> - <table - id="column_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="50" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Table</th> - <th>Type</th> - <th>Column</th> - <th>Type</th> - <th>Size</th> - <th title='Are nulls allowed?'>Nullable</th> - <th title='Is column automatically updated?'>Auto</th> - <th title='Default value'>Default</th> - <th title='Comments' class="toggle"><span>Comments</span></th> - </tr> - </thead> - <tbody></tbody> - </table> - </div> - </div> - </section> - <script> - var tableData = [ - { - "tableName": "terminal_provider", - "tableFileName": "terminal_provider", - "tableType": "Table", - "keyClass": "", - "keyTitle": "", - "name": "name", - "type": "varchar", - "length": 50, - "nullable": "√", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "terminal", - "tableFileName": "terminal", - "tableType": "Table", - "keyClass": "primaryKey", - "keyTitle": "Primary Key", - "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>id", - "type": "int8", - "length": 19, - "nullable": "", - "autoUpdated": "√", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "terminal_provider", - "tableFileName": "terminal_provider", - "tableType": "Table", - "keyClass": "primaryKey", - "keyTitle": "Primary Key", - "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>id", - "type": "int8", - "length": 19, - "nullable": "", - "autoUpdated": "√", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "withdrawal", - "tableFileName": "withdrawal", - "tableType": "Table", - "keyClass": "foreignKey", - "keyTitle": "Foreign Key", - "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>terminal_id", - "type": "int8", - "length": 19, - "nullable": "", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "terminal", - "tableFileName": "terminal", - "tableType": "Table", - "keyClass": "", - "keyTitle": "", - "name": "remarks", - "type": "varchar", - "length": 255, - "nullable": "√", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "terminal_provider", - "tableFileName": "terminal_provider", - "tableType": "Table", - "keyClass": "", - "keyTitle": "", - "name": "remarks", - "type": "varchar", - "length": 255, - "nullable": "√", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "terminal", - "tableFileName": "terminal", - "tableType": "Table", - "keyClass": "foreignKey", - "keyTitle": "Foreign Key", - "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>provider_id", - "type": "int8", - "length": 19, - "nullable": "", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "withdrawal", - "tableFileName": "withdrawal", - "tableType": "Table", - "keyClass": "", - "keyTitle": "", - "name": "withdrawal_status", - "type": "withdrawal_operation_status", - "length": 2147483647, - "nullable": "", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "terminal", - "tableFileName": "terminal", - "tableType": "Table", - "keyClass": "", - "keyTitle": "", - "name": "access_token", - "type": "bytea", - "length": 2147483647, - "nullable": "√", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "withdrawal", - "tableFileName": "withdrawal", - "tableType": "Table", - "keyClass": "", - "keyTitle": "", - "name": "registration_ts", - "type": "int8", - "length": 19, - "nullable": "√", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "terminal", - "tableFileName": "terminal", - "tableType": "Table", - "keyClass": "", - "keyTitle": "", - "name": "active", - "type": "bool", - "length": 1, - "nullable": "√", - "autoUpdated": "", - "defaultValue": "true", - "comments": "" - }, - { - "tableName": "withdrawal", - "tableFileName": "withdrawal", - "tableType": "Table", - "keyClass": "primaryKey", - "keyTitle": "Primary Key", - "name": "<i class='icon ion-key iconkey' style='padding-left: 5px;'><\/i>withdrawal_id", - "type": "bytea", - "length": 2147483647, - "nullable": "", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "withdrawal", - "tableFileName": "withdrawal", - "tableType": "Table", - "keyClass": "", - "keyTitle": "", - "name": "reserve_pub_key", - "type": "bytea", - "length": 2147483647, - "nullable": "√", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - }, - { - "tableName": "withdrawal", - "tableFileName": "withdrawal", - "tableType": "Table", - "keyClass": "", - "keyTitle": "", - "name": "amount", - "type": "varchar", - "length": 50, - "nullable": "√", - "autoUpdated": "", - "defaultValue": "null", - "comments": "" - } -]; - var config = { - pagination: true - }; - </script> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="bower/pdfmake/pdfmake.min.js"></script> - <script src="bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="bower/codemirror/codemirror.js"></script> - <script src="bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="bower/admin-lte/dist/js/app.min.js"></script> - <script src="column.js"></script> - <script src="schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/constraints.html b/schemaspy/nonce2ecash-erd/constraints.html @@ -1,245 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="bower/html5shiv/html5shiv.min.js"></script> - <script src="bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>Constraints</h1> - </section> - <!-- Main content --> - <section class="content"> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="ion ion-key"></i> - <h3 class="box-title">2 Foreign Key Constraints</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="fk_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="50" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Constraint Name</th> - <th>Child Column</th> - <th>Parent Column</th> - <th>Delete Rule</th> - </tr> - </thead> - <tbody> - <tr> - <td>terminal_provider_id_fkey</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - <tr> - <td><a href='tables/terminal.html'>terminal</a><span>.provider_id</span></td> - </tr> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - <tr> - <td><a href='tables/terminal_provider.html'>terminal_provider</a><span>.id</span></td> - </tr> - </table> - </td> - <td><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>Restrict delete</span></td> - </tr> - <tr> - <td>withdrawal_terminal_id_fkey</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - <tr> - <td><a href='tables/withdrawal.html'>withdrawal</a><span>.terminal_id</span></td> - </tr> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - <tr> - <td><a href='tables/terminal.html'>terminal</a><span>.id</span></td> - </tr> - </table> - </td> - <td><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>Restrict delete</span></td> - </tr> - </tbody> - </table> - </div> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-sitemap"></i> - <h3 class="box-title">Check Constraints</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="check_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Table</th> - <th>Constraint Name</th> - <th>Constraint</th> - </tr> - </thead> - <tbody> - <tr> - <td><a href='tables/terminal.html'>terminal</a></td> - <td>terminal_access_token_check</td> - <td>((length(access_token) &#61; 32))</td> - </tr> - <tr> - <td><a href='tables/withdrawal.html'>withdrawal</a></td> - <td>withdrawal_reserve_pub_key_check</td> - <td>((length(reserve_pub_key) &#61; 32))</td> - </tr> - <tr> - <td><a href='tables/withdrawal.html'>withdrawal</a></td> - <td>withdrawal_withdrawal_id_check</td> - <td>((length(withdrawal_id) &#61; 32))</td> - </tr> - </tbody> - </table> - </div> - </div> - </section> - <script> - var config = { - pagination: true - } - </script> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="bower/pdfmake/pdfmake.min.js"></script> - <script src="bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="bower/codemirror/codemirror.js"></script> - <script src="bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="bower/admin-lte/dist/js/app.min.js"></script> - <script src="constraint.js"></script> - <script src="schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/diagrams/summary/relationships.real.compact.dot b/schemaspy/nonce2ecash-erd/diagrams/summary/relationships.real.compact.dot @@ -1,43 +0,0 @@ -digraph "compactRelationshipsDiagram" { - graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; - "terminal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="tables/terminal.html" - target="_top" - tooltip="terminal" - ]; - "terminal_provider" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="tables/terminal_provider.html" - target="_top" - tooltip="terminal_provider" - ]; - "withdrawal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="withdrawal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD></TR> - </TABLE>> - URL="tables/withdrawal.html" - target="_top" - tooltip="withdrawal" - ]; - "terminal":"provider_id":w -> "terminal_provider":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "withdrawal":"terminal_id":w -> "terminal":"id":e [arrowhead=none dir=back arrowtail=crowodot]; -} diff --git a/schemaspy/nonce2ecash-erd/diagrams/summary/relationships.real.large.dot b/schemaspy/nonce2ecash-erd/diagrams/summary/relationships.real.large.dot @@ -1,49 +0,0 @@ -digraph "largeRelationshipsDiagram" { - graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; - "terminal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="access_token" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">access_token</TD></TR></TABLE></TD></TR> - <TR><TD PORT="active" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">active</TD></TR></TABLE></TD></TR> - <TR><TD PORT="remarks" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">remarks</TD></TR></TABLE></TD></TR> - <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="tables/terminal.html" - target="_top" - tooltip="terminal" - ]; - "terminal_provider" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="name" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">name</TD></TR></TABLE></TD></TR> - <TR><TD PORT="remarks" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">remarks</TD></TR></TABLE></TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="tables/terminal_provider.html" - target="_top" - tooltip="terminal_provider" - ]; - "withdrawal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="withdrawal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="reserve_pub_key" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">reserve_pub_key</TD></TR></TABLE></TD></TR> - <TR><TD PORT="registration_ts" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">registration_ts</TD></TR></TABLE></TD></TR> - <TR><TD PORT="amount" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">amount</TD></TR></TABLE></TD></TR> - <TR><TD PORT="withdrawal_status" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">withdrawal_status</TD></TR></TABLE></TD></TR> - <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD></TR> - </TABLE>> - URL="tables/withdrawal.html" - target="_top" - tooltip="withdrawal" - ]; - "terminal":"provider_id":w -> "terminal_provider":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "withdrawal":"terminal_id":w -> "terminal":"id":e [arrowhead=none dir=back arrowtail=crowodot]; -} diff --git a/schemaspy/nonce2ecash-erd/diagrams/tables/terminal.1degree.dot b/schemaspy/nonce2ecash-erd/diagrams/tables/terminal.1degree.dot @@ -1,45 +0,0 @@ -digraph "oneDegreeRelationshipsDiagram" { - graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; - "terminal":"provider_id":w -> "terminal_provider":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "withdrawal":"terminal_id":w -> "terminal":"id.type":e [arrowhead=none dir=back arrowtail=crowodot]; - "terminal" [ - label=< - <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">id</TD></TR></TABLE></TD><TD PORT="id.type" ALIGN="LEFT">int8[19]</TD></TR> - <TR><TD PORT="access_token" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">access_token</TD></TR></TABLE></TD><TD PORT="access_token.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> - <TR><TD PORT="active" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">active</TD></TR></TABLE></TD><TD PORT="active.type" ALIGN="LEFT">bool[1]</TD></TR> - <TR><TD PORT="remarks" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">remarks</TD></TR></TABLE></TD><TD PORT="remarks.type" ALIGN="LEFT">varchar[255]</TD></TR> - <TR><TD PORT="provider_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD><TD PORT="provider_id.type" ALIGN="LEFT">int8[19]</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="terminal.html" - target="_top" - tooltip="terminal" - ]; - "terminal_provider" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="terminal_provider.html" - target="_top" - tooltip="terminal_provider" - ]; - "withdrawal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="withdrawal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="terminal_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">terminal_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD></TR> - </TABLE>> - URL="withdrawal.html" - target="_top" - tooltip="withdrawal" - ]; -} diff --git a/schemaspy/nonce2ecash-erd/diagrams/tables/terminal_provider.1degree.dot b/schemaspy/nonce2ecash-erd/diagrams/tables/terminal_provider.1degree.dot @@ -1,30 +0,0 @@ -digraph "oneDegreeRelationshipsDiagram" { - graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; - "terminal":"provider_id":w -> "terminal_provider":"id.type":e [arrowhead=none dir=back arrowtail=crowodot]; - "terminal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="terminal.html" - target="_top" - tooltip="terminal" - ]; - "terminal_provider" [ - label=< - <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">id</TD></TR></TABLE></TD><TD PORT="id.type" ALIGN="LEFT">int8[19]</TD></TR> - <TR><TD PORT="name" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">name</TD></TR></TABLE></TD><TD PORT="name.type" ALIGN="LEFT">varchar[50]</TD></TR> - <TR><TD PORT="remarks" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">remarks</TD></TR></TABLE></TD><TD PORT="remarks.type" ALIGN="LEFT">varchar[255]</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 0</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="terminal_provider.html" - target="_top" - tooltip="terminal_provider" - ]; -} diff --git a/schemaspy/nonce2ecash-erd/diagrams/tables/terminal_provider.2degrees.dot b/schemaspy/nonce2ecash-erd/diagrams/tables/terminal_provider.2degrees.dot @@ -1,42 +0,0 @@ -digraph "twoDegreesRelationshipsDiagram" { - graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; - "terminal":"provider_id":w -> "terminal_provider":"id.type":e [arrowhead=none dir=back arrowtail=crowodot]; - "withdrawal":"elipses":w -> "terminal":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "terminal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="terminal.html" - target="_top" - tooltip="terminal" - ]; - "terminal_provider" [ - label=< - <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">id</TD></TR></TABLE></TD><TD PORT="id.type" ALIGN="LEFT">int8[19]</TD></TR> - <TR><TD PORT="name" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">name</TD></TR></TABLE></TD><TD PORT="name.type" ALIGN="LEFT">varchar[50]</TD></TR> - <TR><TD PORT="remarks" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16">remarks</TD></TR></TABLE></TD><TD PORT="remarks.type" ALIGN="LEFT">varchar[255]</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 0</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="terminal_provider.html" - target="_top" - tooltip="terminal_provider" - ]; - "withdrawal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD></TR> - </TABLE>> - URL="withdrawal.html" - target="_top" - tooltip="withdrawal" - ]; -} diff --git a/schemaspy/nonce2ecash-erd/diagrams/tables/withdrawal.1degree.dot b/schemaspy/nonce2ecash-erd/diagrams/tables/withdrawal.1degree.dot @@ -1,33 +0,0 @@ -digraph "oneDegreeRelationshipsDiagram" { - graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; - "withdrawal":"terminal_id":w -> "terminal":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "terminal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="terminal.html" - target="_top" - tooltip="terminal" - ]; - "withdrawal" [ - label=< - <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="withdrawal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD><TD PORT="withdrawal_id.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> - <TR><TD PORT="reserve_pub_key" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">reserve_pub_key</TD></TR></TABLE></TD><TD PORT="reserve_pub_key.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> - <TR><TD PORT="registration_ts" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">registration_ts</TD></TR></TABLE></TD><TD PORT="registration_ts.type" ALIGN="LEFT">int8[19]</TD></TR> - <TR><TD PORT="amount" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">amount</TD></TR></TABLE></TD><TD PORT="amount.type" ALIGN="LEFT">varchar[50]</TD></TR> - <TR><TD PORT="withdrawal_status" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">withdrawal_status</TD></TR></TABLE></TD><TD PORT="withdrawal_status.type" ALIGN="LEFT">withdrawal_operation_status[2147483647]</TD></TR> - <TR><TD PORT="terminal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">terminal_id</TD></TR></TABLE></TD><TD PORT="terminal_id.type" ALIGN="LEFT">int8[19]</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">0 &gt;</TD></TR> - </TABLE>> - URL="withdrawal.html" - target="_top" - tooltip="withdrawal" - ]; -} diff --git a/schemaspy/nonce2ecash-erd/diagrams/tables/withdrawal.2degrees.dot b/schemaspy/nonce2ecash-erd/diagrams/tables/withdrawal.2degrees.dot @@ -1,45 +0,0 @@ -digraph "twoDegreesRelationshipsDiagram" { - graph [ rankdir="RL" bgcolor="#ffffff" label="\nGenerated by SchemaSpy" labeljust="l" nodesep="0.18" ranksep="0.46" fontname="Helvetica" fontsize="11" ration="compress" ]; node [ fontname="Helvetica" fontsize="11" shape="plaintext" ]; edge [ arrowsize="0.8" ]; - "terminal":"provider_id":w -> "terminal_provider":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; - "withdrawal":"terminal_id":w -> "terminal":"id":e [arrowhead=none dir=back arrowtail=crowodot]; - "terminal" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="57" HEIGHT="16"><B>terminal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="provider_id" COLSPAN="3" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="89" HEIGHT="16">provider_id</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="terminal.html" - target="_top" - tooltip="terminal" - ]; - "terminal_provider" [ - label=< - <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="3" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="120" HEIGHT="16"><B>terminal_provider</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="elipses" COLSPAN="3" ALIGN="LEFT">...</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">1 &gt;</TD></TR> - </TABLE>> - URL="terminal_provider.html" - target="_top" - tooltip="terminal_provider" - ]; - "withdrawal" [ - label=< - <TABLE BORDER="2" CELLBORDER="1" CELLSPACING="0" BGCOLOR="#ffffff"> - <TR><TD COLSPAN="4" BGCOLOR="#f5f5f5"><TABLE BORDER="0" CELLSPACING="0"><TR><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="75" HEIGHT="16"><B>withdrawal</B></TD><TD ALIGN="RIGHT">[table]</TD></TR></TABLE></TD></TR> - <TR><TD PORT="withdrawal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/primaryKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">withdrawal_id</TD></TR></TABLE></TD><TD PORT="withdrawal_id.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> - <TR><TD PORT="reserve_pub_key" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">reserve_pub_key</TD></TR></TABLE></TD><TD PORT="reserve_pub_key.type" ALIGN="LEFT">bytea[2147483647]</TD></TR> - <TR><TD PORT="registration_ts" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">registration_ts</TD></TR></TABLE></TD><TD PORT="registration_ts.type" ALIGN="LEFT">int8[19]</TD></TR> - <TR><TD PORT="amount" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">amount</TD></TR></TABLE></TD><TD PORT="amount.type" ALIGN="LEFT">varchar[50]</TD></TR> - <TR><TD PORT="withdrawal_status" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">withdrawal_status</TD></TR></TABLE></TD><TD PORT="withdrawal_status.type" ALIGN="LEFT">withdrawal_operation_status[2147483647]</TD></TR> - <TR><TD PORT="terminal_id" COLSPAN="2" ALIGN="LEFT"><TABLE BORDER="0" CELLSPACING="0" ALIGN="LEFT"><TR ALIGN="LEFT"><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="15" HEIGHT="16"><IMG SRC="../../images/foreignKeys.png"/></TD><TD ALIGN="LEFT" FIXEDSIZE="TRUE" WIDTH="123" HEIGHT="16">terminal_id</TD></TR></TABLE></TD><TD PORT="terminal_id.type" ALIGN="LEFT">int8[19]</TD></TR> - <TR><TD ALIGN="LEFT" BGCOLOR="#ffffff">&lt; 1</TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff"> </TD><TD ALIGN="RIGHT" BGCOLOR="#ffffff">0 &gt;</TD></TR> - </TABLE>> - URL="withdrawal.html" - target="_top" - tooltip="withdrawal" - ]; -} diff --git a/schemaspy/nonce2ecash-erd/index.html b/schemaspy/nonce2ecash-erd/index.html @@ -1,303 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="bower/html5shiv/html5shiv.min.js"></script> - <script src="bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>Tables</h1><br /> - <div class="row"> - <div class="col-md-12"> - <div class="callout callout-info"> - <h4>SchemaSpy Analysis of postgres.public</h4> - <p>Generated on Wed Mar 06 14:13 CET 2024</p> - </div> - </div> - </div> - <a href="postgres.public.xml" title="XML Representation">XML Representation</a><br /> - <a href="insertionOrder.txt" title="Useful for loading data into a database">Insertion Order</a> - <a href="deletionOrder.txt" title="Useful for purging data from a database">Deletion Order</a> - </section> - <!-- Main content --> - <section class="content"> - <div class="row"> - <div class="col-md-2 col-sm-4 col-xs-12"> - <div class="info-box"> - <span class="info-box-icon bg-aqua"><i class="fa fa-table"></i></span> - <div class="info-box-content"> - <span class="info-box-text">TABLES</span> - <span class="info-box-number">3</span> - </div> - <!-- /.info-box-content --> - </div> - <!-- /.info-box --> - </div> - <!-- /.col --> - <div class="col-md-2 col-sm-4 col-xs-12"> - <div class="info-box"> - <span class="info-box-icon bg-teal"><i class="fa fa-table"></i></span> - <div class="info-box-content"> - <span class="info-box-text">VIEWS</span> - <span class="info-box-number">0</span> - </div> - <!-- /.info-box-content --> - </div> - <!-- /.info-box --> - </div> - <!-- /.col --> - <div class="col-md-2 col-sm-4 col-xs-12"> - <div class="info-box"> - <span class="info-box-icon bg-green"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span></span> - <div class="info-box-content"> - <span class="info-box-text">COLUMNS</span> - <span class="info-box-number">14</span> - </div> - <!-- /.info-box-content --> - </div> - <!-- /.info-box --> - </div> - <!-- /.col --> - <div class="col-md-2 col-sm-4 col-xs-12"> - <div class="info-box"> - <span class="info-box-icon bg-yellow"><i class="ion ion-key"></i></span> - <div class="info-box-content"> - <span class="info-box-text">Constraints</span> - <span class="info-box-number">2</span> - </div> - <!-- /.info-box-content --> - </div> - <!-- /.info-box --> - </div> - <!-- /.col --> - <div class="col-md-2 col-sm-4 col-xs-12"> - <div class="info-box"> - <span class="info-box-icon bg-red-active"><i class="fa fa-question" aria-hidden="true"></i></span> - <div class="info-box-content"> - <span class="info-box-text">Anomalies</span> - <span class="info-box-number">0</span> - </div> - <!-- /.info-box-content --> - </div> - <!-- /.info-box --> - </div> - <!-- /.col --> - <div class="col-md-2 col-sm-4 col-xs-12"> - <div class="info-box"> - <span class="info-box-icon bg-navy"><i class="fa fa-file-code-o" aria-hidden="true"></i></span> - <div class="info-box-content"> - <span class="info-box-text">Routines</span> - <span class="info-box-number">0</span> - </div> - <!-- /.info-box-content --> - </div> - <!-- /.info-box --> - </div> - <!-- /.col --> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <h3 class="box-title">Database Properties</h3> - <span class="label label-primary pull-right"><i class="fa fa-cog fa-2x"></i></span> - </div><!-- /.box-header --> - <div class="box-body"> - <p>Database Type: PostgreSQL - 15.2 (Debian 15.2-1.pgdg110+1)</p> - </div><!-- /.box-body --> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <h3 class="box-title">Catalog postgres</h3> - <span class="label label-primary pull-right"><i class="fa fa-cog fa-2x"></i></span> - </div><!-- /.box-header --> - <div class="box-body"> - <p> <p>default administrative connection database</p> </p> - </div><!-- /.box-body --> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <h3 class="box-title">Schema public</h3> - <span class="label label-primary pull-right"><i class="fa fa-cog fa-2x"></i></span> - </div><!-- /.box-header --> - <div class="box-body"> - <p> <p>standard public schema</p> </p> - </div><!-- /.box-body --> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <h3 class="box-title">Tables</h3> - <span class="label label-primary pull-right"><i class="fa fa-database fa-2x"></i></span> - </div><!-- /.box-header --> - <div class="box-body"> - <table - id="database_objects" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="50" - data-length-change="false"> - <thead> - <tr> - <th valign="bottom">Table / View</th> - <th align="right" valign="bottom">Children</th> - <th align="right" valign="bottom">Parents</th> - <th align="right" valign="bottom">Columns</th> - <th align="right" valign="bottom">Rows</th> - <th align="right" valign="bottom">Type</th> - <th class="toggle">Comments</th> - </tr> - </thead> - <tbody> - <tr class="tbl even" valign="top"> - <td class="detail"><a href="tables/terminal.html">terminal</a></td> - <td class="detail" align="right">1</td> - <td class="detail" align="right">1</td> - <td class="detail" align="right">5</td> - <td class="detail" align="right">-1</td> - <td class="detail" align="right">Table</td> - <td class="comment detail" style="display: table-cell;"></td> - </tr> - <tr class="tbl even" valign="top"> - <td class="detail"><a href="tables/terminal_provider.html">terminal_provider</a></td> - <td class="detail" align="right">1</td> - <td class="detail" align="right">0</td> - <td class="detail" align="right">3</td> - <td class="detail" align="right">-1</td> - <td class="detail" align="right">Table</td> - <td class="comment detail" style="display: table-cell;"></td> - </tr> - <tr class="tbl even" valign="top"> - <td class="detail"><a href="tables/withdrawal.html">withdrawal</a></td> - <td class="detail" align="right">0</td> - <td class="detail" align="right">1</td> - <td class="detail" align="right">6</td> - <td class="detail" align="right">-1</td> - <td class="detail" align="right">Table</td> - <td class="comment detail" style="display: table-cell;"></td> - </tr> - </table> - </div> - </div><!-- /.box-body --> - </section> - <!-- /.content --> - <script> - var config = { - pagination: true - } - </script> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="bower/pdfmake/pdfmake.min.js"></script> - <script src="bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="bower/codemirror/codemirror.js"></script> - <script src="bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="bower/admin-lte/dist/js/app.min.js"></script> - <script src="main.js"></script> - <script src="schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/info-html.txt b/schemaspy/nonce2ecash-erd/info-html.txt @@ -1,5 +0,0 @@ -date=2024-03-06 14:13:45+0100 -os=Linux 6.5.0-21-generic -schemaspy-version=6.2.4 -schemaspy-build=6.2.4.41 2023-07-21 11:15:12 -renderer=Graphviz dot 2.43.0 diff --git a/schemaspy/nonce2ecash-erd/orphans.html b/schemaspy/nonce2ecash-erd/orphans.html @@ -1,145 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="bower/html5shiv/html5shiv.min.js"></script> - <script src="bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>Utility Tables</h1> - </section> - <!-- Main content --> - <section class="content"> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-code-fork"></i> - <h3 class="box-title">Orphan Tables</h3> - </div> - <div class="box-body"> - <div id="grid" data-columns> - <div class="item"> -<img id="orphans" src="diagrams/orphans/orphans.png" usemap="#orphans" style="max-width:100%;" border="0" align="top"> -<map id="orphans" name="orphans"> -</map> - </div> - </div> - </div> - </div> - </section> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="bower/pdfmake/pdfmake.min.js"></script> - <script src="bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="bower/codemirror/codemirror.js"></script> - <script src="bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="bower/admin-lte/dist/js/app.min.js"></script> - <script src=""></script> - <script src="schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/postgres.public.xml b/schemaspy/nonce2ecash-erd/postgres.public.xml @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><database name="postgres" schema="public" type="PostgreSQL - 15.2 (Debian 15.2-1.pgdg110+1)"> - <tables> - <table name="terminal" remarks="" schema="public" type="TABLE"> - <column autoUpdated="true" defaultValue="null" digits="0" id="0" name="id" nullable="false" remarks="" size="19" type="int8" typeCode="-5"> - <child column="terminal_id" foreignKey="withdrawal_terminal_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="withdrawal"/> - </column> - <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="access_token" nullable="true" remarks="" size="2147483647" type="bytea" typeCode="-2"/> - <column autoUpdated="false" defaultValue="true" digits="0" id="2" name="active" nullable="true" remarks="" size="1" type="bool" typeCode="-7"/> - <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="remarks" nullable="true" remarks="" size="255" type="varchar" typeCode="12"/> - <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="provider_id" nullable="false" remarks="" size="19" type="int8" typeCode="-5"> - <parent column="id" foreignKey="terminal_provider_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="terminal_provider"/> - </column> - <primaryKey column="id" sequenceNumberInPK="1"/> - <index name="terminal_pkey" unique="true"> - <column ascending="true" name="id"/> - </index> - <checkConstraint constraint="((length(access_token) = 32))" name="terminal_access_token_check"/> - </table> - <table name="terminal_provider" remarks="" schema="public" type="TABLE"> - <column autoUpdated="true" defaultValue="null" digits="0" id="0" name="id" nullable="false" remarks="" size="19" type="int8" typeCode="-5"> - <child column="provider_id" foreignKey="terminal_provider_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="terminal"/> - </column> - <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="name" nullable="true" remarks="" size="50" type="varchar" typeCode="12"/> - <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="remarks" nullable="true" remarks="" size="255" type="varchar" typeCode="12"/> - <primaryKey column="id" sequenceNumberInPK="1"/> - <index name="terminal_provider_pkey" unique="true"> - <column ascending="true" name="id"/> - </index> - </table> - <table name="withdrawal" remarks="" schema="public" type="TABLE"> - <column autoUpdated="false" defaultValue="null" digits="0" id="0" name="withdrawal_id" nullable="false" remarks="" size="2147483647" type="bytea" typeCode="-2"/> - <column autoUpdated="false" defaultValue="null" digits="0" id="1" name="reserve_pub_key" nullable="true" remarks="" size="2147483647" type="bytea" typeCode="-2"/> - <column autoUpdated="false" defaultValue="null" digits="0" id="2" name="registration_ts" nullable="true" remarks="" size="19" type="int8" typeCode="-5"/> - <column autoUpdated="false" defaultValue="null" digits="0" id="3" name="amount" nullable="true" remarks="" size="50" type="varchar" typeCode="12"/> - <column autoUpdated="false" defaultValue="null" digits="0" id="4" name="withdrawal_status" nullable="false" remarks="" size="2147483647" type="withdrawal_operation_status" typeCode="12"/> - <column autoUpdated="false" defaultValue="null" digits="0" id="5" name="terminal_id" nullable="false" remarks="" size="19" type="int8" typeCode="-5"> - <parent column="id" foreignKey="withdrawal_terminal_id_fkey" implied="false" onDeleteCascade="false" schema="public" table="terminal"/> - </column> - <primaryKey column="withdrawal_id" sequenceNumberInPK="1"/> - <index name="withdrawal_pkey" unique="true"> - <column ascending="true" name="withdrawal_id"/> - </index> - <checkConstraint constraint="((length(reserve_pub_key) = 32))" name="withdrawal_reserve_pub_key_check"/> - <checkConstraint constraint="((length(withdrawal_id) = 32))" name="withdrawal_withdrawal_id_check"/> - </table> - </tables> -</database> diff --git a/schemaspy/nonce2ecash-erd/relationships.html b/schemaspy/nonce2ecash-erd/relationships.html @@ -1,164 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="bower/html5shiv/html5shiv.min.js"></script> - <script src="bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>All Relationships</h1> - </section> - <!-- Main content --> - <section class="content"> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-code-fork"></i> - <h3 class="box-title">Diagrams</h3> - </div> - <div class="box-body"> - <div class="nav-tabs-custom"> - <!-- Tabs within a box --> - <h5>By default only columns that are primary keys, foreign keys or indexes are shown.</h5> - <ul class="nav nav-tabs pull-left ui-sortable-handle"> - <li class="active"><a href="#compactDegreeImg-chart" data-toggle="tab" aria-expanded="true">Compact</a></li> - <li class=""><a href="#largeDegreeImg-chart" data-toggle="tab" aria-expanded="true">Large</a></li> - </ul> - <div class="tab-content no-padding"> - <div class="chart tab-pane active" id="compactDegreeImg-chart" style="position: relative; overflow-x:auto;"> - <map id="compactRelationshipsDiagram" name="compactRelationshipsDiagram"> -<area shape="rect" id="node1" href="tables/terminal.html" target="_top" title="terminal" alt="" coords="293,35,461,181"> -<area shape="rect" id="node2" href="tables/terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,64,249,181"> -<area shape="rect" id="node3" href="tables/withdrawal.html" target="_top" title="withdrawal" alt="" coords="505,5,719,152"> -</map> - <a name='diagram'><img id="compactDegreeImg" src="diagrams/summary/relationships.real.compact.png" usemap="#compactRelationshipsDiagram" class="diagram" border="0" align="left"></a> - </div> - <div class="chart tab-pane " id="largeDegreeImg-chart" style="position: relative; overflow-x:auto;"> - <map id="largeRelationshipsDiagram" name="largeRelationshipsDiagram"> -<area shape="rect" id="node1" href="tables/terminal.html" target="_top" title="terminal" alt="" coords="293,152,461,363"> -<area shape="rect" id="node2" href="tables/terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,269,249,421"> -<area shape="rect" id="node3" href="tables/withdrawal.html" target="_top" title="withdrawal" alt="" coords="505,5,719,245"> -</map> - <a name='diagram'><img id="largeDegreeImg" src="diagrams/summary/relationships.real.large.png" usemap="#largeRelationshipsDiagram" class="diagram" border="0" align="left"></a> - </div> - </div> - </div> - </div><!-- /.box-body --> - </div> - </section> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="bower/pdfmake/pdfmake.min.js"></script> - <script src="bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="bower/codemirror/codemirror.js"></script> - <script src="bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="bower/admin-lte/dist/js/app.min.js"></script> - <script src="relationships.js"></script> - <script src="schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/routines.html b/schemaspy/nonce2ecash-erd/routines.html @@ -1,164 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="bower/html5shiv/html5shiv.min.js"></script> - <script src="bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>Routines</h1> - </section> - <!-- Main content --> - <section class="content"> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-file-code-o" aria-hidden="true"></i> - <h3 class="box-title">Routines</h3> - </div> - <div class="box-body"> - <table - id="routine_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="50" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Name</th> - <th>Type</th> - <th>Language</th> - <th>Deterministic</th> - <th>Return Type</th> - <th>Security Restriction</th> - <th title='Comments' class="toggle"><span>Comments</span></th> - </tr> - </thead> - <tbody> - </tbody> - </table> - </div> - </div> - </section> - <script> - var config = { - pagination: true - } - </script> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="bower/pdfmake/pdfmake.min.js"></script> - <script src="bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="bower/codemirror/codemirror.js"></script> - <script src="bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="bower/admin-lte/dist/js/app.min.js"></script> - <script src="routines.js"></script> - <script src="schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/tables/terminal.html b/schemaspy/nonce2ecash-erd/tables/terminal.html @@ -1,361 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>terminal - postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="../favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="../bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="../bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="../bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="../bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="../bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="../bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='../fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='../fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="../bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="../bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="../bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="../schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="../bower/html5shiv/html5shiv.min.js"></script> - <script src="../bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="../index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="../index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="../columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="../constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="../relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="../orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="../anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="../routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>terminal</h1><p><span id="recordNumber">-1</span> rows</p><br /> - </section> - <!-- Main content --> - <section class="content"> - <div class="box box-primary"> - <div class="box-header with-border"> - <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> - <h3 id="Columns" class="box-title">Columns</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="standard_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Column</th> - <th>Type</th> - <th>Size</th> - <th title='Are nulls allowed?'>Nulls</th> - <th title='Is column automatically updated?'>Auto</th> - <th title='Default value'>Default</th> - <th title='Columns in tables that reference this column'>Children</th> - <th title='Columns in tables that are referenced by this column'>Parents</th> - <th title='Comments' class="toggle"><span>Comments</span></th> - </tr> - </thead> - <tbody> - <tr> - <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="id">id</span></td> - <td>int8</td> - <td>19</td> - <td title=''></td> - <td title='Automatically updated by the database'>√</td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - <tr> - <td title="withdrawal.terminal_id references terminal.id via withdrawal_terminal_id_fkey"><a href='withdrawal.html'>withdrawal</a><span class='relatedKey'>.terminal_id</span></td> - <td class="constraint detail">withdrawal_terminal_id_fkey</td> - <td class="constraint detail"><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>R</span></td> - </tr> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td><span id="access_token">access_token</span></td> - <td>bytea</td> - <td>2147483647</td> - <td title='nullable'>√</td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td><span id="active">active</span></td> - <td>bool</td> - <td>1</td> - <td title='nullable'>√</td> - <td title=''></td> - <td>true</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td><span id="remarks">remarks</span></td> - <td>varchar</td> - <td>255</td> - <td title='nullable'>√</td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td class='foreignKey' title='Foreign Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="provider_id">provider_id</span></td> - <td>int8</td> - <td>19</td> - <td title=''></td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - <tr> - <td title="terminal.provider_id references terminal_provider.id via terminal_provider_id_fkey"><a href='terminal_provider.html'>terminal_provider</a><span class='relatedKey'>.id</span></td> - <td class="constraint detail">terminal_provider_id_fkey</td> - <td class="constraint detail"><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>R</span></td> - </tr> - </table> - </td> - <td></td> - </tr> - </tbody> - </table> - </div> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-sitemap"></i> - <h3 id="Indexes" class="box-title">Indexes</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="indexes_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead> - <tr> - <th>Constraint Name</th> - <th>Type</th> - <th>Sort</th> - <th>Column(s)</th> - </tr> - </thead> - <tbody> - <tr> - <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey'></i> terminal_pkey</td> - <td>Primary key</td> - <td><span title='Ascending'>Asc</span></td> - <td>id</td> - </tr> - </tbody> - </table> - </div><!-- /.box-body --> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-sitemap"></i> - <h3 class="box-title">Check Constraints</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="check_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Constraint Name</th> - <th>Constraint</th> - </tr> - </thead> - <tbody> - <tr> - <td>terminal_access_token_check</td> - <td>((length(access_token) &#61; 32))</td> - </tr> - </tbody> - </table> - </div> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-code-fork"></i> - <h3 id="Relationships" class="box-title">Relationships</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <div class="nav-tabs-custom"><!-- Tabs within a box --> - <h5>Close relationships within degrees of separation</h5> - <ul class="nav nav-tabs pull-left ui-sortable-handle"> - <li class="active"><a href="#oneDegreeImg-chart" data-toggle="tab" aria-expanded="true">One</a></li> - </ul> - <div class="tab-content no-padding"> - <div class="chart tab-pane active" id="oneDegreeImg-chart" style="position: relative; overflow-x:auto;"> - <map id="oneDegreeRelationshipsDiagram" name="oneDegreeRelationshipsDiagram"> -<area shape="rect" id="node1" href="terminal.html" target="_top" title="terminal" alt="" coords="293,32,620,248"> -<area shape="rect" id="node2" href="terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,152,249,269"> -<area shape="rect" id="node3" href="withdrawal.html" target="_top" title="withdrawal" alt="" coords="664,5,877,152"> -</map> - <a name='diagram'><img id="oneDegreeImg" src="../diagrams/tables/terminal.1degree.png" usemap="#oneDegreeRelationshipsDiagram" class="diagram" border="0" align="left"></a> - </div> - </div> - </div> - </div><!-- /.box-body --> - </div> - </section> - <script> - var config = { - pagination: true - } - </script> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="../bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="../bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="../bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="../bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="../bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="../bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="../bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="../bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="../bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="../bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="../bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="../bower/pdfmake/pdfmake.min.js"></script> - <script src="../bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="../bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="../bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="../bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="../bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="../bower/codemirror/codemirror.js"></script> - <script src="../bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="../bower/admin-lte/dist/js/app.min.js"></script> - <script src="table.js"></script> - <script src="../schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/tables/terminal_provider.html b/schemaspy/nonce2ecash-erd/tables/terminal_provider.html @@ -1,298 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>terminal_provider - postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="../favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="../bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="../bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="../bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="../bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="../bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="../bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='../fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='../fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="../bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="../bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="../bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="../schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="../bower/html5shiv/html5shiv.min.js"></script> - <script src="../bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="../index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="../index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="../columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="../constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="../relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="../orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="../anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="../routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>terminal_provider</h1><p><span id="recordNumber">-1</span> rows</p><br /> - </section> - <!-- Main content --> - <section class="content"> - <div class="box box-primary"> - <div class="box-header with-border"> - <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> - <h3 id="Columns" class="box-title">Columns</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="standard_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Column</th> - <th>Type</th> - <th>Size</th> - <th title='Are nulls allowed?'>Nulls</th> - <th title='Is column automatically updated?'>Auto</th> - <th title='Default value'>Default</th> - <th title='Columns in tables that reference this column'>Children</th> - <th title='Columns in tables that are referenced by this column'>Parents</th> - <th title='Comments' class="toggle"><span>Comments</span></th> - </tr> - </thead> - <tbody> - <tr> - <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="id">id</span></td> - <td>int8</td> - <td>19</td> - <td title=''></td> - <td title='Automatically updated by the database'>√</td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - <tr> - <td title="terminal.provider_id references terminal_provider.id via terminal_provider_id_fkey"><a href='terminal.html'>terminal</a><span class='relatedKey'>.provider_id</span></td> - <td class="constraint detail">terminal_provider_id_fkey</td> - <td class="constraint detail"><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>R</span></td> - </tr> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td><span id="name">name</span></td> - <td>varchar</td> - <td>50</td> - <td title='nullable'>√</td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td><span id="remarks">remarks</span></td> - <td>varchar</td> - <td>255</td> - <td title='nullable'>√</td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - </tbody> - </table> - </div> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-sitemap"></i> - <h3 id="Indexes" class="box-title">Indexes</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="indexes_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead> - <tr> - <th>Constraint Name</th> - <th>Type</th> - <th>Sort</th> - <th>Column(s)</th> - </tr> - </thead> - <tbody> - <tr> - <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey'></i> terminal_provider_pkey</td> - <td>Primary key</td> - <td><span title='Ascending'>Asc</span></td> - <td>id</td> - </tr> - </tbody> - </table> - </div><!-- /.box-body --> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-code-fork"></i> - <h3 id="Relationships" class="box-title">Relationships</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <div class="nav-tabs-custom"><!-- Tabs within a box --> - <h5>Close relationships within degrees of separation</h5> - <ul class="nav nav-tabs pull-left ui-sortable-handle"> - <li class="active"><a href="#oneDegreeImg-chart" data-toggle="tab" aria-expanded="true">One</a></li> - <li class=""><a href="#twodegreesDegreeImg-chart" data-toggle="tab" aria-expanded="true">Two degrees</a></li> - </ul> - <div class="tab-content no-padding"> - <div class="chart tab-pane active" id="oneDegreeImg-chart" style="position: relative; overflow-x:auto;"> - <map id="oneDegreeRelationshipsDiagram" name="oneDegreeRelationshipsDiagram"> -<area shape="rect" id="node1" href="terminal.html" target="_top" title="terminal" alt="" coords="368,5,536,152"> -<area shape="rect" id="node2" href="terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,32,324,189"> -</map> - <a name='diagram'><img id="oneDegreeImg" src="../diagrams/tables/terminal_provider.1degree.png" usemap="#oneDegreeRelationshipsDiagram" class="diagram" border="0" align="left"></a> - </div> - <div class="chart tab-pane " id="twodegreesDegreeImg-chart" style="position: relative; overflow-x:auto;"> - <map id="twoDegreesRelationshipsDiagram" name="twoDegreesRelationshipsDiagram"> -<area shape="rect" id="node1" href="terminal.html" target="_top" title="terminal" alt="" coords="368,5,536,152"> -<area shape="rect" id="node2" href="terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,32,324,189"> -<area shape="rect" id="node3" href="withdrawal.html" target="_top" title="withdrawal" alt="" coords="580,8,764,96"> -</map> - <a name='diagram'><img id="twodegreesDegreeImg" src="../diagrams/tables/terminal_provider.2degrees.png" usemap="#twoDegreesRelationshipsDiagram" class="diagram" border="0" align="left"></a> - </div> - </div> - </div> - </div><!-- /.box-body --> - </div> - </section> - <script> - var config = { - pagination: true - } - </script> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="../bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="../bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="../bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="../bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="../bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="../bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="../bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="../bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="../bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="../bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="../bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="../bower/pdfmake/pdfmake.min.js"></script> - <script src="../bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="../bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="../bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="../bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="../bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="../bower/codemirror/codemirror.js"></script> - <script src="../bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="../bower/admin-lte/dist/js/app.min.js"></script> - <script src="table.js"></script> - <script src="../schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/schemaspy/nonce2ecash-erd/tables/withdrawal.html b/schemaspy/nonce2ecash-erd/tables/withdrawal.html @@ -1,385 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>withdrawal - postgres.public</title> - <!-- Tell the browser to be responsive to screen width --> - <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> - <link rel="icon" type="image/png" sizes="16x16" href="../favicon.png"> - <!-- Bootstrap 3.3.5 --> - <link rel="stylesheet" href="../bower/admin-lte/bootstrap/css/bootstrap.min.css"> - <!-- Font Awesome --> - <link rel="stylesheet" href="../bower/font-awesome/css/font-awesome.min.css"> - <!-- Ionicons --> - <link rel="stylesheet" href="../bower/ionicons/css/ionicons.min.css"> - <!-- DataTables --> - <link rel="stylesheet" href="../bower/datatables.net-bs/css/dataTables.bootstrap.min.css"> - <link rel="stylesheet" href="../bower/datatables.net-buttons-bs/css/buttons.bootstrap.min.css"> - <!-- Code Mirror --> - <link rel="stylesheet" href="../bower/codemirror/codemirror.css"> - <!-- Fonts --> - <link href='../fonts/indieflower/indie-flower.css' rel='stylesheet' type='text/css'> - <link href='../fonts/source-sans-pro/source-sans-pro.css' rel='stylesheet' type='text/css'> - - <!-- Theme style --> - <link rel="stylesheet" href="../bower/admin-lte/dist/css/AdminLTE.min.css"> - <!-- Salvattore --> - <link rel="stylesheet" href="../bower/salvattore/salvattore.css"> - <!-- AdminLTE Skins. Choose a skin from the css/skins - folder instead of downloading all of them to reduce the load. --> - <link rel="stylesheet" href="../bower/admin-lte/dist/css/skins/_all-skins.min.css"> - <!-- SchemaSpy --> - <link rel="stylesheet" href="../schemaSpy.css"> - - <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> - <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> - <!--[if lt IE 9]> - <script src="../bower/html5shiv/html5shiv.min.js"></script> - <script src="../bower/respond/respond.min.js"></script> - <![endif]--> - </head> - <!-- ADD THE CLASS layout-top-nav TO REMOVE THE SIDEBAR. --> - <body class="hold-transition skin-blue layout-top-nav"> - <div class="wrapper"> - <header class="main-header"> - <nav class="navbar navbar-static-top"> - <div class="container"> - <div class="navbar-header"> - <a href="../index.html" class="navbar-brand"><b>postgres</b></a><span class="navbar-brand" style="padding-left: 0">.public</span> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse"><i class="fa fa-bars"></i></button> - </div> - - <!-- Collect the nav links, forms, and other content for toggling --> - <div class="collapse navbar-collapse pull-left" id="navbar-collapse"> - <ul class="nav navbar-nav"> - <li><a href="../index.html">Tables <span class="sr-only">(current)</span></a></li> - <li><a href="../columns.html" title="All of the columns in the schema">Columns</a></li> - <li><a href="../constraints.html" title="Useful for diagnosing error messages that just give constraint name or number">Constraints</a></li> - <li><a href="../relationships.html" title="Diagram of table relationships">Relationships</a></li> - <li><a href="../orphans.html" title="View of tables with neither parents nor children">Orphan&nbsp;Tables</a></li> - <li><a href="../anomalies.html" title="Things that might not be quite right">Anomalies</a></li> - <li><a href="../routines.html" title="Procedures and functions">Routines</a></li> - </ul> - </div> - <!-- /.navbar-collapse --> - <!-- Navbar Right Menu --> - </div> - <!-- /.container-fluid --> - </nav> - </header> - <!-- Main content --> - <!-- Full Width Column --> - <div class="content-wrapper"> - <!-- Content Header (Page header) --> - <section class="content-header"> - <h1>withdrawal</h1><p><span id="recordNumber">-1</span> rows</p><br /> - </section> - <!-- Main content --> - <section class="content"> - <div class="box box-primary"> - <div class="box-header with-border"> - <span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> - <h3 id="Columns" class="box-title">Columns</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="standard_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Column</th> - <th>Type</th> - <th>Size</th> - <th title='Are nulls allowed?'>Nulls</th> - <th title='Is column automatically updated?'>Auto</th> - <th title='Default value'>Default</th> - <th title='Columns in tables that reference this column'>Children</th> - <th title='Columns in tables that are referenced by this column'>Parents</th> - <th title='Comments' class="toggle"><span>Comments</span></th> - </tr> - </thead> - <tbody> - <tr> - <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="withdrawal_id">withdrawal_id</span></td> - <td>bytea</td> - <td>2147483647</td> - <td title=''></td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td><span id="reserve_pub_key">reserve_pub_key</span></td> - <td>bytea</td> - <td>2147483647</td> - <td title='nullable'>√</td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td><span id="registration_ts">registration_ts</span></td> - <td>int8</td> - <td>19</td> - <td title='nullable'>√</td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td><span id="amount">amount</span></td> - <td>varchar</td> - <td>50</td> - <td title='nullable'>√</td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td><span id="withdrawal_status">withdrawal_status</span></td> - <td>withdrawal_operation_status</td> - <td>2147483647</td> - <td title=''></td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td></td> - </tr> - <tr> - <td class='foreignKey' title='Foreign Key'><i class='icon ion-key iconkey' style='padding-left: 5px;'></i><span id="terminal_id">terminal_id</span></td> - <td>int8</td> - <td>19</td> - <td title=''></td> - <td title=''></td> - <td>null</td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - </table> - </td> - <td> - <table border='0' cellspacing='0' cellpadding='0'> - <tr> - <td title="withdrawal.terminal_id references terminal.id via withdrawal_terminal_id_fkey"><a href='terminal.html'>terminal</a><span class='relatedKey'>.id</span></td> - <td class="constraint detail">withdrawal_terminal_id_fkey</td> - <td class="constraint detail"><span title='Restrict delete:&#10;Parent cannot be deleted if children exist'>R</span></td> - </tr> - </table> - </td> - <td></td> - </tr> - </tbody> - </table> - </div> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-sitemap"></i> - <h3 id="Indexes" class="box-title">Indexes</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="indexes_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead> - <tr> - <th>Constraint Name</th> - <th>Type</th> - <th>Sort</th> - <th>Column(s)</th> - </tr> - </thead> - <tbody> - <tr> - <td class='primaryKey' title='Primary Key'><i class='icon ion-key iconkey'></i> withdrawal_pkey</td> - <td>Primary key</td> - <td><span title='Ascending'>Asc</span></td> - <td>withdrawal_id</td> - </tr> - </tbody> - </table> - </div><!-- /.box-body --> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-sitemap"></i> - <h3 class="box-title">Check Constraints</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <table - id="check_table" - class="table table-bordered table-striped dataTable" - role="grid" - data-paging="true" - data-page-length="10" - data-length-change="false"> - <thead align='left'> - <tr> - <th>Constraint Name</th> - <th>Constraint</th> - </tr> - </thead> - <tbody> - <tr> - <td>withdrawal_withdrawal_id_check</td> - <td>((length(withdrawal_id) &#61; 32))</td> - </tr> - <tr> - <td>withdrawal_reserve_pub_key_check</td> - <td>((length(reserve_pub_key) &#61; 32))</td> - </tr> - </tbody> - </table> - </div> - </div> - <div class="box box-primary"> - <div class="box-header with-border"> - <i class="fa fa-code-fork"></i> - <h3 id="Relationships" class="box-title">Relationships</h3> - <div class="box-tools pull-right"> - <button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button> - <button type="button" class="btn btn-box-tool" data-widget="remove"><i class="fa fa-times"></i></button> - </div> - </div> - <div class="box-body"> - <div class="nav-tabs-custom"><!-- Tabs within a box --> - <h5>Close relationships within degrees of separation</h5> - <ul class="nav nav-tabs pull-left ui-sortable-handle"> - <li class="active"><a href="#oneDegreeImg-chart" data-toggle="tab" aria-expanded="true">One</a></li> - <li class=""><a href="#twodegreesDegreeImg-chart" data-toggle="tab" aria-expanded="true">Two degrees</a></li> - </ul> - <div class="tab-content no-padding"> - <div class="chart tab-pane active" id="oneDegreeImg-chart" style="position: relative; overflow-x:auto;"> - <map id="oneDegreeRelationshipsDiagram" name="oneDegreeRelationshipsDiagram"> -<area shape="rect" id="node1" href="withdrawal.html" target="_top" title="withdrawal" alt="" coords="217,5,757,251"> -<area shape="rect" id="node2" href="terminal.html" target="_top" title="terminal" alt="" coords="5,155,173,301"> -</map> - <a name='diagram'><img id="oneDegreeImg" src="../diagrams/tables/withdrawal.1degree.png" usemap="#oneDegreeRelationshipsDiagram" class="diagram" border="0" align="left"></a> - </div> - <div class="chart tab-pane " id="twodegreesDegreeImg-chart" style="position: relative; overflow-x:auto;"> - <map id="twoDegreesRelationshipsDiagram" name="twoDegreesRelationshipsDiagram"> -<area shape="rect" id="node1" href="terminal.html" target="_top" title="terminal" alt="" coords="293,155,461,301"> -<area shape="rect" id="node2" href="terminal_provider.html" target="_top" title="terminal_provider" alt="" coords="5,187,249,275"> -<area shape="rect" id="node3" href="withdrawal.html" target="_top" title="withdrawal" alt="" coords="505,5,1045,251"> -</map> - <a name='diagram'><img id="twodegreesDegreeImg" src="../diagrams/tables/withdrawal.2degrees.png" usemap="#twoDegreesRelationshipsDiagram" class="diagram" border="0" align="left"></a> - </div> - </div> - </div> - </div><!-- /.box-body --> - </div> - </section> - <script> - var config = { - pagination: true - } - </script> - </div> - <!-- /.content-wrapper --> - <footer class="main-footer"> - <div> - <div class="pull-right hidden-xs"> - <a href="https://github.com/schemaspy/schemaspy" title="GitHub for SchemaSpy"><i class="fa fa-github-square fa-2x"></i></a> - <a href="http://stackoverflow.com/questions/tagged/schemaspy" title="StackOverflow for SchemaSpy"><i class="fa fa-stack-overflow fa-2x"></i></a> - </div> - <strong>Generated by <a href="http://schemaspy.org/" class="logo-text"><i class="fa fa-database"></i> SchemaSpy 6.2.4</a></strong> - </div> - <!-- /.container --> - </footer> - </div> - <!-- ./wrapper --> - - <!-- jQuery 2.2.3 --> - <script src="../bower/admin-lte/plugins/jQuery/jquery-2.2.3.min.js"></script> - <script src="../bower/admin-lte/plugins/jQueryUI/jquery-ui.min.js"></script> - <!-- Bootstrap 3.3.5 --> - <script src="../bower/admin-lte/bootstrap/js/bootstrap.min.js"></script> - <!-- DataTables --> - <script src="../bower/datatables.net/jquery.dataTables.min.js"></script> - <script src="../bower/datatables.net-bs/js/dataTables.bootstrap.min.js"></script> - <script src="../bower/datatables.net-buttons/dataTables.buttons.min.js"></script> - <script src="../bower/datatables.net-buttons-bs/js/buttons.bootstrap.min.js"></script> - <script src="../bower/datatables.net-buttons/buttons.html5.min.js"></script> - <script src="../bower/datatables.net-buttons/buttons.print.min.js"></script> - <script src="../bower/datatables.net-buttons/buttons.colVis.min.js"></script> - <!-- SheetJS --> - <script src="../bower/js-xlsx/xlsx.full.min.js"></script> - <!-- pdfmake --> - <script src="../bower/pdfmake/pdfmake.min.js"></script> - <script src="../bower/pdfmake/vfs_fonts.js"></script> - <!-- SlimScroll --> - <script src="../bower/admin-lte/plugins/slimScroll/jquery.slimscroll.min.js"></script> - <!-- FastClick --> - <script src="../bower/admin-lte/plugins/fastclick/fastclick.js"></script> - <!-- Salvattore --> - <script src="../bower/salvattore/salvattore.min.js"></script> - <!-- AnchorJS --> - <script src="../bower/anchor-js/anchor.min.js"></script> - <!-- CodeMirror --> - <script src="../bower/codemirror/codemirror.js"></script> - <script src="../bower/codemirror/sql.js"></script> - <!-- AdminLTE App --> - <script src="../bower/admin-lte/dist/js/app.min.js"></script> - <script src="table.js"></script> - <script src="../schemaSpy.js"></script> - </body> -</html> -\ No newline at end of file diff --git a/specs/withdrawal-op-state-transition.plantuml b/specs/withdrawal-op-state-transition.plantuml @@ -0,0 +1,10 @@ +@startuml + +[*] --> Pending +Pending --> Selected : C2ECWithdrawalRegistration +Selected --> Confirmed : Attestation successful +Selected --> Aborted : Attestation not successful +Confirmed --> [*] +Aborted --> [*] + +@enduml