Compare commits
No commits in common. "ff0e97e36b84fab6bee53013397865a12d6fb19c" and "9bc6438235587e0bea2723b116bc9e0c66abbd02" have entirely different histories.
ff0e97e36b
...
9bc6438235
8
.env
Normal file
8
.env
Normal file
@ -0,0 +1,8 @@
|
||||
GRPC_GDIONLINE_ADDRESS=https://oldapi.example.com:5001
|
||||
KYC_BASE_URL=https://ocr-provider.example.com
|
||||
Consul__Address=http://localhost:8500
|
||||
|
||||
# Consul__Address=http://consul:8500
|
||||
# Grpc__GDIOnline__Address=https://gdi-online-service:5001
|
||||
# Sms__BaseUrl=https://sms-service:443
|
||||
# Ocr__BaseUrl=https://ocr-service:443
|
||||
10
.env.example
10
.env.example
@ -1,9 +1 @@
|
||||
DB_HOST=localhost
|
||||
DB_PORT=5432
|
||||
DB_USER=postgres
|
||||
DB_PASS=postgres
|
||||
DB_NAME=khmereid_backend_db
|
||||
DB_SSL_MODE=Disable
|
||||
|
||||
Kyc__EKYC_Solutions__BaseUrl=
|
||||
Kyc__EKYC_Solutions__PrivateKey=
|
||||
DATABASE_USERNAME=
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,4 +0,0 @@
|
||||
# Build artifacts
|
||||
**/bin/
|
||||
**/obj/
|
||||
.env
|
||||
10
Dockerfile
10
Dockerfile
@ -3,17 +3,17 @@ FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
||||
WORKDIR /app
|
||||
|
||||
# Copy the project files
|
||||
COPY khmereid_backend/*.csproj ./
|
||||
COPY khmer_eid_backend/*.csproj ./
|
||||
|
||||
# Restore dependencies
|
||||
RUN dotnet restore
|
||||
|
||||
# Copy the rest of the application code
|
||||
COPY khmereid_backend/ ./
|
||||
COPY khmer_eid_backend/ ./
|
||||
|
||||
# Build the application
|
||||
# Change to Release for prod
|
||||
RUN dotnet publish khmereid_backend.csproj -c Debug -o out
|
||||
RUN dotnet publish khmer_eid_backend.csproj -c Debug -o out
|
||||
|
||||
# Use the .NET runtime image for running the application
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
|
||||
@ -23,11 +23,11 @@ WORKDIR /app
|
||||
COPY --from=build /app/out ./
|
||||
|
||||
# Copy Program.cs into the runtime image so you can inspect it
|
||||
COPY khmereid_backend/Program.cs ./
|
||||
COPY khmer_eid_backend/Program.cs ./
|
||||
|
||||
# Install vim
|
||||
RUN apt-get update && apt-get install -y vim && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Expose the port and run the application
|
||||
EXPOSE 5000
|
||||
ENTRYPOINT ["dotnet", "khmereid_backend.dll"]
|
||||
ENTRYPOINT ["dotnet", "khmer_eid_backend.dll"]
|
||||
|
||||
61
Makefile
61
Makefile
@ -1,41 +1,32 @@
|
||||
.PHONY: bootstrap, dev
|
||||
.PHONY: dev-up dev-down prod-up prod-down logs build
|
||||
|
||||
bootstrap:
|
||||
@echo "Creating kind cluster 'khmereid' if it doesn't exist..."
|
||||
@if ! kind get clusters | grep -q '^khmereid$$'; then \
|
||||
kind create cluster --name khmereid; \
|
||||
else \
|
||||
echo "Cluster 'khmereid' already exists, skipping creation"; \
|
||||
fi
|
||||
dev-up:
|
||||
docker compose -f docker-compose.dev.yml up -d --remove-orphans
|
||||
|
||||
@echo "Applying Kubernetes bootstrap manifests..."
|
||||
@kubectl apply -k k8s/bootstrap
|
||||
@kubectl apply -f k8s/bootstrap/bootstrap.yml
|
||||
dev-down:
|
||||
docker compose -f docker-compose.dev.yml down
|
||||
|
||||
@echo "Waiting for namespace 'envoy-gateway-system' to appear..."
|
||||
@while ! kubectl get namespace envoy-gateway-system >/dev/null 2>&1; do \
|
||||
printf "."; sleep 2; \
|
||||
done; \
|
||||
echo "\nNamespace 'envoy-gateway-system' is ready!"
|
||||
dev-restore:
|
||||
docker compose -f docker-compose.dev.yml run khmer-eid-api dotnet restore
|
||||
|
||||
@echo "Waiting for all pods in all namespaces to be ready (timeout 10 minutes)..."
|
||||
@kubectl wait --for=condition=Ready pod --all --all-namespaces --timeout=600s
|
||||
@echo "All pods are ready!"
|
||||
dev-build:
|
||||
docker compose -f docker-compose.dev.yml build
|
||||
|
||||
dev-migrate:
|
||||
@skaffold run --cleanup=false
|
||||
@sleep 5
|
||||
@cd khmereid_backend && dotnet ef database update
|
||||
@echo "Waiting for all pods in all namespaces to be ready (timeout 10 minutes)..."
|
||||
@kubectl wait --for=condition=Ready pod --all --all-namespaces --timeout=600s
|
||||
dev-list-packages:
|
||||
docker exec -it khmer-eid-api-dev dotnet list package
|
||||
|
||||
dev-exec:
|
||||
docker exec -it khmer-eid-api-dev /bin/bash
|
||||
|
||||
prod-up:
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
|
||||
prod-down:
|
||||
docker compose -f docker-compose.prod.yml down
|
||||
|
||||
dev-logs:
|
||||
docker compose -f docker-compose.dev.yml logs -f khmer-eid-api
|
||||
|
||||
prod-logs:
|
||||
docker compose -f docker-compose.prod.yml logs -f khmer-eid-api
|
||||
|
||||
dev:
|
||||
@echo "Running Skaffold to build and deploy once..."
|
||||
@skaffold run --cleanup=false
|
||||
@echo "Starting local development environment..."
|
||||
# Port-forward Kratos
|
||||
@kubectl port-forward svc/kratos-app-public 4433:80 &
|
||||
# Wait a moment for port-forwards to initialize
|
||||
@sleep 5
|
||||
# Run dotnet in watch mode
|
||||
@cd khmereid_backend && dotnet watch run --urls http://localhost:5200
|
||||
|
||||
48
README.md
48
README.md
@ -1,42 +1,22 @@
|
||||
## Quick Start (Local Development)
|
||||
### In order to add a new package, run the following commands
|
||||
1. dotnet add package <PackageName>
|
||||
2. dotnet resotre
|
||||
3. docker compose build
|
||||
4. docker compose up
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Make sure you have:
|
||||
|
||||
- [.NET 9 SDK](https://dotnet.microsoft.com/en-us/download)
|
||||
- [Docker](https://www.docker.com/)
|
||||
- kind ```brew install kind```
|
||||
- skaffold ```brew install skaffold```
|
||||
- PostgreSQL
|
||||
### config kratos
|
||||
create schema kratos
|
||||
|
||||
---
|
||||
docker exec -it kratos kratos migrate sql \
|
||||
"postgres://dev:dev@postgres:5432/backend_db?sslmode=disable&search_path=kratos" \
|
||||
-y
|
||||
|
||||
### Clone and set up
|
||||
|
||||
1. Clone the repository and navigate into it:
|
||||
```bash
|
||||
git clone https://github.com/khmer-eid/khmereid-backend.git
|
||||
cd khmereid-backend
|
||||
```
|
||||
### config hanko
|
||||
create schema hanko
|
||||
|
||||
2. Bootstrap the environment:
|
||||
```bash
|
||||
make bootstrap
|
||||
```
|
||||
docker compose run --rm hanko migrate up
|
||||
|
||||
3. Set up environment variables:
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# update db config part your .env
|
||||
```
|
||||
|
||||
4. Run database migrations:
|
||||
```bash
|
||||
make dev-migrate
|
||||
```
|
||||
|
||||
5. Start the development server:
|
||||
```bash
|
||||
make dev
|
||||
```
|
||||
docker compose up -d hanko
|
||||
@ -1,5 +1,5 @@
|
||||
version: v1.3.0
|
||||
dsn: ${DSN}
|
||||
dsn: "postgres://dev:dev@postgres:5432/backend_db?sslmode=disable&search_path=kratos"
|
||||
log:
|
||||
leak_sensitive_values: true
|
||||
|
||||
@ -31,14 +31,14 @@ identity:
|
||||
default_schema_id: default
|
||||
schemas:
|
||||
- id: default
|
||||
url: file:///etc/config/custom/identity.schema.json
|
||||
url: file:///etc/config/identity.schema.json
|
||||
courier:
|
||||
channels:
|
||||
- id: sms
|
||||
type: http
|
||||
request_config:
|
||||
method: POST
|
||||
url: https://webhook.site/d67a9ea6-e152-4d7f-8432-7ab92b2ace1f
|
||||
url: https://webhook.site/b9e137a6-f184-47b5-ac43-50c95a95cd14
|
||||
body: base64://ZnVuY3Rpb24oY3R4KSB7CiAgcmVjaXBpZW50OiBjdHgucmVjaXBpZW50LAogIHRlbXBsYXRlX3R5cGU6IGN0eC50ZW1wbGF0ZV90eXBlLAogIHRvOiBpZiAidGVtcGxhdGVfZGF0YSIgaW4gY3R4ICYmICJ0byIgaW4gY3R4LnRlbXBsYXRlX2RhdGEgdGhlbiBjdHgudGVtcGxhdGVfZGF0YS50byBlbHNlIG51bGwsCiAgcmVjb3ZlcnlfY29kZTogaWYgInRlbXBsYXRlX2RhdGEiIGluIGN0eCAmJiAicmVjb3ZlcnlfY29kZSIgaW4gY3R4LnRlbXBsYXRlX2RhdGEgdGhlbiBjdHgudGVtcGxhdGVfZGF0YS5yZWNvdmVyeV9jb2RlIGVsc2UgbnVsbCwKICByZWNvdmVyeV91cmw6IGlmICJ0ZW1wbGF0ZV9kYXRhIiBpbiBjdHggJiYgInJlY292ZXJ5X3VybCIgaW4gY3R4LnRlbXBsYXRlX2RhdGEgdGhlbiBjdHgudGVtcGxhdGVfZGF0YS5yZWNvdmVyeV91cmwgZWxzZSBudWxsLAogIHZlcmlmaWNhdGlvbl91cmw6IGlmICJ0ZW1wbGF0ZV9kYXRhIiBpbiBjdHggJiYgInZlcmlmaWNhdGlvbl91cmwiIGluIGN0eC50ZW1wbGF0ZV9kYXRhIHRoZW4gY3R4LnRlbXBsYXRlX2RhdGEudmVyaWZpY2F0aW9uX3VybCBlbHNlIG51bGwsCiAgdmVyaWZpY2F0aW9uX2NvZGU6IGlmICJ0ZW1wbGF0ZV9kYXRhIiBpbiBjdHggJiYgInZlcmlmaWNhdGlvbl9jb2RlIiBpbiBjdHgudGVtcGxhdGVfZGF0YSB0aGVuIGN0eC50ZW1wbGF0ZV9kYXRhLnZlcmlmaWNhdGlvbl9jb2RlIGVsc2UgbnVsbCwKICBzdWJqZWN0OiBjdHguc3ViamVjdCwKICBib2R5OiBjdHguYm9keQp9Cg==
|
||||
headers:
|
||||
content-type: application/json
|
||||
|
||||
19
config/openfga/openfga-config.json
Normal file
19
config/openfga/openfga-config.json
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"log": {
|
||||
"level": "info"
|
||||
},
|
||||
"playground": {
|
||||
"enabled": true,
|
||||
"port": 3000
|
||||
},
|
||||
"datastore": {
|
||||
"engine": "postgres",
|
||||
"uri": "postgres://dev:dev@postgres:5432/backend_db?sslmode=disable&search_path=openfga"
|
||||
},
|
||||
"grpc": {
|
||||
"addr": ":8081"
|
||||
},
|
||||
"http": {
|
||||
"addr": ":8080"
|
||||
}
|
||||
}
|
||||
19
k8s/base/app-cnpg.yml
Normal file
19
k8s/base/app-cnpg.yml
Normal file
@ -0,0 +1,19 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: cnpg-app
|
||||
namespace: argocd
|
||||
spec:
|
||||
syncPolicy:
|
||||
automated:
|
||||
enabled: true
|
||||
syncOptions:
|
||||
- ServerSideApply=true
|
||||
project: default
|
||||
source:
|
||||
chart: cloudnative-pg
|
||||
repoURL: 'https://cloudnative-pg.github.io/charts'
|
||||
targetRevision: 0.26.1
|
||||
destination:
|
||||
namespace: default
|
||||
server: 'https://kubernetes.default.svc'
|
||||
@ -1,26 +1,5 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: cnpg-app
|
||||
namespace: argocd
|
||||
spec:
|
||||
syncPolicy:
|
||||
automated:
|
||||
enabled: true
|
||||
syncOptions:
|
||||
- ServerSideApply=true
|
||||
project: default
|
||||
source:
|
||||
chart: cloudnative-pg
|
||||
repoURL: 'https://cloudnative-pg.github.io/charts'
|
||||
targetRevision: 0.26.1
|
||||
destination:
|
||||
namespace: default
|
||||
server: 'https://kubernetes.default.svc'
|
||||
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: envoy-app
|
||||
namespace: argocd
|
||||
@ -43,5 +22,6 @@ spec:
|
||||
agent:
|
||||
enabled: true
|
||||
destination:
|
||||
# namespace: default
|
||||
namespace: envoy-gateway-system
|
||||
server: 'https://kubernetes.default.svc'
|
||||
server: 'https://kubernetes.default.svc'
|
||||
@ -1,6 +1,3 @@
|
||||
# ==============================
|
||||
# Kratos Application
|
||||
# ==============================
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
@ -18,10 +15,6 @@ spec:
|
||||
targetRevision: 0.58.0
|
||||
helm:
|
||||
valuesObject:
|
||||
statefulSet:
|
||||
extraArgs:
|
||||
- --config
|
||||
- /etc/config/custom/kratos.yaml
|
||||
deployment:
|
||||
extraVolumes:
|
||||
- name: kratos-custom-config
|
||||
@ -37,17 +30,77 @@ spec:
|
||||
secretKeyRef:
|
||||
name: postgres-kratos-app
|
||||
key: uri
|
||||
extraArgs:
|
||||
- --config
|
||||
- /etc/config/custom/kratos.yaml
|
||||
kratos:
|
||||
log:
|
||||
leak_sensitive_values: true
|
||||
# config db
|
||||
automigration:
|
||||
enabled: true
|
||||
config:
|
||||
dsn:
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgres-kratos-app
|
||||
key: uri
|
||||
selfservice:
|
||||
methods:
|
||||
code:
|
||||
enabled: true
|
||||
passwordless_enabled: true
|
||||
lifespan: 2m
|
||||
password:
|
||||
enabled: true
|
||||
default_browser_return_url: "http://localhost:4433"
|
||||
flows:
|
||||
login:
|
||||
ui_url: "http://localhost:5200/auth/login"
|
||||
registration:
|
||||
after:
|
||||
password:
|
||||
hooks:
|
||||
- hook: session
|
||||
code:
|
||||
hooks:
|
||||
- hook: session
|
||||
ui_url: "http://localhost:5200/auth/register"
|
||||
verification:
|
||||
ui_url: "http://localhost:5200/auth/verify"
|
||||
enabled: true
|
||||
identity:
|
||||
default_schema_id: default
|
||||
schemas:
|
||||
- id: default
|
||||
url: file:///etc/config/custom/identity.schema.json
|
||||
courier:
|
||||
channels:
|
||||
- id: sms
|
||||
type: http
|
||||
request_config:
|
||||
method: POST
|
||||
url: https://webhook.site/b9e137a6-f184-47b5-ac43-50c95a95cd14
|
||||
body: base64://ZnVuY3Rpb24oY3R4KSB7CiAgcmVjaXBpZW50OiBjdHgucmVjaXBpZW50LAogIHRlbXBsYXRlX3R5cGU6IGN0eC50ZW1wbGF0ZV90eXBlLAogIHRvOiBpZiAidGVtcGxhdGVfZGF0YSIgaW4gY3R4ICYmICJ0byIgaW4gY3R4LnRlbXBsYXRlX2RhdGEgdGhlbiBjdHgudGVtcGxhdGVfZGF0YS50byBlbHNlIG51bGwsCiAgcmVjb3ZlcnlfY29kZTogaWYgInRlbXBsYXRlX2RhdGEiIGluIGN0eCAmJiAicmVjb3ZlcnlfY29kZSIgaW4gY3R4LnRlbXBsYXRlX2RhdGEgdGhlbiBjdHgudGVtcGxhdGVfZGF0YS5yZWNvdmVyeV9jb2RlIGVsc2UgbnVsbCwKICByZWNvdmVyeV91cmw6IGlmICJ0ZW1wbGF0ZV9kYXRhIiBpbiBjdHggJiYgInJlY292ZXJ5X3VybCIgaW4gY3R4LnRlbXBsYXRlX2RhdGEgdGhlbiBjdHgudGVtcGxhdGVfZGF0YS5yZWNvdmVyeV91cmwgZWxzZSBudWxsLAogIHZlcmlmaWNhdGlvbl91cmw6IGlmICJ0ZW1wbGF0ZV9kYXRhIiBpbiBjdHggJiYgInZlcmlmaWNhdGlvbl91cmwiIGluIGN0eC50ZW1wbGF0ZV9kYXRhIHRoZW4gY3R4LnRlbXBsYXRlX2RhdGEudmVyaWZpY2F0aW9uX3VybCBlbHNlIG51bGwsCiAgdmVyaWZpY2F0aW9uX2NvZGU6IGlmICJ0ZW1wbGF0ZV9kYXRhIiBpbiBjdHggJiYgInZlcmlmaWNhdGlvbl9jb2RlIiBpbiBjdHgudGVtcGxhdGVfZGF0YSB0aGVuIGN0eC50ZW1wbGF0ZV9kYXRhLnZlcmlmaWNhdGlvbl9jb2RlIGVsc2UgbnVsbCwKICBzdWJqZWN0OiBjdHguc3ViamVjdCwKICBib2R5OiBjdHguYm9keQp9Cg==
|
||||
headers:
|
||||
content-type: application/json
|
||||
templates:
|
||||
verification_code:
|
||||
valid:
|
||||
sms:
|
||||
body:
|
||||
plaintext: "base64://WW91ciB2ZXJpZmljYXRpb24gY29kZSBpczoge3sgLlZlcmlmaWNhdGlvbkNvZGUgfX0="
|
||||
email:
|
||||
body:
|
||||
plaintext: "base64://WW91ciB2ZXJpZmljYXRpb24gY29kZSBpczoge3sgLlZlcmlmaWNhdGlvbkNvZGUgfX0="
|
||||
login_code:
|
||||
valid:
|
||||
sms:
|
||||
body:
|
||||
plaintext: "base64://WW91ciBsb2dpbiBjb2RlIGlzOiB7eyAuTG9naW5Db2RlIH19"
|
||||
email:
|
||||
body:
|
||||
plaintext: "base64://WW91ciB2ZXJpZmljYXRpb24gY29kZSBpczoge3sgLlZlcmlmaWNhdGlvbkNvZGUgfX0="
|
||||
|
||||
image:
|
||||
repository: shadowlegend/ory-kratos
|
||||
tag: master-arm64
|
||||
|
||||
destination:
|
||||
namespace: default
|
||||
server: 'https://kubernetes.default.svc'
|
||||
80
k8s/base/kratos.yml
Normal file
80
k8s/base/kratos.yml
Normal file
@ -0,0 +1,80 @@
|
||||
# ==============================
|
||||
# Ory Kratos Deployment + Service
|
||||
# ==============================
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: kratos
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: kratos
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: kratos
|
||||
spec:
|
||||
volumes:
|
||||
- name: kratos-config
|
||||
configMap:
|
||||
name: kratos-config
|
||||
initContainers:
|
||||
- name: kratos-migrate
|
||||
image: shadowlegend/ory-kratos@sha256:1e2a07fa1406c90eb2a16df5da509d163db394262c1a91baf73cc32009dcccd6
|
||||
env:
|
||||
- name: DSN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgres-kratos-app
|
||||
key: uri
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- kratos migrate sql -e --yes
|
||||
containers:
|
||||
- name: kratos
|
||||
image: shadowlegend/ory-kratos@sha256:1e2a07fa1406c90eb2a16df5da509d163db394262c1a91baf73cc32009dcccd6
|
||||
env:
|
||||
- name: DSN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgres-kratos-app
|
||||
key: uri
|
||||
- name: KRATOS_LOG_LEVEL
|
||||
value: "info"
|
||||
command:
|
||||
- kratos
|
||||
- serve
|
||||
- --watch-courier
|
||||
- --config
|
||||
- /etc/config/kratos.yml
|
||||
resources:
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
requests:
|
||||
memory: 64Mi
|
||||
cpu: 20m
|
||||
ports:
|
||||
- containerPort: 4433
|
||||
- containerPort: 4434
|
||||
volumeMounts:
|
||||
- name: kratos-config
|
||||
mountPath: /etc/config
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: kratos
|
||||
spec:
|
||||
selector:
|
||||
app: kratos
|
||||
ports:
|
||||
- name: public
|
||||
port: 4433
|
||||
targetPort: 4433
|
||||
- name: admin
|
||||
port: 4434
|
||||
targetPort: 4434
|
||||
@ -3,16 +3,20 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- envoy.yml
|
||||
# - deployment.yml
|
||||
- app-kratos.yml
|
||||
- app-cnpg.yml
|
||||
- app-envoy.yml
|
||||
- envoy.yml
|
||||
# - kratos.yml
|
||||
- postgres-dotnet.yml
|
||||
- postgres-kratos.yml
|
||||
- deployment.yml
|
||||
# - app-khmereid.yml
|
||||
|
||||
configMapGenerator:
|
||||
- name: kratos-config
|
||||
files:
|
||||
- kratos.yaml=../../config/kratos/kratos.yml
|
||||
- kratos.yml=../../config/kratos/kratos.yml
|
||||
- identity.schema.json=../../config/kratos/identity.schema.json
|
||||
generatorOptions:
|
||||
disableNameSuffixHash: true
|
||||
|
||||
@ -2,7 +2,7 @@ apiVersion: postgresql.cnpg.io/v1
|
||||
kind: Cluster
|
||||
metadata:
|
||||
name: postgres-dotnet
|
||||
namespace: default
|
||||
namespace: argocd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
spec:
|
||||
|
||||
@ -3,6 +3,7 @@ kind: Cluster
|
||||
metadata:
|
||||
name: postgres-kratos
|
||||
namespace: default
|
||||
# namespace: argocd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
|
||||
spec:
|
||||
|
||||
@ -1,17 +0,0 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
namespace: argocd
|
||||
|
||||
resources:
|
||||
- namespaces.yml
|
||||
- https://raw.githubusercontent.com/argoproj/argo-cd/v3.1.9/manifests/install.yaml
|
||||
|
||||
patches:
|
||||
- patch: |-
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: argocd-cm
|
||||
data:
|
||||
kustomize.buildOptions: --enable-helm --load-restrictor LoadRestrictionsNone
|
||||
@ -1,4 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: argocd
|
||||
@ -2,4 +2,16 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
- nginx-temp.yml
|
||||
- nginx-temp.yml
|
||||
|
||||
patches:
|
||||
- target:
|
||||
kind: Deployment
|
||||
name: argocd-repo-server
|
||||
namespace: argocd
|
||||
patch: |-
|
||||
- op: add
|
||||
path: /spec/template/spec/containers/0/env/-
|
||||
value:
|
||||
name: ARGOCD_APP_SOURCE_PATH_RESTRICTION
|
||||
value: repo
|
||||
@ -1,18 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: khmereid-app
|
||||
namespace: argocd
|
||||
spec:
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
enabled: true
|
||||
project: default
|
||||
source:
|
||||
repoURL: 'https://gitea.internal.ekycsolutions.com/xadminx/khmereid-backend-temp.git'
|
||||
path: k8s/uat
|
||||
targetRevision: main
|
||||
destination:
|
||||
namespace: default
|
||||
server: 'https://kubernetes.default.svc'
|
||||
@ -1,17 +1,4 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- ../base
|
||||
|
||||
# secretGenerator:
|
||||
# - name: crime-management-system-deployment-repo
|
||||
# namespace: argocd
|
||||
# envs:
|
||||
# - .env.cms-deploy-repo-cred
|
||||
# literals:
|
||||
# - type=git
|
||||
# - project=default
|
||||
# - url=https://github.com/EKYCSolutions/crime-management-system.git
|
||||
# options:
|
||||
# labels:
|
||||
# argocd.argoproj.io/secret-type: repository
|
||||
- ../base
|
||||
@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.5.2.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "khmereid_backend", "khmereid_backend\khmereid_backend.csproj", "{6D4F6FF4-86EE-BD7D-7691-D7FD0BC6AFAB}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "khmer_eid_backend", "khmer_eid_backend\khmer_eid_backend.csproj", "{6D4F6FF4-86EE-BD7D-7691-D7FD0BC6AFAB}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
||||
48
khmer_eid_backend/Controllers/AuthController.cs
Normal file
48
khmer_eid_backend/Controllers/AuthController.cs
Normal file
@ -0,0 +1,48 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using khmer_eid_backend.Integrations.Ory;
|
||||
using khmer_eid_backend.Requests;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
|
||||
namespace khmer_eid_backend.Controllers
|
||||
{
|
||||
[ApiController]
|
||||
[Route("auth")]
|
||||
public class AuthController(KratosIntegration _kratos) : ControllerBase
|
||||
{
|
||||
[HttpPost("request-signup-otp")]
|
||||
public async Task<IActionResult> RequestSignupOtp([FromForm] SignupRequest request)
|
||||
{
|
||||
var data = await _kratos.CreateOtpRegistrationFlowAsync(phone: request.Phone);
|
||||
return Ok(new { Message = "OTP sent if the phone number is valid.", data });
|
||||
}
|
||||
|
||||
[HttpPost("verify-signup-otp")]
|
||||
public async Task<IActionResult> VerifySignupOtp([FromForm] string phone,[FromForm] string otp, [FromForm] string flowId)
|
||||
{
|
||||
var data = await _kratos.CompleteOtpRegistrationFlowAsync(flowId, phone, otp);
|
||||
return Ok(new { Message = "OTP verified successfully.", data });
|
||||
}
|
||||
|
||||
[HttpPost("request-login-otp")]
|
||||
public async Task<IActionResult> RequestLoginOtp([FromForm] string phone)
|
||||
{
|
||||
var data = await _kratos.CreateOtpLoginFlowAsync(phone: phone);
|
||||
return Ok(new { Message = "OTP sent if the phone number is valid.", data });
|
||||
}
|
||||
|
||||
[HttpPost("verify-login-otp")]
|
||||
public async Task<IActionResult> VerifyLoginOtp([FromForm] string phone, [FromForm] string otp, [FromForm] string flowId)
|
||||
{
|
||||
var data = await _kratos.CompleteOtpLoginFlowAsync(flowId, phone, otp);
|
||||
return Ok(new { Message = "OTP verified successfully.", data });
|
||||
}
|
||||
|
||||
[HttpPost("logout")]
|
||||
[Authorize(AuthenticationSchemes = "Kratos")]
|
||||
public async Task<IActionResult> Logout()
|
||||
{
|
||||
var data = await _kratos.Logout(Request.Headers.Authorization.ToString().Replace("Bearer ",""));
|
||||
return Ok(new { Message = "Logged out successfully."});
|
||||
}
|
||||
}
|
||||
}
|
||||
24
khmer_eid_backend/Controllers/UserController.cs
Normal file
24
khmer_eid_backend/Controllers/UserController.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using khmer_eid_backend.Integrations.Ory;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using System.Security.Claims;
|
||||
|
||||
namespace khmer_eid_backend.Controllers;
|
||||
|
||||
public class UserController(KratosIntegration _kratos) : ControllerBase
|
||||
{
|
||||
[HttpGet("me")]
|
||||
[Authorize(AuthenticationSchemes = "Kratos")]
|
||||
// public Task<IActionResult> Me()
|
||||
// {
|
||||
// var id = User.FindFirstValue(ClaimTypes.NameIdentifier);
|
||||
// var phone = User.FindFirstValue("phone");
|
||||
// // return Ok(new { id, phone });
|
||||
// return Task.FromResult<IActionResult>(Ok(new { id, phone }));
|
||||
// }
|
||||
public async Task<IActionResult> Me()
|
||||
{
|
||||
var data = await _kratos.GetMe(Request.Headers.Authorization.ToString().Replace("Bearer ",""));
|
||||
return Ok(data);
|
||||
}
|
||||
}
|
||||
52
khmer_eid_backend/Integrations/Ory/KratosHandler.cs
Normal file
52
khmer_eid_backend/Integrations/Ory/KratosHandler.cs
Normal file
@ -0,0 +1,52 @@
|
||||
using Ory.Kratos.Client.Api;
|
||||
using System.Security.Claims;
|
||||
using Ory.Kratos.Client.Client;
|
||||
using System.Text.Encodings.Web;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.AspNetCore.Authentication;
|
||||
|
||||
namespace khmer_eid_backend.Integrations.Ory;
|
||||
|
||||
public class KratosHandler : AuthenticationHandler<AuthenticationSchemeOptions>
|
||||
{
|
||||
private readonly FrontendApi _frontendApi;
|
||||
|
||||
public KratosHandler(
|
||||
IOptionsMonitor<AuthenticationSchemeOptions> options,
|
||||
ILoggerFactory logger,
|
||||
UrlEncoder encoder,
|
||||
IConfiguration config)
|
||||
: base(options, logger, encoder)
|
||||
{
|
||||
var cfg = new Configuration { BasePath = config["Ory:Kratos:PublicUrl"]! };
|
||||
_frontendApi = new FrontendApi(cfg);
|
||||
}
|
||||
|
||||
protected override async Task<AuthenticateResult> HandleAuthenticateAsync()
|
||||
{
|
||||
var authHeader = Request.Headers["Authorization"].ToString();
|
||||
if (string.IsNullOrWhiteSpace(authHeader) || !authHeader.StartsWith("Bearer "))
|
||||
return AuthenticateResult.NoResult();
|
||||
|
||||
var token = authHeader.Substring("Bearer ".Length).Trim();
|
||||
|
||||
try
|
||||
{
|
||||
var session = await _frontendApi.ToSessionAsync(xSessionToken: token);
|
||||
|
||||
var identity = new ClaimsIdentity(new[]
|
||||
{
|
||||
new Claim(ClaimTypes.NameIdentifier, session.Identity.Id),
|
||||
new Claim("phone", session.Identity.Traits.ToString() ?? "")
|
||||
}, Scheme.Name);
|
||||
|
||||
var principal = new ClaimsPrincipal(identity);
|
||||
return AuthenticateResult.Success(new AuthenticationTicket(principal, Scheme.Name));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.LogError(ex, "Failed to authenticate Kratos session");
|
||||
return AuthenticateResult.Fail("Invalid Kratos session token");
|
||||
}
|
||||
}
|
||||
}
|
||||
193
khmer_eid_backend/Integrations/Ory/KratosIntegration.cs
Normal file
193
khmer_eid_backend/Integrations/Ory/KratosIntegration.cs
Normal file
@ -0,0 +1,193 @@
|
||||
using System.Text.Json;
|
||||
using Ory.Kratos.Client.Api;
|
||||
using Ory.Kratos.Client.Model;
|
||||
using Ory.Kratos.Client.Client;
|
||||
|
||||
namespace khmer_eid_backend.Integrations.Ory;
|
||||
|
||||
public class KratosIntegration
|
||||
{
|
||||
private readonly FrontendApi _frontendApi;
|
||||
private readonly IdentityApi _identityApi;
|
||||
private readonly ILogger<KratosIntegration> _logger;
|
||||
|
||||
public KratosIntegration(IConfiguration config, ILogger<KratosIntegration> logger)
|
||||
{
|
||||
var publicCfg = new Configuration { BasePath = config["Ory:Kratos:PublicUrl"]! };
|
||||
var adminCfg = new Configuration { BasePath = config["Ory:Kratos:AdminUrl"]! };
|
||||
|
||||
_frontendApi = new FrontendApi(publicCfg);
|
||||
_identityApi = new IdentityApi(adminCfg);
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public async Task<dynamic> CreateOtpRegistrationFlowAsync(string phone)
|
||||
{
|
||||
var flow = await _frontendApi.CreateNativeRegistrationFlowAsync(returnSessionTokenExchangeCode: true);
|
||||
_logger.LogInformation("Started registration flow: {FlowId}", flow.Id);
|
||||
|
||||
phone = phone.Trim();
|
||||
var method = new KratosUpdateRegistrationFlowWithCodeMethod(
|
||||
traits: new { phone = phone },
|
||||
method: "code"
|
||||
);
|
||||
|
||||
try
|
||||
{
|
||||
var body = new KratosUpdateRegistrationFlowBody(method);
|
||||
_logger.LogInformation("Updating OTP registration flow for {Phone}, flow {FlowId}", phone, flow.Id);
|
||||
var updatedFlow = _frontendApi.UpdateRegistrationFlow(flow.Id, body);
|
||||
|
||||
return flow;
|
||||
}
|
||||
catch (ApiException ex)
|
||||
{
|
||||
var res = JsonSerializer.Deserialize<JsonElement>(ex.ErrorContent.ToString()!);
|
||||
return ex.ErrorCode switch
|
||||
{
|
||||
400 => res.GetProperty("state").ToString() == "sent_email" ?
|
||||
new
|
||||
{
|
||||
FlowId = res.GetProperty("id").GetString(),
|
||||
State = res.GetProperty("state").GetString(),
|
||||
ExpiredAt = res.GetProperty("expires_at").GetDateTime()
|
||||
} : throw new Exception("Unhandled Kratos API exception: " + ex.Message),
|
||||
_ => throw new Exception("Unhandled Kratos API exception: " + ex.Message),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<dynamic> CompleteOtpRegistrationFlowAsync(string flowId, string phone,string otp)
|
||||
{
|
||||
phone = phone.Trim();
|
||||
var method = new KratosUpdateRegistrationFlowWithCodeMethod(
|
||||
code: otp,
|
||||
traits: new { phone = phone},
|
||||
method: "code"
|
||||
);
|
||||
var body = new KratosUpdateRegistrationFlowBody(method);
|
||||
|
||||
try
|
||||
{
|
||||
var result = await _frontendApi.UpdateRegistrationFlowAsync(flowId, body);
|
||||
|
||||
_logger.LogInformation("Completed OTP registration flow for flow {FlowId}", flowId);
|
||||
return new
|
||||
{
|
||||
accessToken = result.SessionToken,
|
||||
expiredAt = result.Session?.ExpiresAt
|
||||
};
|
||||
}
|
||||
catch (ApiException ex)
|
||||
{
|
||||
var res = JsonSerializer.Deserialize<JsonElement>(ex.ErrorContent.ToString()!);
|
||||
return ex.ErrorCode switch
|
||||
{
|
||||
400 => res.GetProperty("ui").GetProperty("messages").EnumerateArray().First().GetProperty("text").GetString()!,
|
||||
404 => throw new Exception("Registration flow not found."),
|
||||
_ => throw new Exception("Unhandled Kratos API exception: " + ex.Message),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<dynamic> CreateOtpLoginFlowAsync(string phone)
|
||||
{
|
||||
var flow = await _frontendApi.CreateNativeLoginFlowAsync(returnSessionTokenExchangeCode: true);
|
||||
_logger.LogInformation("Started login flow: {FlowId}", flow.Id);
|
||||
|
||||
phone = phone.Trim();
|
||||
var method = new KratosUpdateLoginFlowWithCodeMethod(
|
||||
method: "code",
|
||||
csrfToken: "dfdfdfde",
|
||||
identifier: phone
|
||||
);
|
||||
|
||||
try
|
||||
{
|
||||
var body = new KratosUpdateLoginFlowBody(method);
|
||||
_logger.LogInformation("Updating OTP registration flow for {Phone}, flow {FlowId}", phone, flow.Id);
|
||||
var updatedFlow = await _frontendApi.UpdateLoginFlowAsync(flow.Id, body);
|
||||
|
||||
return flow;
|
||||
}
|
||||
catch (ApiException ex)
|
||||
{
|
||||
var res = JsonSerializer.Deserialize<JsonElement>(ex.ErrorContent.ToString()!);
|
||||
return ex.ErrorCode switch
|
||||
{
|
||||
400 => res.GetProperty("state").ToString() == "sent_email" ?
|
||||
new
|
||||
{
|
||||
FlowId = res.GetProperty("id").GetString(),
|
||||
State = res.GetProperty("state").GetString(),
|
||||
ExpiredAt = res.GetProperty("expires_at").GetDateTime()
|
||||
} : throw new Exception("Unhandled Kratos API exception: " + ex.Message),
|
||||
_ => throw new Exception("Unhandled Kratos API exception: " + ex.Message),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<dynamic> CompleteOtpLoginFlowAsync(string flowId, string phone, string otp)
|
||||
{
|
||||
phone = "+" + phone.Trim();
|
||||
var method = new KratosUpdateLoginFlowWithCodeMethod(
|
||||
code: otp,
|
||||
method: "code",
|
||||
csrfToken: "dfdfdfde",
|
||||
identifier: phone
|
||||
);
|
||||
var body = new KratosUpdateLoginFlowBody(method);
|
||||
|
||||
try
|
||||
{
|
||||
var result = await _frontendApi.UpdateLoginFlowAsync(flowId, body);
|
||||
|
||||
_logger.LogInformation("Completed OTP login flow for flow {FlowId}", flowId);
|
||||
return new
|
||||
{
|
||||
accessToken = result.SessionToken,
|
||||
expiredAt = result.Session?.ExpiresAt
|
||||
};
|
||||
}
|
||||
catch (ApiException ex)
|
||||
{
|
||||
var res = JsonSerializer.Deserialize<JsonElement>(ex.ErrorContent.ToString()!);
|
||||
return ex.ErrorCode switch
|
||||
{
|
||||
400 => res,
|
||||
404 => throw new Exception("Login flow not found."),
|
||||
_ => throw new Exception("Unhandled Kratos API exception: " + ex.Message),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<dynamic> Logout(string sessionToken)
|
||||
{
|
||||
var body = new KratosPerformNativeLogoutBody(sessionToken: sessionToken);
|
||||
await _frontendApi.PerformNativeLogoutAsync(body);
|
||||
_logger.LogInformation("Logged out session with token {SessionToken}", sessionToken);
|
||||
return new { Message = "Logged out successfully." };
|
||||
}
|
||||
|
||||
public async Task<dynamic> GetMe(string sessionToken)
|
||||
{
|
||||
var session = await _frontendApi.ToSessionAsync(xSessionToken: sessionToken);
|
||||
_logger.LogInformation("Fetched session for identity {IdentityId}", session.Identity.Id);
|
||||
return session;
|
||||
}
|
||||
|
||||
public async Task<KratosSuccessfulNativeRegistration> PasswordRegistrationFlowAsync(string flowId, string phone)
|
||||
{
|
||||
var method = new KratosUpdateRegistrationFlowWithPasswordMethod(
|
||||
password: "add3ae4d8ae8",
|
||||
traits: new { phone = phone, identifier = phone },
|
||||
method: "password"
|
||||
);
|
||||
var body = new KratosUpdateRegistrationFlowBody(method);
|
||||
var result = await _frontendApi.UpdateRegistrationFlowAsync(flowId, body);
|
||||
|
||||
Console.WriteLine(JsonSerializer.Serialize(result, new JsonSerializerOptions { WriteIndented = true }));
|
||||
_logger.LogInformation("Completed registration flow for {Phone}", phone);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,9 @@
|
||||
//todo obsolete
|
||||
using Microsoft.AspNetCore.Authentication;
|
||||
|
||||
namespace khmer_eid_backend.Integrations.Ory;
|
||||
|
||||
public sealed class OryAuthSchemeOptions : AuthenticationSchemeOptions
|
||||
{
|
||||
public string? BasePath { get; set; }
|
||||
}
|
||||
27
khmer_eid_backend/Middlewares/KratosAuthMiddleware.cs
Normal file
27
khmer_eid_backend/Middlewares/KratosAuthMiddleware.cs
Normal file
@ -0,0 +1,27 @@
|
||||
// // validates token & attaches user info
|
||||
|
||||
// public class KratosAuthMiddleware
|
||||
// {
|
||||
// private readonly RequestDelegate _next;
|
||||
|
||||
// public KratosAuthMiddleware(RequestDelegate next) => _next = next;
|
||||
|
||||
// public async Task InvokeAsync(HttpContext context, KratosIntegration kratos)
|
||||
// {
|
||||
// var cookie = context.Request.Headers["Cookie"].ToString();
|
||||
// var bearer = context.Request.Headers["Authorization"].ToString().Replace("Bearer ", "");
|
||||
|
||||
// var session = await kratos.ValidateSessionAsync(cookie, bearer);
|
||||
|
||||
// if (session == null)
|
||||
// {
|
||||
// context.Response.StatusCode = StatusCodes.Status401Unauthorized;
|
||||
// await context.Response.WriteAsync("Unauthorized");
|
||||
// return;
|
||||
// }
|
||||
|
||||
// // attach identity to HttpContext
|
||||
// context.Items["user"] = session.Identity;
|
||||
// await _next(context);
|
||||
// }
|
||||
// }
|
||||
25
khmer_eid_backend/Models/Kratos.cs
Normal file
25
khmer_eid_backend/Models/Kratos.cs
Normal file
@ -0,0 +1,25 @@
|
||||
// Data models that map Kratos JSON responses
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace khmer_eid_backend.Models
|
||||
{
|
||||
// Represents user traits stored in Kratos
|
||||
public class KratosTraits
|
||||
{
|
||||
public string Phone { get; set; } = "";
|
||||
}
|
||||
|
||||
// Represents an identity in Kratos
|
||||
public class KratosIdentity
|
||||
{
|
||||
public string Id { get; set; } = "";
|
||||
public KratosTraits Traits { get; set; } = new();
|
||||
}
|
||||
|
||||
// Represents a session returned by Kratos
|
||||
public class KratosSession
|
||||
{
|
||||
public string Id { get; set; } = "";
|
||||
public KratosIdentity Identity { get; set; } = new();
|
||||
}
|
||||
}
|
||||
7
khmer_eid_backend/Models/User.cs
Normal file
7
khmer_eid_backend/Models/User.cs
Normal file
@ -0,0 +1,7 @@
|
||||
public class UserProfile
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string KratosId { get; set; } = ""; // link to Kratos user
|
||||
public string FullName { get; set; } = "";
|
||||
public string NationalId { get; set; } = "";
|
||||
}
|
||||
19
khmer_eid_backend/Program.cs
Normal file
19
khmer_eid_backend/Program.cs
Normal file
@ -0,0 +1,19 @@
|
||||
using khmer_eid_backend.Integrations.Ory;
|
||||
using Microsoft.AspNetCore.Authentication;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.Services.AddSingleton<KratosIntegration>();
|
||||
|
||||
builder.Services.AddAuthentication("Kratos")
|
||||
.AddScheme<AuthenticationSchemeOptions, KratosHandler>("Kratos", _ => { });
|
||||
|
||||
builder.Services.AddAuthorization();
|
||||
|
||||
builder.Services.AddControllers();
|
||||
|
||||
var app = builder.Build();
|
||||
app.UseAuthentication();
|
||||
app.UseAuthorization();
|
||||
app.MapControllers();
|
||||
app.Run();
|
||||
@ -1,10 +1,10 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
namespace khmer_eid_backend.Requests;
|
||||
|
||||
namespace khmereid_backend.Dtos;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
public class SignupRequest
|
||||
{
|
||||
[Required(ErrorMessage = "Phone number is required")]
|
||||
[Required]
|
||||
[RegularExpression(@"^\+855\d{8,9}$", ErrorMessage = "Phone number must be in the format +855XXXXXXXX or +855XXXXXXXXX")]
|
||||
public string Phone { get; set; } = string.Empty;
|
||||
}
|
||||
public string Phone { get; set; } = default!;
|
||||
}
|
||||
6
khmer_eid_backend/Resources/SignupResource.cs
Normal file
6
khmer_eid_backend/Resources/SignupResource.cs
Normal file
@ -0,0 +1,6 @@
|
||||
namespace khmer_eid_backend.Resources;
|
||||
|
||||
public class SignupResource
|
||||
{
|
||||
public string Phone { get; set; } = string.Empty;
|
||||
}
|
||||
0
khmer_eid_backend/Services/AuthService.cs
Normal file
0
khmer_eid_backend/Services/AuthService.cs
Normal file
29
khmer_eid_backend/appsettings.Development.json
Normal file
29
khmer_eid_backend/appsettings.Development.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AppSettings": {
|
||||
"ApplicationName": "Khmer eID Backend - Development"
|
||||
},
|
||||
"Ory": {
|
||||
"Kratos": {
|
||||
"PublicUrl": "http://localhost:4433",
|
||||
"AdminUrl": "http://localhost:4434"
|
||||
}
|
||||
},
|
||||
"Consul": {
|
||||
"Address": "http://consul:8500"
|
||||
},
|
||||
"Grpc": {
|
||||
"GDIOnline": {
|
||||
"Address": "https://gdi.dev.ekycsolutions.com"
|
||||
}
|
||||
},
|
||||
"Kyc": {
|
||||
"BaseUrl": "https://uat.ekycsolutions.com",
|
||||
"EKYC_SOLUTION_PRIVATE_KEY": "d4e5840f352d448a49f296e2344cffd406535969e5b7af84b8cb867dc6ab8258"
|
||||
}
|
||||
}
|
||||
@ -5,5 +5,8 @@
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
"AllowedHosts": "*",
|
||||
"AppSettings": {
|
||||
"ApplicationName": "Khmer eID Backend"
|
||||
}
|
||||
}
|
||||
BIN
khmer_eid_backend/bin/Debug/net9.0/Consul.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Consul.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/JsonSubTypes.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/JsonSubTypes.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.AspNetCore.OpenApi.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.AspNetCore.OpenApi.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Configuration.Binder.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Configuration.Binder.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Configuration.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Configuration.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Http.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Http.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Logging.Abstractions.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Logging.Abstractions.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Logging.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Logging.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Options.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Options.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Primitives.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Primitives.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.OpenApi.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Microsoft.OpenApi.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Newtonsoft.Json.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Newtonsoft.Json.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Ory.Kratos.Client.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Ory.Kratos.Client.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Polly.Core.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Polly.Core.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/Polly.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/Polly.dll
Executable file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/RestSharp.dll
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/RestSharp.dll
Executable file
Binary file not shown.
@ -0,0 +1,29 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AppSettings": {
|
||||
"ApplicationName": "Khmer eID Backend - Development"
|
||||
},
|
||||
"Ory": {
|
||||
"Kratos": {
|
||||
"PublicUrl": "http://localhost:4433",
|
||||
"AdminUrl": "http://localhost:4434"
|
||||
}
|
||||
},
|
||||
"Consul": {
|
||||
"Address": "http://consul:8500"
|
||||
},
|
||||
"Grpc": {
|
||||
"GDIOnline": {
|
||||
"Address": "https://gdi.dev.ekycsolutions.com"
|
||||
}
|
||||
},
|
||||
"Kyc": {
|
||||
"BaseUrl": "https://uat.ekycsolutions.com",
|
||||
"EKYC_SOLUTION_PRIVATE_KEY": "d4e5840f352d448a49f296e2344cffd406535969e5b7af84b8cb867dc6ab8258"
|
||||
}
|
||||
}
|
||||
12
khmer_eid_backend/bin/Debug/net9.0/appsettings.json
Normal file
12
khmer_eid_backend/bin/Debug/net9.0/appsettings.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*",
|
||||
"AppSettings": {
|
||||
"ApplicationName": "Khmer eID Backend"
|
||||
}
|
||||
}
|
||||
BIN
khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend
Executable file
BIN
khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend
Executable file
Binary file not shown.
458
khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.deps.json
Normal file
458
khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.deps.json
Normal file
@ -0,0 +1,458 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v9.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v9.0": {
|
||||
"khmer_eid_backend/1.0.0": {
|
||||
"dependencies": {
|
||||
"Consul": "1.7.14.9",
|
||||
"Microsoft.AspNetCore.OpenApi": "9.0.9",
|
||||
"Microsoft.Extensions.Http": "9.0.9",
|
||||
"Ory.Kratos.Client": "1.3.8"
|
||||
},
|
||||
"runtime": {
|
||||
"khmer_eid_backend.dll": {}
|
||||
}
|
||||
},
|
||||
"Consul/1.7.14.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.CSharp": "4.7.0",
|
||||
"Newtonsoft.Json": "13.0.3"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Consul.dll": {
|
||||
"assemblyVersion": "1.7.14.9",
|
||||
"fileVersion": "1.7.14.9"
|
||||
}
|
||||
}
|
||||
},
|
||||
"JsonSubTypes/2.0.1": {
|
||||
"dependencies": {
|
||||
"Newtonsoft.Json": "13.0.3"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/JsonSubTypes.dll": {
|
||||
"assemblyVersion": "2.0.1.0",
|
||||
"fileVersion": "2.0.1.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.AspNetCore.OpenApi/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.OpenApi": "1.6.17"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.AspNetCore.OpenApi.dll": {
|
||||
"assemblyVersion": "9.0.9.0",
|
||||
"fileVersion": "9.0.925.42003"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.CSharp/4.7.0": {},
|
||||
"Microsoft.Extensions.Configuration/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.Primitives": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Configuration.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Primitives": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Configuration.Binder.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/9.0.9": {
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration": "9.0.9",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Diagnostics.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.Options": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Http/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.Diagnostics": "9.0.9",
|
||||
"Microsoft.Extensions.Logging": "9.0.9",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.Options": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Http.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection": "9.0.9",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.Options": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Logging.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.Primitives": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Options.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/9.0.9": {
|
||||
"dependencies": {
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.Configuration.Binder": "9.0.9",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9",
|
||||
"Microsoft.Extensions.Options": "9.0.9",
|
||||
"Microsoft.Extensions.Primitives": "9.0.9"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/9.0.9": {
|
||||
"runtime": {
|
||||
"lib/net9.0/Microsoft.Extensions.Primitives.dll": {
|
||||
"assemblyVersion": "9.0.0.0",
|
||||
"fileVersion": "9.0.925.41916"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.OpenApi/1.6.17": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
|
||||
"assemblyVersion": "1.6.17.0",
|
||||
"fileVersion": "1.6.17.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Newtonsoft.Json/13.0.3": {
|
||||
"runtime": {
|
||||
"lib/net6.0/Newtonsoft.Json.dll": {
|
||||
"assemblyVersion": "13.0.0.0",
|
||||
"fileVersion": "13.0.3.27908"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Ory.Kratos.Client/1.3.8": {
|
||||
"dependencies": {
|
||||
"JsonSubTypes": "2.0.1",
|
||||
"Newtonsoft.Json": "13.0.3",
|
||||
"Polly": "8.1.0",
|
||||
"RestSharp": "110.2.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net6.0/Ory.Kratos.Client.dll": {
|
||||
"assemblyVersion": "0.0.0.0",
|
||||
"fileVersion": "0.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Polly/8.1.0": {
|
||||
"dependencies": {
|
||||
"Polly.Core": "8.1.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net6.0/Polly.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.1.0.2599"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Polly.Core/8.1.0": {
|
||||
"runtime": {
|
||||
"lib/net6.0/Polly.Core.dll": {
|
||||
"assemblyVersion": "8.0.0.0",
|
||||
"fileVersion": "8.1.0.2599"
|
||||
}
|
||||
}
|
||||
},
|
||||
"RestSharp/110.2.0": {
|
||||
"dependencies": {
|
||||
"System.Text.Json": "7.0.2"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net7.0/RestSharp.dll": {
|
||||
"assemblyVersion": "110.2.0.0",
|
||||
"fileVersion": "110.2.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Text.Encodings.Web/7.0.0": {},
|
||||
"System.Text.Json/7.0.2": {
|
||||
"dependencies": {
|
||||
"System.Text.Encodings.Web": "7.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"khmer_eid_backend/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Consul/1.7.14.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-PZD63GVWmIb5KcJL5NP5KZVAMREKBTL5mj9ra4Nm2vZeVjPlTkbFfLHxinEIB7BRzjyh/5V3P5RjrfJI52nocw==",
|
||||
"path": "consul/1.7.14.9",
|
||||
"hashPath": "consul.1.7.14.9.nupkg.sha512"
|
||||
},
|
||||
"JsonSubTypes/2.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-1Po+Ypf0SjCeEKx5+C89Nb5OgTcqNvfS3uTI46MUM+KEp6Rq/M0h+vVsTUt/6DFRwZMTpsAJM4yJrZmEObVANA==",
|
||||
"path": "jsonsubtypes/2.0.1",
|
||||
"hashPath": "jsonsubtypes.2.0.1.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.AspNetCore.OpenApi/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-3Sina0gS/CTYt9XG6DUFPdXOmJui7e551U0kO2bIiDk3vZ2sctxxenN+cE1a5CrUpjIVZfZr32neWYYRO+Piaw==",
|
||||
"path": "microsoft.aspnetcore.openapi/9.0.9",
|
||||
"hashPath": "microsoft.aspnetcore.openapi.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.CSharp/4.7.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==",
|
||||
"path": "microsoft.csharp/4.7.0",
|
||||
"hashPath": "microsoft.csharp.4.7.0.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-w87wF/90/VI0ZQBhf4rbMEeyEy0vi2WKjFmACsNAKNaorY+ZlVz7ddyXkbADvaWouMKffNmR0yQOGcrvSSvKGg==",
|
||||
"path": "microsoft.extensions.configuration/9.0.9",
|
||||
"hashPath": "microsoft.extensions.configuration.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Abstractions/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-p5RKAY9POvs3axwA/AQRuJeM8AHuE8h4qbP1NxQeGm0ep46aXz1oCLAp/oOYxX1GsjStgdhHrN3XXLLXr0+b3w==",
|
||||
"path": "microsoft.extensions.configuration.abstractions/9.0.9",
|
||||
"hashPath": "microsoft.extensions.configuration.abstractions.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Configuration.Binder/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-6SIp/6Bngk4jm2W36JekZbiIbFPdE/eMUtrJEqIqHGpd1zar3jvgnwxnpWQfzUiGrkyY8q8s6V82zkkEZozghA==",
|
||||
"path": "microsoft.extensions.configuration.binder/9.0.9",
|
||||
"hashPath": "microsoft.extensions.configuration.binder.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-zQV2WOSP+3z1EuK91ULxfGgo2Y75bTRnmJHp08+w/YXAyekZutX/qCd88/HOMNh35MDW9mJJJxPpMPS+1Rww8A==",
|
||||
"path": "microsoft.extensions.dependencyinjection/9.0.9",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA==",
|
||||
"path": "microsoft.extensions.dependencyinjection.abstractions/9.0.9",
|
||||
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-gtzl9SD6CvFYOb92qEF41Z9rICzYniM342TWbbJwN3eLS6a5fCLFvO1pQGtpMSnP3h1zHXupMEeKSA9musWYCQ==",
|
||||
"path": "microsoft.extensions.diagnostics/9.0.9",
|
||||
"hashPath": "microsoft.extensions.diagnostics.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-YHGmxccrVZ2Ar3eI+/NdbOHkd1/HzrHvmQ5yBsp0Gl7jTyBe6qcXNYjUt9v9JIO+Z14la44+YYEe63JSqs1fYg==",
|
||||
"path": "microsoft.extensions.diagnostics.abstractions/9.0.9",
|
||||
"hashPath": "microsoft.extensions.diagnostics.abstractions.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Http/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-dTmh5Rj4/WpirsN1PDs8YhyaodgtzxWqPKaT+B3Zn72uHKLJOuxIt06HTea126eEDWHYSLNN61I4snw7PuerFg==",
|
||||
"path": "microsoft.extensions.http/9.0.9",
|
||||
"hashPath": "microsoft.extensions.http.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-MaCB0Y9hNDs4YLu3HCJbo199WnJT8xSgajG1JYGANz9FkseQ5f3v/llu3HxLI6mjDlu7pa7ps9BLPWjKzsAAzQ==",
|
||||
"path": "microsoft.extensions.logging/9.0.9",
|
||||
"hashPath": "microsoft.extensions.logging.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Logging.Abstractions/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-FEgpSF+Z9StMvrsSViaybOBwR0f0ZZxDm8xV5cSOFiXN/t+ys+rwAlTd/6yG7Ld1gfppgvLcMasZry3GsI9lGA==",
|
||||
"path": "microsoft.extensions.logging.abstractions/9.0.9",
|
||||
"hashPath": "microsoft.extensions.logging.abstractions.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-loxGGHE1FC2AefwPHzrjPq7X92LQm64qnU/whKfo6oWaceewPUVYQJBJs3S3E2qlWwnCpeZ+dGCPTX+5dgVAuQ==",
|
||||
"path": "microsoft.extensions.options/9.0.9",
|
||||
"hashPath": "microsoft.extensions.options.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-n4DCdnn2qs6V5U06Sx62FySEAZsJiJJgOzrPHDh9hPK7c2W8hEabC76F3Re3tGPjpiKa02RvB6FxZyxo8iICzg==",
|
||||
"path": "microsoft.extensions.options.configurationextensions/9.0.9",
|
||||
"hashPath": "microsoft.extensions.options.configurationextensions.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Extensions.Primitives/9.0.9": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-z4pyMePOrl733ltTowbN565PxBw1oAr8IHmIXNDiDqd22nFpYltX9KhrNC/qBWAG1/Zx5MHX+cOYhWJQYCO/iw==",
|
||||
"path": "microsoft.extensions.primitives/9.0.9",
|
||||
"hashPath": "microsoft.extensions.primitives.9.0.9.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.OpenApi/1.6.17": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-Le+kehlmrlQfuDFUt1zZ2dVwrhFQtKREdKBo+rexOwaCoYP0/qpgT9tLxCsZjsgR5Itk1UKPcbgO+FyaNid/bA==",
|
||||
"path": "microsoft.openapi/1.6.17",
|
||||
"hashPath": "microsoft.openapi.1.6.17.nupkg.sha512"
|
||||
},
|
||||
"Newtonsoft.Json/13.0.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
|
||||
"path": "newtonsoft.json/13.0.3",
|
||||
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
|
||||
},
|
||||
"Ory.Kratos.Client/1.3.8": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-dvl9tw2w0dexSQF03APQ9bzs3cXrnTBnbzS+7TZ6Mc+e2bKgVXNHcRF4p8M2pAKNSTlT0+nFrtRmrATJ/VlVUw==",
|
||||
"path": "ory.kratos.client/1.3.8",
|
||||
"hashPath": "ory.kratos.client.1.3.8.nupkg.sha512"
|
||||
},
|
||||
"Polly/8.1.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-EeCJCjxX/Czm6sjnEWbeCBfogYHLcPNEL6yJT5nZzT0U78sizhTYhY2l5aXxTD+DWeVRLZtkUHqWp7ij+tvYCQ==",
|
||||
"path": "polly/8.1.0",
|
||||
"hashPath": "polly.8.1.0.nupkg.sha512"
|
||||
},
|
||||
"Polly.Core/8.1.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-M9Mlim+I9QNP/Hu6SuWMTUFnjQPvYViGk1IAJyvdl85zNedmos8Yzx74/xPa+TEi3uof3H1xQLwAzWebhEvEYw==",
|
||||
"path": "polly.core/8.1.0",
|
||||
"hashPath": "polly.core.8.1.0.nupkg.sha512"
|
||||
},
|
||||
"RestSharp/110.2.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-FXGw0IMcqY7yO/hzS9QrD3iNswNgb9UxJnxWmfOxmGs4kRlZWqdtBoGPLuhlbgsDzX1RFo4WKui8TGGKXWKalw==",
|
||||
"path": "restsharp/110.2.0",
|
||||
"hashPath": "restsharp.110.2.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Encodings.Web/7.0.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==",
|
||||
"path": "system.text.encodings.web/7.0.0",
|
||||
"hashPath": "system.text.encodings.web.7.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.Text.Json/7.0.2": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-/LZf/JrGyilojqwpaywb+sSz8Tew7ij4K/Sk+UW8AKfAK7KRhR6mKpKtTm06cYA7bCpGTWfYksIW+mVsdxPegQ==",
|
||||
"path": "system.text.json/7.0.2",
|
||||
"hashPath": "system.text.json.7.0.2.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.dll
Normal file
BIN
khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.dll
Normal file
Binary file not shown.
BIN
khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.pdb
Normal file
BIN
khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.pdb
Normal file
Binary file not shown.
@ -0,0 +1,19 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net9.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "9.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App",
|
||||
"version": "9.0.0"
|
||||
}
|
||||
],
|
||||
"configProperties": {
|
||||
"System.GC.Server": true,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
{"Version":1,"ManifestType":"Build","Endpoints":[]}
|
||||
17
khmer_eid_backend/khmer_eid_backend.csproj
Normal file
17
khmer_eid_backend/khmer_eid_backend.csproj
Normal file
@ -0,0 +1,17 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Consul" Version="1.7.14.9" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.9" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http" Version="9.0.9" />
|
||||
<PackageReference Include="Ory.Kratos.Client" Version="1.3.8" />
|
||||
<Protobuf Include="Protos\gdi_online\user.proto" GrpcServices="Client" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
6
khmer_eid_backend/khmer_eid_backend.http
Normal file
6
khmer_eid_backend/khmer_eid_backend.http
Normal file
@ -0,0 +1,6 @@
|
||||
@khmer_eid_backend_HostAddress = http://localhost:5103
|
||||
|
||||
GET {{khmer_eid_backend_HostAddress}}/weatherforecast/
|
||||
Accept: application/json
|
||||
|
||||
###
|
||||
@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
|
||||
@ -0,0 +1 @@
|
||||
obj/Debug/net9.0/Protos/gdi_online/User.cs: Protos/gdi_online/user.proto
|
||||
34
khmer_eid_backend/obj/Debug/net9.0/Protos/gdi_online/User.cs
Normal file
34
khmer_eid_backend/obj/Debug/net9.0/Protos/gdi_online/User.cs
Normal file
@ -0,0 +1,34 @@
|
||||
// <auto-generated>
|
||||
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
// source: Protos/gdi_online/user.proto
|
||||
// </auto-generated>
|
||||
#pragma warning disable 1591, 0612, 3021, 8981
|
||||
#region Designer generated code
|
||||
|
||||
using pb = global::Google.Protobuf;
|
||||
using pbc = global::Google.Protobuf.Collections;
|
||||
using pbr = global::Google.Protobuf.Reflection;
|
||||
using scg = global::System.Collections.Generic;
|
||||
/// <summary>Holder for reflection information generated from Protos/gdi_online/user.proto</summary>
|
||||
public static partial class UserReflection {
|
||||
|
||||
#region Descriptor
|
||||
/// <summary>File descriptor for Protos/gdi_online/user.proto</summary>
|
||||
public static pbr::FileDescriptor Descriptor {
|
||||
get { return descriptor; }
|
||||
}
|
||||
private static pbr::FileDescriptor descriptor;
|
||||
|
||||
static UserReflection() {
|
||||
byte[] descriptorData = global::System.Convert.FromBase64String(
|
||||
string.Concat(
|
||||
"ChxQcm90b3MvZ2RpX29ubGluZS91c2VyLnByb3Rv"));
|
||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
|
||||
new pbr::FileDescriptor[] { },
|
||||
new pbr::GeneratedClrTypeInfo(null, null, null));
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
#endregion Designer generated code
|
||||
BIN
khmer_eid_backend/obj/Debug/net9.0/apphost
Executable file
BIN
khmer_eid_backend/obj/Debug/net9.0/apphost
Executable file
Binary file not shown.
@ -0,0 +1,22 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("khmer_eid_backend")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("khmer_eid_backend")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("khmer_eid_backend")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
@ -0,0 +1 @@
|
||||
61fbb10b42c7bda158ee99212ee4786aaac8a58c9e716b0f4e4c0b8efe0cc1f9
|
||||
@ -0,0 +1,21 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = net9.0
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb = true
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = khmer_eid_backend
|
||||
build_property.RootNamespace = khmer_eid_backend
|
||||
build_property.ProjectDir = /Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.RazorLangVersion = 9.0
|
||||
build_property.SupportLocalizedComponentNames =
|
||||
build_property.GenerateRazorMetadataSourceChecksumAttributes =
|
||||
build_property.MSBuildProjectDirectory = /Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend
|
||||
build_property._RazorSourceGeneratorDebug =
|
||||
build_property.EffectiveAnalysisLevelStyle = 9.0
|
||||
build_property.EnableCodeStyleSeverity =
|
||||
@ -0,0 +1,17 @@
|
||||
// <auto-generated/>
|
||||
global using global::Microsoft.AspNetCore.Builder;
|
||||
global using global::Microsoft.AspNetCore.Hosting;
|
||||
global using global::Microsoft.AspNetCore.Http;
|
||||
global using global::Microsoft.AspNetCore.Routing;
|
||||
global using global::Microsoft.Extensions.Configuration;
|
||||
global using global::Microsoft.Extensions.DependencyInjection;
|
||||
global using global::Microsoft.Extensions.Hosting;
|
||||
global using global::Microsoft.Extensions.Logging;
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.IO;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Net.Http;
|
||||
global using global::System.Net.Http.Json;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
@ -0,0 +1,16 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Microsoft.AspNetCore.OpenApi")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
1cba3987e078add6be94db12fbe6474e14778bff75fedf54a8faf81ecb0716bd
|
||||
@ -0,0 +1,99 @@
|
||||
/app/bin/Debug/net9.0/appsettings.Development.json
|
||||
/app/bin/Debug/net9.0/appsettings.json
|
||||
/app/bin/Debug/net9.0/khmer_eid_backend.staticwebassets.endpoints.json
|
||||
/app/bin/Debug/net9.0/khmer_eid_backend
|
||||
/app/bin/Debug/net9.0/khmer_eid_backend.deps.json
|
||||
/app/bin/Debug/net9.0/khmer_eid_backend.runtimeconfig.json
|
||||
/app/bin/Debug/net9.0/khmer_eid_backend.dll
|
||||
/app/bin/Debug/net9.0/khmer_eid_backend.pdb
|
||||
/app/bin/Debug/net9.0/Consul.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.AspNetCore.OpenApi.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Configuration.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Configuration.Binder.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Http.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Logging.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Logging.Abstractions.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Options.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.Extensions.Primitives.dll
|
||||
/app/bin/Debug/net9.0/Microsoft.OpenApi.dll
|
||||
/app/bin/Debug/net9.0/Newtonsoft.Json.dll
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.csproj.AssemblyReference.cache
|
||||
/app/obj/Debug/net9.0/rpswa.dswa.cache.json
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.GeneratedMSBuildEditorConfig.editorconfig
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.AssemblyInfoInputs.cache
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.AssemblyInfo.cs
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.csproj.CoreCompileInputs.cache
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.MvcApplicationPartsAssemblyInfo.cs
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.MvcApplicationPartsAssemblyInfo.cache
|
||||
/app/obj/Debug/net9.0/rjimswa.dswa.cache.json
|
||||
/app/obj/Debug/net9.0/rjsmrazor.dswa.cache.json
|
||||
/app/obj/Debug/net9.0/rjsmcshtml.dswa.cache.json
|
||||
/app/obj/Debug/net9.0/scopedcss/bundle/khmer_eid_backend.styles.css
|
||||
/app/obj/Debug/net9.0/staticwebassets.build.json
|
||||
/app/obj/Debug/net9.0/staticwebassets.build.json.cache
|
||||
/app/obj/Debug/net9.0/staticwebassets.development.json
|
||||
/app/obj/Debug/net9.0/staticwebassets.build.endpoints.json
|
||||
/app/obj/Debug/net9.0/khmer_ei.AB393336.Up2Date
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.dll
|
||||
/app/obj/Debug/net9.0/refint/khmer_eid_backend.dll
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.pdb
|
||||
/app/obj/Debug/net9.0/khmer_eid_backend.genruntimeconfig.cache
|
||||
/app/obj/Debug/net9.0/ref/khmer_eid_backend.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/appsettings.Development.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/appsettings.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.staticwebassets.endpoints.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.deps.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.runtimeconfig.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/khmer_eid_backend.pdb
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Consul.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.AspNetCore.OpenApi.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Configuration.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Configuration.Abstractions.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Configuration.Binder.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Diagnostics.Abstractions.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Http.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Logging.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Logging.Abstractions.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Options.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.Extensions.Primitives.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Microsoft.OpenApi.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Newtonsoft.Json.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.csproj.AssemblyReference.cache
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/rpswa.dswa.cache.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.GeneratedMSBuildEditorConfig.editorconfig
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.AssemblyInfoInputs.cache
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.AssemblyInfo.cs
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.csproj.CoreCompileInputs.cache
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.MvcApplicationPartsAssemblyInfo.cs
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.MvcApplicationPartsAssemblyInfo.cache
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/rjimswa.dswa.cache.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/rjsmrazor.dswa.cache.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/rjsmcshtml.dswa.cache.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/scopedcss/bundle/khmer_eid_backend.styles.css
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/staticwebassets.build.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/staticwebassets.build.json.cache
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/staticwebassets.development.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/staticwebassets.build.endpoints.json
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_ei.AB393336.Up2Date
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/refint/khmer_eid_backend.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.pdb
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.genruntimeconfig.cache
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/Debug/net9.0/ref/khmer_eid_backend.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/JsonSubTypes.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Ory.Kratos.Client.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Polly.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/Polly.Core.dll
|
||||
/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/bin/Debug/net9.0/RestSharp.dll
|
||||
BIN
khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.dll
Normal file
BIN
khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.dll
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
6abcebc0587d88cb0bb07ce5d3b92829d22bba60493640a78e598e12da53714d
|
||||
BIN
khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.pdb
Normal file
BIN
khmer_eid_backend/obj/Debug/net9.0/khmer_eid_backend.pdb
Normal file
Binary file not shown.
BIN
khmer_eid_backend/obj/Debug/net9.0/ref/khmer_eid_backend.dll
Normal file
BIN
khmer_eid_backend/obj/Debug/net9.0/ref/khmer_eid_backend.dll
Normal file
Binary file not shown.
BIN
khmer_eid_backend/obj/Debug/net9.0/refint/khmer_eid_backend.dll
Normal file
BIN
khmer_eid_backend/obj/Debug/net9.0/refint/khmer_eid_backend.dll
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
{"GlobalPropertiesHash":"hLaq/9fRltoqAQYk//S1ccPyAsYZ/f5pweB8kt3iaSE=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["pV1VdkIX8xZmGEw/WQxQsIphTlnQ8qx1tMqHUEJpCok=","zVrbkSKLBP11XPyaUz5bEP8Ahr\u002BYDn/dL/\u002BJgljkfSU=","DOB4g6UVOdlReaMb1lWjCTXR6q\u002BXnkk2oZ4ne\u002BG5\u002B3M=","EIwv7E7Wq2PqbqjkjrzE3aEBTVc7bxGUg/YStC4ehos=","Fxhhz3CBfv7z09juV7ju3HxhHmYUiA4vRqnjrz6WLG0="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
@ -0,0 +1 @@
|
||||
{"GlobalPropertiesHash":"TLcU5CTe5YVSPBjak4sWWGX/tE/XZPWcTKK5jHN1WUM=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["pV1VdkIX8xZmGEw/WQxQsIphTlnQ8qx1tMqHUEJpCok=","zVrbkSKLBP11XPyaUz5bEP8Ahr\u002BYDn/dL/\u002BJgljkfSU=","DOB4g6UVOdlReaMb1lWjCTXR6q\u002BXnkk2oZ4ne\u002BG5\u002B3M=","EIwv7E7Wq2PqbqjkjrzE3aEBTVc7bxGUg/YStC4ehos=","Fxhhz3CBfv7z09juV7ju3HxhHmYUiA4vRqnjrz6WLG0="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
1
khmer_eid_backend/obj/Debug/net9.0/rpswa.dswa.cache.json
Normal file
1
khmer_eid_backend/obj/Debug/net9.0/rpswa.dswa.cache.json
Normal file
@ -0,0 +1 @@
|
||||
{"GlobalPropertiesHash":"ZdrHShuyN5m1K2F/61uspkSjyKuLAosdTDNN8ymKbjE=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["pV1VdkIX8xZmGEw/WQxQsIphTlnQ8qx1tMqHUEJpCok=","zVrbkSKLBP11XPyaUz5bEP8Ahr\u002BYDn/dL/\u002BJgljkfSU="],"CachedAssets":{},"CachedCopyCandidates":{}}
|
||||
@ -0,0 +1 @@
|
||||
{"Version":1,"ManifestType":"Build","Endpoints":[]}
|
||||
@ -0,0 +1 @@
|
||||
{"Version":1,"Hash":"PkfWvTmQcVXGM6ySQWUbz9RtH3oKyUKkLYhMX3BrigU=","Source":"khmer_eid_backend","BasePath":"_content/khmer_eid_backend","Mode":"Default","ManifestType":"Build","ReferencedProjectsConfiguration":[],"DiscoveryPatterns":[],"Assets":[],"Endpoints":[]}
|
||||
@ -0,0 +1 @@
|
||||
PkfWvTmQcVXGM6ySQWUbz9RtH3oKyUKkLYhMX3BrigU=
|
||||
@ -0,0 +1,88 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/khmer_eid_backend.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/khmer_eid_backend.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/khmer_eid_backend.csproj",
|
||||
"projectName": "khmer_eid_backend",
|
||||
"projectPath": "/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/khmer_eid_backend.csproj",
|
||||
"packagesPath": "/Users/ichen/.nuget/packages/",
|
||||
"outputPath": "/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/obj/",
|
||||
"projectStyle": "PackageReference",
|
||||
"configFilePaths": [
|
||||
"/Users/ichen/.nuget/NuGet/NuGet.Config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net9.0"
|
||||
],
|
||||
"sources": {
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "9.0.300"
|
||||
},
|
||||
"frameworks": {
|
||||
"net9.0": {
|
||||
"targetAlias": "net9.0",
|
||||
"dependencies": {
|
||||
"Consul": {
|
||||
"target": "Package",
|
||||
"version": "[1.7.14.9, )"
|
||||
},
|
||||
"Microsoft.AspNetCore.OpenApi": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.9, )"
|
||||
},
|
||||
"Microsoft.Extensions.Http": {
|
||||
"target": "Package",
|
||||
"version": "[9.0.9, )"
|
||||
},
|
||||
"Ory.Kratos.Client": {
|
||||
"target": "Package",
|
||||
"version": "[1.3.8, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.AspNetCore.App": {
|
||||
"privateAssets": "none"
|
||||
},
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/9.0.305/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
15
khmer_eid_backend/obj/khmer_eid_backend.csproj.nuget.g.props
Normal file
15
khmer_eid_backend/obj/khmer_eid_backend.csproj.nuget.g.props
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/Users/ichen/.nuget/packages/</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/Users/ichen/.nuget/packages/</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.14.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="/Users/ichen/.nuget/packages/" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)system.text.json/7.0.2/buildTransitive/net6.0/System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json/7.0.2/buildTransitive/net6.0/System.Text.Json.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options/9.0.9/buildTransitive/net8.0/Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options/9.0.9/buildTransitive/net8.0/Microsoft.Extensions.Options.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.binder/9.0.9/buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.binder/9.0.9/buildTransitive/netstandard2.0/Microsoft.Extensions.Configuration.Binder.targets')" />
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/9.0.9/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/9.0.9/buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
1188
khmer_eid_backend/obj/project.assets.json
Normal file
1188
khmer_eid_backend/obj/project.assets.json
Normal file
File diff suppressed because it is too large
Load Diff
34
khmer_eid_backend/obj/project.nuget.cache
Normal file
34
khmer_eid_backend/obj/project.nuget.cache
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "R3ZV9VRLbu4=",
|
||||
"success": true,
|
||||
"projectFilePath": "/Users/ichen/Projects/ekyc-khmer-eID/khmer-eID-backend/khmer_eid_backend/khmer_eid_backend.csproj",
|
||||
"expectedPackageFiles": [
|
||||
"/Users/ichen/.nuget/packages/consul/1.7.14.9/consul.1.7.14.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/jsonsubtypes/2.0.1/jsonsubtypes.2.0.1.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.aspnetcore.openapi/9.0.9/microsoft.aspnetcore.openapi.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.csharp/4.7.0/microsoft.csharp.4.7.0.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.configuration/9.0.9/microsoft.extensions.configuration.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.configuration.abstractions/9.0.9/microsoft.extensions.configuration.abstractions.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.configuration.binder/9.0.9/microsoft.extensions.configuration.binder.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.dependencyinjection/9.0.9/microsoft.extensions.dependencyinjection.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.dependencyinjection.abstractions/9.0.9/microsoft.extensions.dependencyinjection.abstractions.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.diagnostics/9.0.9/microsoft.extensions.diagnostics.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.diagnostics.abstractions/9.0.9/microsoft.extensions.diagnostics.abstractions.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.http/9.0.9/microsoft.extensions.http.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.logging/9.0.9/microsoft.extensions.logging.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.logging.abstractions/9.0.9/microsoft.extensions.logging.abstractions.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.options/9.0.9/microsoft.extensions.options.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.options.configurationextensions/9.0.9/microsoft.extensions.options.configurationextensions.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.extensions.primitives/9.0.9/microsoft.extensions.primitives.9.0.9.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/microsoft.openapi/1.6.17/microsoft.openapi.1.6.17.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/newtonsoft.json/13.0.3/newtonsoft.json.13.0.3.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/ory.kratos.client/1.3.8/ory.kratos.client.1.3.8.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/polly/8.1.0/polly.8.1.0.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/polly.core/8.1.0/polly.core.8.1.0.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/restsharp/110.2.0/restsharp.110.2.0.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/system.text.encodings.web/7.0.0/system.text.encodings.web.7.0.0.nupkg.sha512",
|
||||
"/Users/ichen/.nuget/packages/system.text.json/7.0.2/system.text.json.7.0.2.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user