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":
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.
autoprefixer: {
cascade: false,
},
"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:
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?
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.
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.
How would you recommend we implement Entities (or Aggregate Roots) for Vehicles?
Would Vehicles be Non-Multi-Tenant (part of the host)? If so:
Should "Vehicles" implement the IMultiTenant interface? If so:
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) ...
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."
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.