├── frontend-vue ├── .prettierrc.json ├── .npmrc ├── e2e │ ├── setup │ │ └── Dockerfile │ ├── util │ │ └── test.utils.ts │ ├── README.md │ ├── run.sh │ └── pages │ │ ├── domain-details.page.ts │ │ └── bounded-context-canvas.page.ts ├── src │ ├── types │ │ ├── activeFilter.ts │ │ ├── namespace-templates.ts │ │ ├── domain.ts │ │ ├── namespace.ts │ │ ├── event-log.ts │ │ ├── collaboration.ts │ │ └── boundedContext.ts │ ├── assets │ │ └── logo │ │ │ ├── dark │ │ │ ├── dark.png │ │ │ ├── logotype.png │ │ │ └── with_name.png │ │ │ └── light │ │ │ ├── light.png │ │ │ ├── logotype.png │ │ │ └── with_name.png │ ├── components │ │ ├── bounded-context │ │ │ ├── canvas │ │ │ │ ├── layouts │ │ │ │ │ └── version.ts │ │ │ │ ├── BCCInboundConnections.vue │ │ │ │ ├── BCCOutboundConnections.vue │ │ │ │ ├── ContextureBoundedContextCanvasElement.vue │ │ │ │ ├── ContextureEditBoundedContextForm.vue │ │ │ │ └── BCCDescription.vue │ │ │ ├── ContextureBoundedContextCardGrid.vue │ │ │ ├── namespace │ │ │ │ ├── NamespaceLabelAutocomplete.vue │ │ │ │ └── NamespaceValueAutocomplete.vue │ │ │ └── ContextureMoveBoundedContextModal.vue │ │ ├── core │ │ │ ├── header │ │ │ │ ├── ContextureHeroHeader.vue │ │ │ │ ├── ContextureBlankHeader.vue │ │ │ │ └── StructurizerDiscloser.vue │ │ │ ├── auth │ │ │ │ ├── SignInCallback.vue │ │ │ │ └── SignIn.vue │ │ │ ├── ContextureEntityNotFound.vue │ │ │ ├── change-short-name │ │ │ │ ├── ContextureChangeShortName.vue │ │ │ │ └── changeShortNameValidationSchema.ts │ │ │ ├── navbar │ │ │ │ └── ContextureNavbar.vue │ │ │ └── breadcrumbs │ │ │ │ ├── breadcrumbs.ts │ │ │ │ └── breadcrumbs.spec.ts │ │ ├── primitives │ │ │ ├── dynamic-form │ │ │ │ ├── dynamicForm.ts │ │ │ │ └── ContextureDynamicForm.vue │ │ │ ├── button │ │ │ │ ├── ContextureIconButton.vue │ │ │ │ ├── util │ │ │ │ │ ├── useActionWithLoading.ts │ │ │ │ │ └── LoadingWrapper.vue │ │ │ │ ├── ContextureTextLinkButton.vue │ │ │ │ ├── ContextureWhiteButton.vue │ │ │ │ ├── ContexturePrimaryButton.vue │ │ │ │ ├── ContextureSecondaryButton.vue │ │ │ │ └── ContextureRoundedButton.vue │ │ │ ├── alert │ │ │ │ ├── ContextureHelpfulErrorAlert.vue │ │ │ │ └── ContextureAlert.vue │ │ │ ├── list │ │ │ │ └── ContextureListItem.vue │ │ │ ├── modal │ │ │ │ ├── ContextureConfirmationModal.vue │ │ │ │ └── ContextureModal.vue │ │ │ ├── switch │ │ │ │ └── ContextureSwitch.vue │ │ │ ├── accordion │ │ │ │ └── ContextureAccordionItem.vue │ │ │ ├── input │ │ │ │ ├── ContextureSearch.vue │ │ │ │ ├── ContextureTextarea.vue │ │ │ │ └── ContextureInputText.vue │ │ │ ├── viewswitcher │ │ │ │ └── ContextureViewSwitcher.vue │ │ │ ├── popover │ │ │ │ └── ContexturePopover.vue │ │ │ ├── radio │ │ │ │ ├── ContextureRadioGroup.vue │ │ │ │ └── ContextureRadio.vue │ │ │ ├── tooltip │ │ │ │ └── ContextureTooltip.vue │ │ │ ├── checkbox │ │ │ │ └── ContextureCheckbox.vue │ │ │ ├── badge │ │ │ │ └── ContextureBadge.vue │ │ │ └── collapsable │ │ │ │ └── ContextureCollapsable.vue │ │ ├── event-log │ │ │ ├── PropertyValue.vue │ │ │ ├── ValueDiff.vue │ │ │ ├── FormattedDate.vue │ │ │ └── EventLogModal.vue │ │ ├── README.md │ │ ├── domains │ │ │ ├── ContextureDomainCardGrid.vue │ │ │ ├── ContextureDeleteDomainModalConfirmation.vue │ │ │ └── details │ │ │ │ └── ContextureEditDomainForm.vue │ │ └── analytics │ │ │ ├── ContextureActiveFilters.vue │ │ │ ├── BubbleView.vue │ │ │ └── ContextureAddFilter.vue │ ├── core │ │ ├── isLink.ts │ │ ├── index.ts │ │ ├── sort.ts │ │ ├── uniqueId.ts │ │ ├── uniqueId.spec.ts │ │ ├── validationRules.ts │ │ ├── arrayContentEqual.ts │ │ ├── isLink.spec.ts │ │ ├── arraysEqual.spec.ts │ │ ├── filter.ts │ │ ├── validation.ts │ │ └── filter.spec.ts │ ├── stores │ │ ├── eventLogs.ts │ │ ├── namespace-templates.ts │ │ ├── confirmationModal.ts │ │ └── collaborations.ts │ ├── composables │ │ ├── date-utls.ts │ │ └── useFetch.ts │ ├── pages │ │ ├── bounded-context │ │ │ └── BoundedContextNamespaces.vue │ │ └── domains │ │ │ └── Domains.vue │ ├── App.vue │ ├── styles │ │ └── main.css │ ├── main.ts │ ├── routes.ts │ ├── constants │ │ └── domainRoles.ts │ └── visualisations │ │ └── DataAccess.js ├── public │ ├── favicon │ │ ├── favicon.ico │ │ ├── apple-touch-icon.png │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── site.webmanifest │ │ └── favicon.svg │ └── fonts │ │ └── Figtree │ │ ├── Figtree-Bold.woff2 │ │ ├── Figtree-Light.woff2 │ │ └── Figtree-Regular.woff2 ├── postcss.config.js ├── .gitignore ├── shims.d.ts ├── .vscode │ ├── extensions.json │ └── settings.json ├── tsconfig.json ├── index.html ├── .env ├── README.md ├── vite.config.ts ├── package.json ├── playwright.config.ts ├── .eslintrc.cjs └── components.d.ts ├── Sketch.jpg ├── entrypoint.sh ├── backend ├── Contexture.Api │ ├── wwwroot │ │ └── index.html │ ├── appsettings.json │ ├── appsettings.Development.json │ ├── Dockerfile │ ├── Apis │ │ └── EventLog.fs │ ├── Infrastructure │ │ └── Projections.fs │ ├── Properties │ │ └── launchSettings.json │ ├── AllEvents.fs │ ├── Configuration.fs │ ├── Utils.fs │ ├── Views │ │ └── Namespaces.fs │ └── Contexture.Api.fsproj ├── Contexture.Api.Tests │ ├── Assertions.fs │ ├── Tests.fs │ ├── ReadModels.Tests.fs │ ├── SqlServerFixture.fs │ ├── EnvironmentSimulation.fs │ └── Contexture.Api.Tests.fsproj ├── Contexture.sln └── README.md ├── example ├── DomainOverview.png ├── CanvasV3Overview.png ├── CanvasV4Overview.png └── DomainsOverview.png ├── docker-compose.yml ├── .github └── workflows │ ├── ci-backend.yml │ ├── CI-frontend.yml │ ├── deploy-image.yml │ ├── CI-frontend-e2e.yml │ └── deploy-azure.yml ├── LICENSE ├── Makefile └── concept.md /frontend-vue/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120 3 | } 4 | -------------------------------------------------------------------------------- /Sketch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/Sketch.jpg -------------------------------------------------------------------------------- /frontend-vue/.npmrc: -------------------------------------------------------------------------------- 1 | strict-peer-dependencies=false 2 | legacy-peer-deps=true 3 | -------------------------------------------------------------------------------- /entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | update-ca-certificates 3 | dotnet Contexture.Api.App.dll -------------------------------------------------------------------------------- /backend/Contexture.Api/wwwroot/index.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | -------------------------------------------------------------------------------- /example/DomainOverview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/example/DomainOverview.png -------------------------------------------------------------------------------- /example/CanvasV3Overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/example/CanvasV3Overview.png -------------------------------------------------------------------------------- /example/CanvasV4Overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/example/CanvasV4Overview.png -------------------------------------------------------------------------------- /example/DomainsOverview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/example/DomainsOverview.png -------------------------------------------------------------------------------- /frontend-vue/e2e/setup/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM softwarepark/contexture:latest 2 | COPY ./test_data/db.json /data/db.json -------------------------------------------------------------------------------- /frontend-vue/src/types/activeFilter.ts: -------------------------------------------------------------------------------- 1 | export interface ActiveFilter { 2 | key: string; 3 | value: string; 4 | } 5 | -------------------------------------------------------------------------------- /frontend-vue/public/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/public/favicon/favicon.ico -------------------------------------------------------------------------------- /frontend-vue/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /frontend-vue/src/assets/logo/dark/dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/src/assets/logo/dark/dark.png -------------------------------------------------------------------------------- /frontend-vue/src/assets/logo/light/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/src/assets/logo/light/light.png -------------------------------------------------------------------------------- /frontend-vue/e2e/util/test.utils.ts: -------------------------------------------------------------------------------- 1 | export function randomString() { 2 | return Math.random().toString(36).substring(2, 7).toString(); 3 | } 4 | -------------------------------------------------------------------------------- /frontend-vue/src/assets/logo/dark/logotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/src/assets/logo/dark/logotype.png -------------------------------------------------------------------------------- /frontend-vue/public/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/public/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /frontend-vue/src/assets/logo/dark/with_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/src/assets/logo/dark/with_name.png -------------------------------------------------------------------------------- /frontend-vue/src/assets/logo/light/logotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/src/assets/logo/light/logotype.png -------------------------------------------------------------------------------- /frontend-vue/src/assets/logo/light/with_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/src/assets/logo/light/with_name.png -------------------------------------------------------------------------------- /frontend-vue/src/components/bounded-context/canvas/layouts/version.ts: -------------------------------------------------------------------------------- 1 | export enum BoundedContextVersion { 2 | V3 = "V3", 3 | V4 = "V4", 4 | } 5 | -------------------------------------------------------------------------------- /frontend-vue/public/favicon/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/public/favicon/android-chrome-192x192.png -------------------------------------------------------------------------------- /frontend-vue/public/favicon/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/public/favicon/android-chrome-512x512.png -------------------------------------------------------------------------------- /frontend-vue/public/fonts/Figtree/Figtree-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/public/fonts/Figtree/Figtree-Bold.woff2 -------------------------------------------------------------------------------- /frontend-vue/public/fonts/Figtree/Figtree-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/public/fonts/Figtree/Figtree-Light.woff2 -------------------------------------------------------------------------------- /frontend-vue/public/fonts/Figtree/Figtree-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/trustbit/Contexture/HEAD/frontend-vue/public/fonts/Figtree/Figtree-Regular.woff2 -------------------------------------------------------------------------------- /frontend-vue/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.local 3 | dist 4 | dist-ssr 5 | node_modules 6 | .idea/ 7 | *.log 8 | /test-results/ 9 | /playwright-report/ 10 | /playwright/.cache/ 11 | -------------------------------------------------------------------------------- /frontend-vue/shims.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.vue" { 2 | import type { DefineComponent } from "vue"; 3 | const component: DefineComponent<{}, {}, any>; 4 | export default component; 5 | } 6 | -------------------------------------------------------------------------------- /frontend-vue/src/components/core/header/ContextureHeroHeader.vue: -------------------------------------------------------------------------------- 1 | 2 |Signing you in
4 |4 | {{ friendlyMessage }} 5 |
6 |7 | {{ error }} 8 |
9 |10 | {{ response }} 11 |
12 |9 | {{ body }} 10 |
11 |{{ description }}
29 |