Compare commits
10 Commits
7ffd8b39c7
...
310d0ac42d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
310d0ac42d | ||
|
|
ef9a8224a3 | ||
|
|
5f3a2a16b8 | ||
|
|
2099acd066 | ||
|
|
d4b20fae41 | ||
|
|
1d4199c450 | ||
|
|
31d4c4af55 | ||
|
|
fa7a755883 | ||
|
|
744f8a2926 | ||
|
|
829954d9a8 |
56
.drone.yml
56
.drone.yml
@@ -4,17 +4,9 @@ type: kubernetes
|
|||||||
name: build
|
name: build
|
||||||
|
|
||||||
clone:
|
clone:
|
||||||
disable: true
|
disable: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: git clone
|
|
||||||
image: drone/git
|
|
||||||
environment:
|
|
||||||
REPO_URL: http://gitea-server.gitea.svc.cluster.local:3000/mngomalab/sampleapi.git
|
|
||||||
commands:
|
|
||||||
- git clone $REPO_URL .
|
|
||||||
- git checkout $DRONE_COMMIT
|
|
||||||
|
|
||||||
- name: dotnet restore
|
- name: dotnet restore
|
||||||
image: mcr.microsoft.com/dotnet/sdk:8.0
|
image: mcr.microsoft.com/dotnet/sdk:8.0
|
||||||
commands:
|
commands:
|
||||||
@@ -43,14 +35,6 @@ clone:
|
|||||||
disable: true
|
disable: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: git clone
|
|
||||||
image: drone/git
|
|
||||||
environment:
|
|
||||||
REPO_URL: http://gitea-server.gitea.svc.cluster.local:3000/mngomalab/sampleapi.git
|
|
||||||
commands:
|
|
||||||
- git clone $REPO_URL .
|
|
||||||
- git checkout $DRONE_COMMIT
|
|
||||||
|
|
||||||
- name: dotnet publish
|
- name: dotnet publish
|
||||||
image: mcr.microsoft.com/dotnet/sdk:8.0
|
image: mcr.microsoft.com/dotnet/sdk:8.0
|
||||||
commands:
|
commands:
|
||||||
@@ -83,26 +67,20 @@ clone:
|
|||||||
disable: true
|
disable: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: git clone
|
- name: deploy via SSH
|
||||||
image: drone/git
|
image: appleboy/drone-ssh
|
||||||
environment:
|
|
||||||
REPO_URL: http://gitea-server.gitea.svc.cluster.local:3000/mngomalab/sampleapi.git
|
|
||||||
commands:
|
|
||||||
- git clone $REPO_URL .
|
|
||||||
- git checkout $DRONE_COMMIT
|
|
||||||
|
|
||||||
- name: ensure namespace
|
|
||||||
image: bitnami/kubectl:latest
|
|
||||||
commands:
|
|
||||||
- kubectl create namespace sampleapi --dry-run=client -o yaml | kubectl apply -f -
|
|
||||||
|
|
||||||
- name: deploy
|
|
||||||
image: danielgormly/drone-plugin-kube:0.0.1
|
|
||||||
settings:
|
settings:
|
||||||
template: ./manifests/deploy.yml
|
host: lead.mngoma.lab
|
||||||
namespace: sampleapi
|
username:
|
||||||
ca:
|
from_secret: host-username
|
||||||
from_secret: kube_ca_cert
|
password:
|
||||||
server: https://lead:6443
|
from_secret: host-password
|
||||||
token:
|
port: 22
|
||||||
from_secret: k8s-token
|
script:
|
||||||
|
- set -euo pipefail
|
||||||
|
- echo "Applying Kubernetes manifest via SSH..."
|
||||||
|
# Apply the manifest remotely via kubectl on the host
|
||||||
|
- ssh -o StrictHostKeyChecking=no $DRONE_REMOTE_USER@lead.mngoma.lab 'kubectl apply -f -' <<'EOF'
|
||||||
|
$(cat ./manifests/deploy.yml)
|
||||||
|
EOF
|
||||||
|
- echo "Manifest applied successfully."
|
||||||
|
|||||||
8
docker-compose.yml
Normal file
8
docker-compose.yml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
ports:
|
||||||
|
- "8080:8081"
|
||||||
65
flows.md
Normal file
65
flows.md
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
flowchart TD
|
||||||
|
%% Combined MVP + Future Features for Executive Slide
|
||||||
|
|
||||||
|
%% MVP Section
|
||||||
|
subgraph MVP["MVP Go-Live (Critical Path)"]
|
||||||
|
A[Define MVP Requirements & Roles] --> B[DB Schema: Polls, Users, Responses]
|
||||||
|
B --> C[Azure AD/B2C: Tenant + User Groups]
|
||||||
|
C --> D[Tenant + Entitlements API w/ cache]
|
||||||
|
D --> E[Frontend: Blazor/MudBlazor Login & Poll UI]
|
||||||
|
E --> F[Backend API: Poll CRUD, Subscriptions, Responses]
|
||||||
|
F --> G[APIM Gateway: x-tenantid validation]
|
||||||
|
G --> H[Storage: SQL, Blob, Table]
|
||||||
|
H --> I[Testing: Multi-Tenant Validation]
|
||||||
|
I --> J[Invite-first Onboarding & Mapping]
|
||||||
|
J --> K[JWT Tokens with Claims & Roles]
|
||||||
|
K --> L[Poll Lifecycle: Activate / Deactivate / Response Submission]
|
||||||
|
L --> M[Go-Live & Monitoring]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% Future Features Section
|
||||||
|
subgraph Future["Future Enhancements (Optional / Roadmap)"]
|
||||||
|
R1[Advanced Reporting & Analytics] --> R2[Poll Scheduling / Recurring Polls]
|
||||||
|
R2 --> R3[Multi-language Support]
|
||||||
|
R3 --> R4[Deep-linking & Email Notifications]
|
||||||
|
R4 --> R5[Theme / Branding Per Tenant]
|
||||||
|
R5 --> R6[Custom Dashboard & Graphs]
|
||||||
|
R6 --> R7[Responsive / Mobile Enhancements]
|
||||||
|
R7 --> R8[Advanced RBAC & Entitlements Features]
|
||||||
|
R8 --> R9[Audit Logging & History]
|
||||||
|
R9 --> R10[Ban / Blacklist Improvements]
|
||||||
|
R10 --> R11[External API Hooks & Webhooks]
|
||||||
|
R11 --> R12[3rd Party Analytics Integration]
|
||||||
|
end
|
||||||
|
|
||||||
|
%% Dependencies
|
||||||
|
M --> R1
|
||||||
|
|
||||||
|
%% Styling
|
||||||
|
style MVP fill:#b3d9ff,stroke:#333,stroke-width:2px
|
||||||
|
style Future fill:#e6e6e6,stroke:#999,stroke-dasharray: 5 5,stroke-width:2px
|
||||||
|
style A fill:#cce5ff
|
||||||
|
style B fill:#cce5ff
|
||||||
|
style C fill:#cce5ff
|
||||||
|
style D fill:#cce5ff
|
||||||
|
style E fill:#cce5ff
|
||||||
|
style F fill:#cce5ff
|
||||||
|
style G fill:#cce5ff
|
||||||
|
style H fill:#cce5ff
|
||||||
|
style I fill:#cce5ff
|
||||||
|
style J fill:#cce5ff
|
||||||
|
style K fill:#cce5ff
|
||||||
|
style L fill:#cce5ff
|
||||||
|
style M fill:#80b3ff
|
||||||
|
style R1 fill:#f2f2f2
|
||||||
|
style R2 fill:#f2f2f2
|
||||||
|
style R3 fill:#f2f2f2
|
||||||
|
style R4 fill:#f2f2f2
|
||||||
|
style R5 fill:#f2f2f2
|
||||||
|
style R6 fill:#f2f2f2
|
||||||
|
style R7 fill:#f2f2f2
|
||||||
|
style R8 fill:#f2f2f2
|
||||||
|
style R9 fill:#f2f2f2
|
||||||
|
style R10 fill:#f2f2f2
|
||||||
|
style R11 fill:#f2f2f2
|
||||||
|
style R12 fill:#f2f2f2
|
||||||
@@ -40,6 +40,13 @@ spec:
|
|||||||
containerPort: 8080
|
containerPort: 8080
|
||||||
- name: https
|
- name: https
|
||||||
containerPort: 8081
|
containerPort: 8081
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: "128Mi"
|
||||||
|
cpu: "250m"
|
||||||
|
limits:
|
||||||
|
memory: "256Mi"
|
||||||
|
cpu: "500m"
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
|
|||||||
Reference in New Issue
Block a user