Activities of "theChrisMarsh"

We are looking for APB's advice on our software use case. Specifically the Host versus Tenant architecture.

We are building a product where a certain kind of user (let's call it a Doctor) has data and a user experience (workflows, UI screens) that is associated with just them, using their own personal "Account". For example, their personal claims, or doctors, or health records. This data and user experience is independent of what the Host user accounts would experience.

We then have an Employer that has their own set of data, and multiple users (that may or may not also be Doctors). The tenant structure makes perfect sense for this set of data and functionality, but (here is the main requirement) a Doctor could be associated with an Employer tenant or could be unassociated with any tenant.

Where we need advice is how to use the ABP framework (host vs tenant) for separating the 3 "products":

  • Host Users for the Host need to be able to access the "Host" application (managing tenants, language strings, audit logs, etc).
  • Doctors need to access a "Doctors" application (updating their personal information, choosing which "Employer" they want to associate themselves with if any, etc).
  • Employer Users need to access a tenant-level "Employer" application (updating their company information, approving which "Doctors" can work within their tenant, etc).

How should we architect this solution? How do we use the tenant and base class concepts for separating these out and creating 3 different "products".

Also, it seems there is a defect in the build of the files in the ng.zip source code for version 2.3.3, these are the related files, below that the error.

postcss.config.js
autoprefixer: {
    cascade: false,
},
package.json
  "dependencies": {
    "sass": "^1.57.1",
    "bootstrap": "5.2.1",
    "perfect-scrollbar": "^1.5.5",
    "execa": "~5.1.1",
    "postcss": "^8.4.14",
    "postcss-cli": "^10.0.0",
    "rtlcss": "^3.5.0"
  }

After running yarn build

Error: Loading PostCSS Plugin failed: Cannot find module 'autoprefixer'
Require stack:
- C:\Development\lepton-x\source-scss\ng\postcss.config.js

(@C:\Development\lepton-x\source-scss\ng\postcss.config.js)
    at load (C:\Development\lepton-x\source-scss\ng\node_modules\postcss-load-config\src\plugins.js:28:11)
    at C:\Development\lepton-x\source-scss\ng\node_modules\postcss-load-config\src\plugins.js:53:16
    at Array.map (<anonymous>)
    at plugins (C:\Development\lepton-x\source-scss\ng\node_modules\postcss-load-config\src\plugins.js:52:8)
    at processResult (C:\Development\lepton-x\source-scss\ng\node_modules\postcss-load-config\src\index.js:38:14)
    at C:\Development\lepton-x\source-scss\ng\node_modules\postcss-load-config\src\index.js:162:14
    at async Promise.all (index 0)

That is not really that helpful. I already know how to get the source code. I am only trying to modify the Theme and Layout for Angular. My questions are:

  1. What files and folders from the Volo.Abp.LeptonXTheme.Pro source code download are needed for Angular only?
  2. Is it only the files and folders in ng.zip?
  3. What about the files and folders in the /angular/projects folder (which has subfolders lepton-x, lepton-x-abp-core, lepton-x-core, volo-lepton-x folder)
    • Where is the documentation on what each of those projects are for (the README.md file is just marketing stuff and not at all useful).

Your instructions appear to be for MVC. I have done that, but there is way more in that source than needs to go into the angular project.

Can you tell me what subfolders (I think some may be in the source-scss/ng.zip file) are needed for Angular ONLY?

Also, why does the add-package --with-source-code work for the Basic theme, but not the LeptonX theme?

  • ABP Framework version: v7.3.3
  • UI Type: Angular
  • Database System: EF Core

I have a commercial Business license with access to source code. How do I install the LeptonX theme source code into my angular site as a project using the CLI? I have tried:

 > abp add-package @volosoft/abp.ng.theme.lepton-x --with-source-code 
 ABP CLI 7.3.3
 '@volosoft/abp.ng.theme.lepton-x' npm package could not be found!

This does work for the Basic theme, but I need the LeptonX theme:

 > abp add-package @abp/ng.theme.basic --with-source-code 
 ABP CLI 7.3.3
 '@volosoft/abp.ng.theme.lepton-x' npm package could not be found!

We are looking for architecture advice given the ABP Host / tenant model.

Example Business Model Scenario

A car dealership SaaS Application that helps them run their business (payroll, inventory of "Vehicles", sales, taxes, contracts, repair shop, etc). This would be implemented in the multi-tenancy model, with different editions, each tenant getting their own database, etc.

In addition, a Shared Marketplace where all the inventory of "Vehicles" from each tenant is merged together and presented together to the public.

Architecture Questions

How would you recommend we implement Entities (or Aggregate Roots) for Vehicles?

Would Vehicles be Non-Multi-Tenant (part of the host)? If so:

  • How would we link those back to tenants?
  • How would we secure them so they could only be modified by the owning tenant?

Should "Vehicles" implement the IMultiTenant interface? If so:

  • How would we search across all tenant's inventory of "Vehicles" at the same time in a performant way?

This is worth fixing (it took me quite a while to figure out).

The CLI requires you to login using your ABP customer credentials so it can see what license level you have and integrates your license code into the generated source code (sometimes) ...

  • The CLI command abp new creates a project with your license key referenced in appsettings.json.
  • However, the CLI command abp get-source does not put your license key in appsettings.json.

This is not obvious when running Volo.Abp.LeptonTheme.Demo in IIS Express. It took a lot of searching around to finally find log messages that said "License code not found! Ensure that your appsettings.json has "AbpLicenseCode" key with your license code."

IIS Express (Google Chrome):

Okay. I do see those files there now. However, the Volo.Abp.LeptonTheme.Demo project is not building in 3.2.1. It references a project that was not part of the source code download ...

    <PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo" Version="3.2.1" />

This project was not present in any of the source that I can find.

These instructions do not appear to be what I am looking for. I am licensed for the ABP Commerical Business (which includes the source code of all themes).

When I follow the instructions you provided, I do not seem to get the source code for the themes, just the built files.

For example: If I wanted to change the default font for each one of the 6 themes. I would need to change the source and then build (and minify) the new CSS files. I ran this command from the CLI:

abp get-source Volo.LeptonTheme

I cannot find source files anywhere in the files output. The only thing I can find is a folder in the output which contains the 6 theme files already minified. I am looking for the source code for these files.

\angular\theme-lepton\dist\global\styles\
  - leption1.min.css
  - leption2.min.css
  - leption3.min.css
  - leption4.min.css
  - leption5.min.css
  - leption6.min.css

I also was getting this BusinessException: Tenant Not Found error. Clearing the cookies solved it for me as well.

Showing 1 to 10 of 11 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11