Full Code of labring/laf for AI

main d7a1d258aa3d cached
1545 files
19.4 MB
5.2M tokens
23404 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (20,628K chars total). Download the full file to get everything.
Repository: labring/laf
Branch: main
Commit: d7a1d258aa3d
Files: 1545
Total size: 19.4 MB

Directory structure:
gitextract_pjbqfead/

├── .editorconfig
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── question.yml
│   ├── actions/
│   │   └── build-docs/
│   │       └── action.yml
│   ├── gh-bot.yml
│   ├── no-response.yml
│   ├── stale.yml
│   └── workflows/
│       ├── build-scripts-updated.yml
│       ├── build-sealos-cluster-image.yml
│       ├── deploy-doc.yml
│       ├── doc-deploy.yml
│       ├── doc-preview.yml
│       ├── dockerize-runtime-exporter.yml
│       ├── dockerize-runtime-nodejs.yml
│       ├── dockerize-server.yml
│       ├── dockerize-web.yml
│       ├── e2e.yml
│       ├── link-pr.yml
│       ├── release.yml
│       └── sync-upstream.yml
├── .gitignore
├── .husky/
│   └── pre-commit
├── .lycheeignore
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── CHANGELOG.md
├── CLAUDE.md
├── LICENSE
├── README.md
├── README_en.md
├── SECURITY.md
├── build/
│   ├── Kubefile
│   ├── README.md
│   ├── charts/
│   │   ├── kube-prometheus-stack/
│   │   │   ├── .helmignore
│   │   │   ├── CONTRIBUTING.md
│   │   │   ├── Chart.yaml
│   │   │   ├── README.md
│   │   │   ├── charts/
│   │   │   │   ├── crds/
│   │   │   │   │   ├── Chart.yaml
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── crds/
│   │   │   │   │       ├── crd-alertmanagerconfigs.yaml
│   │   │   │   │       ├── crd-alertmanagers.yaml
│   │   │   │   │       ├── crd-podmonitors.yaml
│   │   │   │   │       ├── crd-probes.yaml
│   │   │   │   │       ├── crd-prometheusagents.yaml
│   │   │   │   │       ├── crd-prometheuses.yaml
│   │   │   │   │       ├── crd-prometheusrules.yaml
│   │   │   │   │       ├── crd-scrapeconfigs.yaml
│   │   │   │   │       ├── crd-servicemonitors.yaml
│   │   │   │   │       └── crd-thanosrulers.yaml
│   │   │   │   ├── grafana/
│   │   │   │   │   ├── .helmignore
│   │   │   │   │   ├── Chart.yaml
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ci/
│   │   │   │   │   │   ├── default-values.yaml
│   │   │   │   │   │   ├── with-affinity-values.yaml
│   │   │   │   │   │   ├── with-dashboard-json-values.yaml
│   │   │   │   │   │   ├── with-dashboard-values.yaml
│   │   │   │   │   │   ├── with-extraconfigmapmounts-values.yaml
│   │   │   │   │   │   ├── with-image-renderer-values.yaml
│   │   │   │   │   │   └── with-persistence.yaml
│   │   │   │   │   ├── dashboards/
│   │   │   │   │   │   └── custom-dashboard.json
│   │   │   │   │   ├── templates/
│   │   │   │   │   │   ├── NOTES.txt
│   │   │   │   │   │   ├── _helpers.tpl
│   │   │   │   │   │   ├── _pod.tpl
│   │   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   │   ├── configmap-dashboard-provider.yaml
│   │   │   │   │   │   ├── configmap.yaml
│   │   │   │   │   │   ├── dashboards-json-configmap.yaml
│   │   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   │   ├── extra-manifests.yaml
│   │   │   │   │   │   ├── headless-service.yaml
│   │   │   │   │   │   ├── hpa.yaml
│   │   │   │   │   │   ├── image-renderer-deployment.yaml
│   │   │   │   │   │   ├── image-renderer-hpa.yaml
│   │   │   │   │   │   ├── image-renderer-network-policy.yaml
│   │   │   │   │   │   ├── image-renderer-service.yaml
│   │   │   │   │   │   ├── image-renderer-servicemonitor.yaml
│   │   │   │   │   │   ├── ingress.yaml
│   │   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   │   ├── poddisruptionbudget.yaml
│   │   │   │   │   │   ├── podsecuritypolicy.yaml
│   │   │   │   │   │   ├── pvc.yaml
│   │   │   │   │   │   ├── role.yaml
│   │   │   │   │   │   ├── rolebinding.yaml
│   │   │   │   │   │   ├── secret-env.yaml
│   │   │   │   │   │   ├── secret.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   │   ├── statefulset.yaml
│   │   │   │   │   │   └── tests/
│   │   │   │   │   │       ├── test-configmap.yaml
│   │   │   │   │   │       ├── test-podsecuritypolicy.yaml
│   │   │   │   │   │       ├── test-role.yaml
│   │   │   │   │   │       ├── test-rolebinding.yaml
│   │   │   │   │   │       ├── test-serviceaccount.yaml
│   │   │   │   │   │       └── test.yaml
│   │   │   │   │   └── values.yaml
│   │   │   │   ├── kube-state-metrics/
│   │   │   │   │   ├── .helmignore
│   │   │   │   │   ├── Chart.yaml
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── templates/
│   │   │   │   │   │   ├── NOTES.txt
│   │   │   │   │   │   ├── _helpers.tpl
│   │   │   │   │   │   ├── ciliumnetworkpolicy.yaml
│   │   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   │   ├── crs-configmap.yaml
│   │   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   │   ├── extra-manifests.yaml
│   │   │   │   │   │   ├── kubeconfig-secret.yaml
│   │   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   │   ├── pdb.yaml
│   │   │   │   │   │   ├── podsecuritypolicy.yaml
│   │   │   │   │   │   ├── psp-clusterrole.yaml
│   │   │   │   │   │   ├── psp-clusterrolebinding.yaml
│   │   │   │   │   │   ├── rbac-configmap.yaml
│   │   │   │   │   │   ├── role.yaml
│   │   │   │   │   │   ├── rolebinding.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   │   ├── stsdiscovery-role.yaml
│   │   │   │   │   │   ├── stsdiscovery-rolebinding.yaml
│   │   │   │   │   │   └── verticalpodautoscaler.yaml
│   │   │   │   │   └── values.yaml
│   │   │   │   ├── prometheus-node-exporter/
│   │   │   │   │   ├── .helmignore
│   │   │   │   │   ├── Chart.yaml
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ci/
│   │   │   │   │   │   └── port-values.yaml
│   │   │   │   │   ├── templates/
│   │   │   │   │   │   ├── NOTES.txt
│   │   │   │   │   │   ├── _helpers.tpl
│   │   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   │   ├── daemonset.yaml
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── extra-manifests.yaml
│   │   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   │   ├── podmonitor.yaml
│   │   │   │   │   │   ├── psp-clusterrole.yaml
│   │   │   │   │   │   ├── psp-clusterrolebinding.yaml
│   │   │   │   │   │   ├── psp.yaml
│   │   │   │   │   │   ├── rbac-configmap.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   │   └── verticalpodautoscaler.yaml
│   │   │   │   │   └── values.yaml
│   │   │   │   └── prometheus-windows-exporter/
│   │   │   │       ├── .helmignore
│   │   │   │       ├── Chart.yaml
│   │   │   │       ├── README.md
│   │   │   │       ├── templates/
│   │   │   │       │   ├── _helpers.tpl
│   │   │   │       │   ├── config.yaml
│   │   │   │       │   ├── daemonset.yaml
│   │   │   │       │   ├── podmonitor.yaml
│   │   │   │       │   ├── service.yaml
│   │   │   │       │   ├── serviceaccount.yaml
│   │   │   │       │   └── servicemonitor.yaml
│   │   │   │       └── values.yaml
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── alertmanager/
│   │   │   │   │   ├── alertmanager.yaml
│   │   │   │   │   ├── extrasecret.yaml
│   │   │   │   │   ├── ingress.yaml
│   │   │   │   │   ├── ingressperreplica.yaml
│   │   │   │   │   ├── podDisruptionBudget.yaml
│   │   │   │   │   ├── psp-role.yaml
│   │   │   │   │   ├── psp-rolebinding.yaml
│   │   │   │   │   ├── psp.yaml
│   │   │   │   │   ├── secret.yaml
│   │   │   │   │   ├── service.yaml
│   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   └── serviceperreplica.yaml
│   │   │   │   ├── exporters/
│   │   │   │   │   ├── core-dns/
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-api-server/
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-controller-manager/
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-dns/
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-etcd/
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-proxy/
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-scheduler/
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   └── kubelet/
│   │   │   │   │       └── servicemonitor.yaml
│   │   │   │   ├── extra-objects.yaml
│   │   │   │   ├── grafana/
│   │   │   │   │   ├── configmap-dashboards.yaml
│   │   │   │   │   ├── configmaps-datasources.yaml
│   │   │   │   │   └── dashboards-1.14/
│   │   │   │   │       ├── alertmanager-overview.yaml
│   │   │   │   │       ├── apiserver.yaml
│   │   │   │   │       ├── cluster-total.yaml
│   │   │   │   │       ├── controller-manager.yaml
│   │   │   │   │       ├── etcd.yaml
│   │   │   │   │       ├── grafana-overview.yaml
│   │   │   │   │       ├── k8s-coredns.yaml
│   │   │   │   │       ├── k8s-resources-cluster.yaml
│   │   │   │   │       ├── k8s-resources-multicluster.yaml
│   │   │   │   │       ├── k8s-resources-namespace.yaml
│   │   │   │   │       ├── k8s-resources-node.yaml
│   │   │   │   │       ├── k8s-resources-pod.yaml
│   │   │   │   │       ├── k8s-resources-windows-cluster.yaml
│   │   │   │   │       ├── k8s-resources-windows-namespace.yaml
│   │   │   │   │       ├── k8s-resources-windows-pod.yaml
│   │   │   │   │       ├── k8s-resources-workload.yaml
│   │   │   │   │       ├── k8s-resources-workloads-namespace.yaml
│   │   │   │   │       ├── k8s-windows-cluster-rsrc-use.yaml
│   │   │   │   │       ├── k8s-windows-node-rsrc-use.yaml
│   │   │   │   │       ├── kubelet.yaml
│   │   │   │   │       ├── namespace-by-pod.yaml
│   │   │   │   │       ├── namespace-by-workload.yaml
│   │   │   │   │       ├── node-cluster-rsrc-use.yaml
│   │   │   │   │       ├── node-rsrc-use.yaml
│   │   │   │   │       ├── nodes-darwin.yaml
│   │   │   │   │       ├── nodes.yaml
│   │   │   │   │       ├── persistentvolumesusage.yaml
│   │   │   │   │       ├── pod-total.yaml
│   │   │   │   │       ├── prometheus-remote-write.yaml
│   │   │   │   │       ├── prometheus.yaml
│   │   │   │   │       ├── proxy.yaml
│   │   │   │   │       ├── scheduler.yaml
│   │   │   │   │       └── workload-total.yaml
│   │   │   │   ├── prometheus/
│   │   │   │   │   ├── _rules.tpl
│   │   │   │   │   ├── additionalAlertRelabelConfigs.yaml
│   │   │   │   │   ├── additionalAlertmanagerConfigs.yaml
│   │   │   │   │   ├── additionalPrometheusRules.yaml
│   │   │   │   │   ├── additionalScrapeConfigs.yaml
│   │   │   │   │   ├── ciliumnetworkpolicy.yaml
│   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   ├── csi-secret.yaml
│   │   │   │   │   ├── extrasecret.yaml
│   │   │   │   │   ├── ingress.yaml
│   │   │   │   │   ├── ingressThanosSidecar.yaml
│   │   │   │   │   ├── ingressperreplica.yaml
│   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   ├── podDisruptionBudget.yaml
│   │   │   │   │   ├── podmonitors.yaml
│   │   │   │   │   ├── prometheus.yaml
│   │   │   │   │   ├── psp-clusterrole.yaml
│   │   │   │   │   ├── psp-clusterrolebinding.yaml
│   │   │   │   │   ├── psp.yaml
│   │   │   │   │   ├── rules-1.14/
│   │   │   │   │   │   ├── alertmanager.rules.yaml
│   │   │   │   │   │   ├── config-reloaders.yaml
│   │   │   │   │   │   ├── etcd.yaml
│   │   │   │   │   │   ├── general.rules.yaml
│   │   │   │   │   │   ├── k8s.rules.yaml
│   │   │   │   │   │   ├── kube-apiserver-availability.rules.yaml
│   │   │   │   │   │   ├── kube-apiserver-burnrate.rules.yaml
│   │   │   │   │   │   ├── kube-apiserver-histogram.rules.yaml
│   │   │   │   │   │   ├── kube-apiserver-slos.yaml
│   │   │   │   │   │   ├── kube-prometheus-general.rules.yaml
│   │   │   │   │   │   ├── kube-prometheus-node-recording.rules.yaml
│   │   │   │   │   │   ├── kube-scheduler.rules.yaml
│   │   │   │   │   │   ├── kube-state-metrics.yaml
│   │   │   │   │   │   ├── kubelet.rules.yaml
│   │   │   │   │   │   ├── kubernetes-apps.yaml
│   │   │   │   │   │   ├── kubernetes-resources.yaml
│   │   │   │   │   │   ├── kubernetes-storage.yaml
│   │   │   │   │   │   ├── kubernetes-system-apiserver.yaml
│   │   │   │   │   │   ├── kubernetes-system-controller-manager.yaml
│   │   │   │   │   │   ├── kubernetes-system-kube-proxy.yaml
│   │   │   │   │   │   ├── kubernetes-system-kubelet.yaml
│   │   │   │   │   │   ├── kubernetes-system-scheduler.yaml
│   │   │   │   │   │   ├── kubernetes-system.yaml
│   │   │   │   │   │   ├── node-exporter.rules.yaml
│   │   │   │   │   │   ├── node-exporter.yaml
│   │   │   │   │   │   ├── node-network.yaml
│   │   │   │   │   │   ├── node.rules.yaml
│   │   │   │   │   │   ├── prometheus-operator.yaml
│   │   │   │   │   │   ├── prometheus.yaml
│   │   │   │   │   │   ├── windows.node.rules.yaml
│   │   │   │   │   │   └── windows.pod.rules.yaml
│   │   │   │   │   ├── service.yaml
│   │   │   │   │   ├── serviceThanosSidecar.yaml
│   │   │   │   │   ├── serviceThanosSidecarExternal.yaml
│   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   ├── servicemonitorThanosSidecar.yaml
│   │   │   │   │   ├── servicemonitors.yaml
│   │   │   │   │   └── serviceperreplica.yaml
│   │   │   │   ├── prometheus-operator/
│   │   │   │   │   ├── admission-webhooks/
│   │   │   │   │   │   ├── job-patch/
│   │   │   │   │   │   │   ├── ciliumnetworkpolicy-createSecret.yaml
│   │   │   │   │   │   │   ├── ciliumnetworkpolicy-patchWebhook.yaml
│   │   │   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   │   │   ├── job-createSecret.yaml
│   │   │   │   │   │   │   ├── job-patchWebhook.yaml
│   │   │   │   │   │   │   ├── networkpolicy-createSecret.yaml
│   │   │   │   │   │   │   ├── networkpolicy-patchWebhook.yaml
│   │   │   │   │   │   │   ├── psp.yaml
│   │   │   │   │   │   │   ├── role.yaml
│   │   │   │   │   │   │   ├── rolebinding.yaml
│   │   │   │   │   │   │   └── serviceaccount.yaml
│   │   │   │   │   │   ├── mutatingWebhookConfiguration.yaml
│   │   │   │   │   │   └── validatingWebhookConfiguration.yaml
│   │   │   │   │   ├── aggregate-clusterroles.yaml
│   │   │   │   │   ├── certmanager.yaml
│   │   │   │   │   ├── ciliumnetworkpolicy.yaml
│   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   ├── psp-clusterrole.yaml
│   │   │   │   │   ├── psp-clusterrolebinding.yaml
│   │   │   │   │   ├── psp.yaml
│   │   │   │   │   ├── service.yaml
│   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   └── verticalpodautoscaler.yaml
│   │   │   │   └── thanos-ruler/
│   │   │   │       ├── extrasecret.yaml
│   │   │   │       ├── ingress.yaml
│   │   │   │       ├── podDisruptionBudget.yaml
│   │   │   │       ├── ruler.yaml
│   │   │   │       ├── service.yaml
│   │   │   │       ├── serviceaccount.yaml
│   │   │   │       └── servicemonitor.yaml
│   │   │   └── values.yaml
│   │   ├── laf-server/
│   │   │   ├── .helmignore
│   │   │   ├── Chart.yaml
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── cert-issuer.yaml
│   │   │   │   ├── deployment.yaml
│   │   │   │   ├── hpa.yaml
│   │   │   │   ├── ingress.yaml
│   │   │   │   ├── rumtime-exporter.yaml
│   │   │   │   ├── service.yaml
│   │   │   │   ├── serviceaccount.yaml
│   │   │   │   └── tests/
│   │   │   │       └── test-connection.yaml
│   │   │   └── values.yaml
│   │   ├── laf-web/
│   │   │   ├── .helmignore
│   │   │   ├── Chart.yaml
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── deployment.yaml
│   │   │   │   ├── hpa.yaml
│   │   │   │   ├── ingress.yaml
│   │   │   │   ├── service.yaml
│   │   │   │   ├── serviceaccount.yaml
│   │   │   │   └── tests/
│   │   │   │       └── test-connection.yaml
│   │   │   └── values.yaml
│   │   ├── minio/
│   │   │   ├── Chart.yaml
│   │   │   ├── README.md
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helper_create_bucket.txt
│   │   │   │   ├── _helper_create_policy.txt
│   │   │   │   ├── _helper_create_user.txt
│   │   │   │   ├── _helper_custom_command.txt
│   │   │   │   ├── _helper_policy.tpl
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── configmap.yaml
│   │   │   │   ├── console-ingress.yaml
│   │   │   │   ├── console-service.yaml
│   │   │   │   ├── deployment.yaml
│   │   │   │   ├── ingress.yaml
│   │   │   │   ├── networkpolicy.yaml
│   │   │   │   ├── poddisruptionbudget.yaml
│   │   │   │   ├── post-install-create-bucket-job.yaml
│   │   │   │   ├── post-install-create-policy-job.yaml
│   │   │   │   ├── post-install-create-user-job.yaml
│   │   │   │   ├── post-install-custom-command.yaml
│   │   │   │   ├── pvc.yaml
│   │   │   │   ├── secrets.yaml
│   │   │   │   ├── securitycontextconstraints.yaml
│   │   │   │   ├── service.yaml
│   │   │   │   ├── serviceaccount.yaml
│   │   │   │   ├── servicemonitor.yaml
│   │   │   │   └── statefulset.yaml
│   │   │   └── values.yaml
│   │   └── prometheus-mongodb-exporter/
│   │       ├── .helmignore
│   │       ├── Chart.yaml
│   │       ├── README.md
│   │       ├── ci/
│   │       │   ├── env-values.yaml
│   │       │   └── servicemonitor-disabled-values.yaml
│   │       ├── templates/
│   │       │   ├── NOTES.txt
│   │       │   ├── _helpers.tpl
│   │       │   ├── deployment.yaml
│   │       │   ├── secret.yaml
│   │       │   ├── service.yaml
│   │       │   ├── serviceaccount.yaml
│   │       │   ├── servicemonitor.yaml
│   │       │   └── tests/
│   │       │       └── test-connection.yaml
│   │       └── values.yaml
│   ├── images/
│   │   └── shim/
│   │       └── ImageList
│   ├── mongodb.yaml
│   ├── prometheus-helm.yaml
│   └── start.sh
├── cli/
│   ├── .eslintrc
│   ├── .npmignore
│   ├── README.md
│   ├── package.json
│   ├── src/
│   │   ├── action/
│   │   │   ├── application/
│   │   │   │   └── index.ts
│   │   │   ├── database/
│   │   │   │   └── index.ts
│   │   │   ├── dependency/
│   │   │   │   └── index.ts
│   │   │   ├── deploy/
│   │   │   │   └── index.ts
│   │   │   ├── environment/
│   │   │   │   └── index.ts
│   │   │   ├── function/
│   │   │   │   └── index.ts
│   │   │   ├── policy/
│   │   │   │   ├── dto.ts
│   │   │   │   └── index.ts
│   │   │   ├── storage/
│   │   │   │   ├── index.ts
│   │   │   │   └── s3.ts
│   │   │   ├── trigger/
│   │   │   │   └── index.ts
│   │   │   ├── user/
│   │   │   │   └── index.ts
│   │   │   └── website/
│   │   │       └── index.ts
│   │   ├── api/
│   │   │   ├── custom.ts
│   │   │   ├── debug.ts
│   │   │   ├── pat.ts
│   │   │   └── v1/
│   │   │       ├── account.ts
│   │   │       ├── application.ts
│   │   │       ├── authentication.ts
│   │   │       ├── billing.ts
│   │   │       ├── data-contracts.ts
│   │   │       ├── database.ts
│   │   │       ├── function.ts
│   │   │       ├── functiontemplate.ts
│   │   │       ├── group.ts
│   │   │       ├── monitor.ts
│   │   │       ├── public.ts
│   │   │       ├── recyclebin.ts
│   │   │       ├── storage.ts
│   │   │       ├── trigger.ts
│   │   │       ├── user.ts
│   │   │       └── websitehosting.ts
│   │   ├── command/
│   │   │   ├── application/
│   │   │   │   └── index.ts
│   │   │   ├── database/
│   │   │   │   └── index.ts
│   │   │   ├── dependency/
│   │   │   │   └── index.ts
│   │   │   ├── deploy/
│   │   │   │   └── index.ts
│   │   │   ├── environment/
│   │   │   │   └── index.ts
│   │   │   ├── function/
│   │   │   │   └── index.ts
│   │   │   ├── policy/
│   │   │   │   └── index.ts
│   │   │   ├── storage/
│   │   │   │   └── index.ts
│   │   │   ├── trigger/
│   │   │   │   └── index.ts
│   │   │   ├── user/
│   │   │   │   └── index.ts
│   │   │   └── website/
│   │   │       └── index.ts
│   │   ├── common/
│   │   │   ├── constant.ts
│   │   │   ├── hook.ts
│   │   │   ├── prompts.ts
│   │   │   └── wait.ts
│   │   ├── main.ts
│   │   ├── schema/
│   │   │   ├── app.ts
│   │   │   ├── deploy.ts
│   │   │   ├── environment.ts
│   │   │   ├── function.ts
│   │   │   ├── project.ts
│   │   │   └── user.ts
│   │   └── util/
│   │       ├── file.ts
│   │       ├── format.ts
│   │       ├── print.ts
│   │       ├── request.ts
│   │       └── sys.ts
│   ├── template/
│   │   ├── gitignore
│   │   ├── global.d.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   └── tsconfig.json
├── deploy/
│   ├── README.md
│   ├── install-on-linux.sh
│   └── install-on-mac.sh
├── docs/
│   ├── .eslintignore
│   ├── .eslintrc
│   ├── .gitignore
│   ├── .vitepress/
│   │   ├── config.mts
│   │   ├── en.mts
│   │   ├── theme/
│   │   │   ├── custom.css
│   │   │   └── index.ts
│   │   └── zh.mts
│   ├── Dockerfile
│   ├── en/
│   │   ├── architecture.md
│   │   └── index.md
│   ├── package.json
│   ├── public/
│   │   ├── CNAME
│   │   ├── fancybox.css
│   │   └── fancybox.umd.js
│   ├── scripts/
│   │   └── check-version.js
│   └── zh/
│       ├── cli/
│       │   └── index.md
│       ├── client-sdk/
│       │   └── index.md
│       ├── cloud-database/
│       │   ├── database-ql/
│       │   │   ├── add.md
│       │   │   ├── aggregate.md
│       │   │   ├── command.md
│       │   │   ├── del.md
│       │   │   ├── find.md
│       │   │   ├── geo.md
│       │   │   ├── index.md
│       │   │   ├── operator.md
│       │   │   ├── policy.md
│       │   │   ├── quickstart.md
│       │   │   └── update.md
│       │   ├── delete.md
│       │   ├── find.md
│       │   ├── index.md
│       │   ├── insert.md
│       │   ├── query/
│       │   │   ├── array.md
│       │   │   ├── condition.md
│       │   │   ├── nested.md
│       │   │   ├── pagination.md
│       │   │   ├── regex.md
│       │   │   └── sort.md
│       │   ├── quick-start.md
│       │   └── update.md
│       ├── cloud-function/
│       │   ├── auth.md
│       │   ├── cron.md
│       │   ├── deps.md
│       │   ├── env.md
│       │   ├── fetch.md
│       │   ├── files.md
│       │   ├── import.md
│       │   ├── index.md
│       │   ├── init.md
│       │   ├── interceptor.md
│       │   ├── quick-start.md
│       │   ├── request.md
│       │   ├── response.md
│       │   └── websocket.md
│       ├── cloud-storage/
│       │   ├── delete.md
│       │   ├── download-url.md
│       │   ├── index.md
│       │   ├── list.md
│       │   ├── read.md
│       │   ├── upload-url.md
│       │   ├── upload.md
│       │   └── website-hosting.md
│       ├── examples/
│       │   ├── index.md
│       │   ├── website-hosting-ci-cd.md
│       │   └── wxmp-upload.md
│       ├── index.md
│       ├── other/
│       │   └── sealaf-migration.md
│       └── quick-start/
│           ├── Todo.md
│           └── login.md
├── e2e/
│   ├── .eslintrc
│   ├── .gitignore
│   ├── 0-user/
│   │   ├── 00-signup.test.ts
│   │   └── 01-signin.test.ts
│   ├── 1-application/
│   │   └── 00-create.test.ts
│   ├── 2-monitor/
│   │   └── 00-query.test.ts
│   ├── 9-cleaning/
│   │   └── 00-clean.test.ts
│   ├── api.ts
│   ├── config.ts
│   ├── e2e.sh
│   ├── jest-sequencer.js
│   ├── jest.config.js
│   ├── package.json
│   ├── system-db.ts
│   └── tsconfig.json
├── lerna.json
├── package.json
├── packages/
│   ├── client-sdk/
│   │   ├── .eslintrc
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── cloud.ts
│   │   │   ├── index-bundle.ts
│   │   │   ├── index.ts
│   │   │   ├── request/
│   │   │   │   ├── index.ts
│   │   │   │   ├── request-taro.ts
│   │   │   │   ├── request-uni.ts
│   │   │   │   ├── request-wxmp.ts
│   │   │   │   └── request.ts
│   │   │   └── types.ts
│   │   ├── tests/
│   │   │   ├── _app.js
│   │   │   ├── http/
│   │   │   │   ├── add_test.js
│   │   │   │   ├── config.js
│   │   │   │   ├── read_test.js
│   │   │   │   └── update_test.js
│   │   │   └── units/
│   │   │       └── cloud_test.js
│   │   ├── tsconfig.esm.json
│   │   ├── tsconfig.json
│   │   └── webpack.config.js
│   ├── cloud-sdk/
│   │   ├── .eslintrc
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── cloud.interface.ts
│   │   │   ├── cloud.ts
│   │   │   ├── function.interface.ts
│   │   │   ├── index.ts
│   │   │   ├── storage.ts
│   │   │   └── util.ts
│   │   └── tsconfig.json
│   ├── database-proxy/
│   │   ├── .eslintrc
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── docs/
│   │   │   ├── convert-sql.md
│   │   │   ├── qa-1.md
│   │   │   ├── qa-query-rules.md
│   │   │   ├── ruler_v2_design.md
│   │   │   ├── rules-v1.json
│   │   │   ├── rules-v2.json
│   │   │   └── todo.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── accessor/
│   │   │   │   ├── accessor.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── mongo.ts
│   │   │   │   ├── mysql.ts
│   │   │   │   └── sql_builder.ts
│   │   │   ├── dbi/
│   │   │   │   ├── index.ts
│   │   │   │   └── request.ts
│   │   │   ├── index.ts
│   │   │   ├── logger.ts
│   │   │   ├── policy/
│   │   │   │   ├── index.ts
│   │   │   │   ├── interface.ts
│   │   │   │   └── policy.ts
│   │   │   ├── processor.ts
│   │   │   ├── proxy.ts
│   │   │   ├── types.ts
│   │   │   ├── utils/
│   │   │   │   ├── constraint.ts
│   │   │   │   ├── script.ts
│   │   │   │   └── security.ts
│   │   │   └── validators/
│   │   │       ├── condition/
│   │   │       │   └── index.ts
│   │   │       ├── data/
│   │   │       │   └── index.ts
│   │   │       ├── index.ts
│   │   │       ├── join/
│   │   │       │   └── index.ts
│   │   │       ├── lookup/
│   │   │       │   └── index.ts
│   │   │       ├── multi/
│   │   │       │   └── index.ts
│   │   │       └── query/
│   │   │           └── index.ts
│   │   ├── tests/
│   │   │   ├── mongo_db/
│   │   │   │   ├── _db.js
│   │   │   │   ├── add.test.js
│   │   │   │   ├── aggregate.test.js
│   │   │   │   ├── count.test.js
│   │   │   │   ├── dbi.test.js
│   │   │   │   ├── read.test.js
│   │   │   │   ├── remove.test.js
│   │   │   │   └── update.test.js
│   │   │   ├── mysql_db/
│   │   │   │   ├── _db.js
│   │   │   │   ├── count.test.ignore.js
│   │   │   │   ├── dbi.test.ignore.js
│   │   │   │   ├── delete.test.ignore.js
│   │   │   │   ├── insert.test.ignore.js
│   │   │   │   ├── join.test.ignore.js
│   │   │   │   ├── read.test.ignore.js
│   │   │   │   └── update.test.ignore.js
│   │   │   ├── units/
│   │   │   │   ├── accessor.test.js
│   │   │   │   ├── policy/
│   │   │   │   │   ├── data.add.constraints/
│   │   │   │   │   │   ├── condition.test.js
│   │   │   │   │   │   ├── default.test.js
│   │   │   │   │   │   ├── in.test.js
│   │   │   │   │   │   ├── length.test.js
│   │   │   │   │   │   ├── match.test.js
│   │   │   │   │   │   ├── number.test.js
│   │   │   │   │   │   ├── required.test.js
│   │   │   │   │   │   └── test.js
│   │   │   │   │   ├── data.update.constraints/
│   │   │   │   │   │   ├── data.replace.test.js
│   │   │   │   │   │   ├── default.test.js
│   │   │   │   │   │   └── required.test.js
│   │   │   │   │   ├── query.constraints/
│   │   │   │   │   │   ├── condition.test.js
│   │   │   │   │   │   ├── default.test.js
│   │   │   │   │   │   ├── in.test.js
│   │   │   │   │   │   ├── length.test.js
│   │   │   │   │   │   ├── match.test.js
│   │   │   │   │   │   ├── number.test.js
│   │   │   │   │   │   └── required.test.js
│   │   │   │   │   ├── ruler.schema.js
│   │   │   │   │   ├── ruler.test.js
│   │   │   │   │   ├── rules.json
│   │   │   │   │   ├── validator.join.test.js
│   │   │   │   │   └── validator.multi.test.js
│   │   │   │   ├── proxy.test.js
│   │   │   │   ├── sql_builder.test.js
│   │   │   │   └── sql_query_builder.test.js
│   │   │   └── utils.js
│   │   └── tsconfig.json
│   ├── database-ql/
│   │   ├── .eslintrc
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── README.md
│   │   │   ├── aggregate.ts
│   │   │   ├── collection.ts
│   │   │   ├── command.ts
│   │   │   ├── commands/
│   │   │   │   ├── logic.ts
│   │   │   │   ├── query.ts
│   │   │   │   └── update.ts
│   │   │   ├── constant.ts
│   │   │   ├── document.ts
│   │   │   ├── geo/
│   │   │   │   ├── index.ts
│   │   │   │   ├── interface.ts
│   │   │   │   ├── lineString.ts
│   │   │   │   ├── multiLineString.ts
│   │   │   │   ├── multiPoint.ts
│   │   │   │   ├── multiPolygon.ts
│   │   │   │   ├── point.ts
│   │   │   │   └── polygon.ts
│   │   │   ├── helper/
│   │   │   │   └── symbol.ts
│   │   │   ├── index.ts
│   │   │   ├── interface.ts
│   │   │   ├── operator-map.ts
│   │   │   ├── query.ts
│   │   │   ├── regexp/
│   │   │   │   └── index.ts
│   │   │   ├── result-types.ts
│   │   │   ├── serializer/
│   │   │   │   ├── common.ts
│   │   │   │   ├── datatype.ts
│   │   │   │   ├── query.ts
│   │   │   │   └── update.ts
│   │   │   ├── serverDate/
│   │   │   │   └── index.ts
│   │   │   ├── util.ts
│   │   │   ├── utils/
│   │   │   │   ├── symbol.ts
│   │   │   │   ├── type.ts
│   │   │   │   └── utils.ts
│   │   │   └── validate.ts
│   │   ├── tests/
│   │   │   └── units/
│   │   │       ├── _utils.js
│   │   │       ├── aggregate/
│   │   │       │   ├── index.test.js
│   │   │       │   ├── lookup.test.js
│   │   │       │   └── match.test.js
│   │   │       ├── doc/
│   │   │       │   ├── create.test.js
│   │   │       │   ├── get.test.js
│   │   │       │   └── update.test.js
│   │   │       ├── get/
│   │   │       │   ├── field.test.js
│   │   │       │   ├── get.test.js
│   │   │       │   ├── limit.skip.test.js
│   │   │       │   ├── orderby.test.js
│   │   │       │   ├── page.test.js
│   │   │       │   └── where.test.js
│   │   │       ├── remove/
│   │   │       │   └── remove.test.js
│   │   │       └── update/
│   │   │           └── update.test.js
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── eslint-config-laf/
│   │   ├── .eslintrc
│   │   ├── cli.js
│   │   ├── docs.js
│   │   ├── package.js
│   │   ├── package.json
│   │   ├── runtime.js
│   │   ├── server.js
│   │   ├── service.js
│   │   ├── test.js
│   │   └── web.js
│   ├── node-modules-utils/
│   │   ├── .eslintrc
│   │   ├── README.md
│   │   ├── copy2app.sh
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── declaration.ts
│   │   │   ├── import-parser.ts
│   │   │   ├── index.ts
│   │   │   └── package.ts
│   │   ├── tests/
│   │   │   ├── cloud-sdk.test.js
│   │   │   ├── declare.test.js
│   │   │   ├── import.test.js
│   │   │   └── parse.test.js
│   │   └── tsconfig.json
│   └── run-tests.sh
├── runtimes/
│   ├── nodejs/
│   │   ├── .dockerignore
│   │   ├── .eslintrc
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── Dockerfile.init
│   │   ├── README.md
│   │   ├── build-image.sh
│   │   ├── functions/
│   │   │   ├── global.d.ts
│   │   │   └── tsconfig.json
│   │   ├── init.sh
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── config.ts
│   │   │   ├── constants.ts
│   │   │   ├── db.ts
│   │   │   ├── handler/
│   │   │   │   ├── db-proxy.ts
│   │   │   │   ├── invoke.ts
│   │   │   │   ├── openapi.ts
│   │   │   │   ├── router.ts
│   │   │   │   └── typings.ts
│   │   │   ├── index.ts
│   │   │   ├── init.ts
│   │   │   ├── storage-server.ts
│   │   │   └── support/
│   │   │       ├── cloud-sdk.ts
│   │   │       ├── database-change-stream/
│   │   │       │   ├── conf-change-stream.ts
│   │   │       │   ├── index.ts
│   │   │       │   └── website-hosting-change-stream.ts
│   │   │       ├── engine/
│   │   │       │   ├── cache.ts
│   │   │       │   ├── console.ts
│   │   │       │   ├── executor.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── module.ts
│   │   │       │   └── types.ts
│   │   │       ├── init-hook.ts
│   │   │       ├── logger.ts
│   │   │       ├── lsp.ts
│   │   │       ├── module-hot-reload.ts
│   │   │       ├── openapi.ts
│   │   │       ├── policy.ts
│   │   │       ├── token.ts
│   │   │       ├── types.ts
│   │   │       ├── utils.ts
│   │   │       └── ws.ts
│   │   ├── start.sh
│   │   ├── tsconfig.json
│   │   └── upload-dependencies.sh
│   └── python/
│       └── TBD.md
├── server/
│   ├── .dockerignore
│   ├── .eslintrc
│   ├── .gitignore
│   ├── Dockerfile
│   ├── README.md
│   ├── build-image.sh
│   ├── nest-cli.json
│   ├── package.json
│   ├── src/
│   │   ├── account/
│   │   │   ├── account.controller.ts
│   │   │   ├── account.module.ts
│   │   │   ├── account.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-charge-order.dto.ts
│   │   │   │   ├── get-charge-order.dto.ts
│   │   │   │   ├── invite-code.dto.ts
│   │   │   │   └── use-gift-code.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── account-charge-order.ts
│   │   │   │   ├── account-charge-reward.ts
│   │   │   │   ├── account-gift-code.ts
│   │   │   │   ├── account-transaction.ts
│   │   │   │   ├── account.ts
│   │   │   │   └── payment-channel.ts
│   │   │   ├── interface/
│   │   │   │   └── account-query.interface.ts
│   │   │   └── payment/
│   │   │       ├── payment-channel.service.ts
│   │   │       ├── types.ts
│   │   │       └── wechat-pay.service.ts
│   │   ├── app.controller.ts
│   │   ├── app.interceptor.ts
│   │   ├── app.module.ts
│   │   ├── app.service.ts
│   │   ├── application/
│   │   │   ├── application-task.service.ts
│   │   │   ├── application.controller.ts
│   │   │   ├── application.module.ts
│   │   │   ├── application.service.ts
│   │   │   ├── bundle.service.ts
│   │   │   ├── configuration.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-application.dto.ts
│   │   │   │   ├── create-autoscaling.dto.ts
│   │   │   │   ├── create-env.dto.ts
│   │   │   │   ├── pod.dto.ts
│   │   │   │   └── update-application.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── application-bundle.ts
│   │   │   │   ├── application-configuration.ts
│   │   │   │   ├── application.ts
│   │   │   │   └── runtime.ts
│   │   │   ├── environment.controller.ts
│   │   │   ├── environment.service.ts
│   │   │   ├── events/
│   │   │   │   ├── application-bundle-updating.event.ts
│   │   │   │   └── application-creating.event.ts
│   │   │   ├── pod.controller.ts
│   │   │   └── pod.service.ts
│   │   ├── authentication/
│   │   │   ├── application.auth.guard.ts
│   │   │   ├── authentication.controller.ts
│   │   │   ├── authentication.module.ts
│   │   │   ├── authentication.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── email-signin.dto.ts
│   │   │   │   ├── email-verify-code.dto.ts
│   │   │   │   ├── github-bind.dto.ts
│   │   │   │   ├── github-jump-login.dto.ts
│   │   │   │   ├── github-signin.dto.ts
│   │   │   │   ├── passwd-check.dto.ts
│   │   │   │   ├── passwd-reset.dto.ts
│   │   │   │   ├── passwd-signin.dto.ts
│   │   │   │   ├── passwd-signup.dto.ts
│   │   │   │   ├── pat2token.dto.ts
│   │   │   │   ├── phone-signin.dto.ts
│   │   │   │   ├── send-email-code.dto.ts
│   │   │   │   └── send-phone-code.dto.ts
│   │   │   ├── email/
│   │   │   │   ├── email.controller.ts
│   │   │   │   ├── email.service.ts
│   │   │   │   └── mailer.service.ts
│   │   │   ├── entities/
│   │   │   │   ├── auth-provider.ts
│   │   │   │   ├── email-verify-code.ts
│   │   │   │   ├── invite-code.ts
│   │   │   │   ├── sms-verify-code.ts
│   │   │   │   └── types.ts
│   │   │   ├── github/
│   │   │   │   ├── github.controller.ts
│   │   │   │   └── github.service.ts
│   │   │   ├── jwt.auth.guard.ts
│   │   │   ├── jwt.strategy.ts
│   │   │   ├── phone/
│   │   │   │   ├── phone.controller.ts
│   │   │   │   ├── phone.service.ts
│   │   │   │   └── sms.service.ts
│   │   │   └── user-passwd/
│   │   │       ├── user-password.controller.ts
│   │   │       └── user-password.service.ts
│   │   ├── billing/
│   │   │   ├── billing-creation-task.service.ts
│   │   │   ├── billing-payment-task.service.ts
│   │   │   ├── billing.controller.ts
│   │   │   ├── billing.module.ts
│   │   │   ├── billing.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── billings.dto.ts
│   │   │   │   └── calculate-price.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── application-billing.ts
│   │   │   │   ├── network-traffic.ts
│   │   │   │   └── resource.ts
│   │   │   ├── interface/
│   │   │   │   └── billing-query.interface.ts
│   │   │   ├── resource.controller.ts
│   │   │   └── resource.service.ts
│   │   ├── constants.ts
│   │   ├── database/
│   │   │   ├── collection/
│   │   │   │   ├── collection.controller.ts
│   │   │   │   └── collection.service.ts
│   │   │   ├── database-usage-capture-task.service.ts
│   │   │   ├── database-usage-limit-task.service.ts
│   │   │   ├── database.controller.ts
│   │   │   ├── database.module.ts
│   │   │   ├── database.service.ts
│   │   │   ├── dedicated-database/
│   │   │   │   ├── dedicated-database-task.service.ts
│   │   │   │   └── dedicated-database.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-collection.dto.ts
│   │   │   │   ├── create-dedicated-database.dto.ts
│   │   │   │   ├── create-policy.dto.ts
│   │   │   │   ├── create-rule.dto.ts
│   │   │   │   ├── import-database.dto.ts
│   │   │   │   ├── update-collection.dto.ts
│   │   │   │   ├── update-dedicated-database-state.dto.ts
│   │   │   │   ├── update-dedicated-database.dto.ts
│   │   │   │   ├── update-policy.dto.ts
│   │   │   │   └── update-rule.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── collection.ts
│   │   │   │   ├── database-policy.ts
│   │   │   │   ├── database-sync-record.ts
│   │   │   │   ├── database.ts
│   │   │   │   └── dedicated-database.ts
│   │   │   ├── listeners/
│   │   │   │   └── application.listener.ts
│   │   │   ├── mongo.service.ts
│   │   │   ├── monitor/
│   │   │   │   ├── monitor.controller.ts
│   │   │   │   └── monitor.service.ts
│   │   │   └── policy/
│   │   │       ├── policy-rule.controller.ts
│   │   │       ├── policy-rule.service.ts
│   │   │       ├── policy.controller.ts
│   │   │       └── policy.service.ts
│   │   ├── dependency/
│   │   │   ├── dependency.controller.ts
│   │   │   ├── dependency.module.ts
│   │   │   ├── dependency.service.ts
│   │   │   └── dto/
│   │   │       ├── create-dependency.dto.ts
│   │   │       ├── delete-dependency.dto.ts
│   │   │       └── update-dependency.dto.ts
│   │   ├── function/
│   │   │   ├── dto/
│   │   │   │   ├── compile-function.dto.ts
│   │   │   │   ├── create-function.dto.ts
│   │   │   │   ├── update-function-debug.dto.ts
│   │   │   │   └── update-function.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── cloud-function-history.ts
│   │   │   │   └── cloud-function.ts
│   │   │   ├── function.controller.ts
│   │   │   ├── function.module.ts
│   │   │   └── function.service.ts
│   │   ├── function-template/
│   │   │   ├── dto/
│   │   │   │   ├── create-function-template.dto.ts
│   │   │   │   ├── function-template-usedBy.dto.ts
│   │   │   │   ├── function-templates.dto.ts
│   │   │   │   ├── update-function-template.dto.ts
│   │   │   │   └── use-function-template.dto.ts
│   │   │   ├── entities/
│   │   │   │   └── function-template.ts
│   │   │   ├── function-template.controller.ts
│   │   │   ├── function-template.module.ts
│   │   │   └── function-template.service.ts
│   │   ├── gateway/
│   │   │   ├── bucket-domain-task.service.ts
│   │   │   ├── bucket-domain.service.ts
│   │   │   ├── certificate.service.ts
│   │   │   ├── entities/
│   │   │   │   ├── bucket-domain.ts
│   │   │   │   └── runtime-domain.ts
│   │   │   ├── gateway.module.ts
│   │   │   ├── ingress/
│   │   │   │   ├── bucket-ingress.service.ts
│   │   │   │   ├── runtime-ingress.service.ts
│   │   │   │   └── website-ingress.service.ts
│   │   │   ├── runtime-domain-task.service.ts
│   │   │   ├── runtime-domain.service.ts
│   │   │   └── website-task.service.ts
│   │   ├── generated/
│   │   │   └── i18n.generated.ts
│   │   ├── group/
│   │   │   ├── dto/
│   │   │   │   ├── create-group.dto.ts
│   │   │   │   ├── find-group-invite-code.dto.ts
│   │   │   │   ├── find-group-member.dto.ts
│   │   │   │   ├── get-group-invite-code-detail.dto.ts
│   │   │   │   ├── update-group-invite-code.dto.ts
│   │   │   │   ├── update-group-member-role.dto.ts
│   │   │   │   └── update-group.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── group-application.ts
│   │   │   │   ├── group-invite-code.ts
│   │   │   │   ├── group-member.ts
│   │   │   │   └── group.ts
│   │   │   ├── group-application/
│   │   │   │   ├── group-application.controller.ts
│   │   │   │   └── group-application.service.ts
│   │   │   ├── group-auth.guard.ts
│   │   │   ├── group-invite/
│   │   │   │   ├── group-invite.controller.ts
│   │   │   │   └── group-invite.service.ts
│   │   │   ├── group-member/
│   │   │   │   ├── group-member.controller.ts
│   │   │   │   └── group-member.service.ts
│   │   │   ├── group-role.decorator.ts
│   │   │   ├── group.controller.ts
│   │   │   ├── group.module.ts
│   │   │   └── group.service.ts
│   │   ├── i18n/
│   │   │   ├── en/
│   │   │   │   ├── function.json
│   │   │   │   ├── notification.json
│   │   │   │   └── subscription.json
│   │   │   ├── zh/
│   │   │   │   ├── function.json
│   │   │   │   ├── notification.json
│   │   │   │   └── subscription.json
│   │   │   └── zh-CN/
│   │   │       ├── function.json
│   │   │       ├── notification.json
│   │   │       └── subscription.json
│   │   ├── initializer/
│   │   │   ├── deploy-manifest/
│   │   │   │   ├── database.yaml
│   │   │   │   ├── databaseOpsRequestHorizontalScaling.yaml
│   │   │   │   ├── databaseOpsRequestRestart.yaml
│   │   │   │   ├── databaseOpsRequestStart.yaml
│   │   │   │   ├── databaseOpsRequestStop.yaml
│   │   │   │   ├── databaseOpsRequestVerticalScaling.yaml
│   │   │   │   └── databaseOpsRequestVolumeExpansion.yaml
│   │   │   ├── initializer.module.ts
│   │   │   └── initializer.service.ts
│   │   ├── instance/
│   │   │   ├── instance-task.service.ts
│   │   │   ├── instance.module.ts
│   │   │   └── instance.service.ts
│   │   ├── interceptor/
│   │   │   ├── dto/
│   │   │   │   └── http-interceptor.dto.ts
│   │   │   ├── http-interceptor.service.ts
│   │   │   └── interceptor.module.ts
│   │   ├── log/
│   │   │   ├── entities/
│   │   │   │   └── function-log.ts
│   │   │   ├── log.controller.ts
│   │   │   └── log.module.ts
│   │   ├── main.ts
│   │   ├── monitor/
│   │   │   ├── dto/
│   │   │   │   └── query-metrics.dto.ts
│   │   │   ├── monitor.controller.ts
│   │   │   ├── monitor.module.ts
│   │   │   └── monitor.service.ts
│   │   ├── notification/
│   │   │   ├── entities/
│   │   │   │   └── notification.ts
│   │   │   ├── notification-task.service.ts
│   │   │   ├── notification-type.ts
│   │   │   ├── notification.controller.ts
│   │   │   ├── notification.module.ts
│   │   │   └── notification.service.ts
│   │   ├── recycle-bin/
│   │   │   ├── cloud-function/
│   │   │   │   ├── dto/
│   │   │   │   │   ├── delete-recycle-bin-functions.dto.ts
│   │   │   │   │   ├── get-recycle-bin-functions.dto.ts
│   │   │   │   │   └── restore-recycle-bin-functions.dto.ts
│   │   │   │   ├── function-recycle-bin.controller.ts
│   │   │   │   ├── function-recycle-bin.service.ts
│   │   │   │   └── interface/
│   │   │   │       └── function-recycle-bin-query.interface.ts
│   │   │   ├── entities/
│   │   │   │   └── recycle-bin.ts
│   │   │   └── recycle-bin.module.ts
│   │   ├── region/
│   │   │   ├── cluster/
│   │   │   │   ├── cluster.service.spec.ts
│   │   │   │   ├── cluster.service.ts
│   │   │   │   └── types.ts
│   │   │   ├── entities/
│   │   │   │   └── region.ts
│   │   │   ├── region.controller.ts
│   │   │   ├── region.module.ts
│   │   │   └── region.service.ts
│   │   ├── runtime-builtin-deps.ts
│   │   ├── setting/
│   │   │   ├── entities/
│   │   │   │   └── setting.ts
│   │   │   ├── setting.controller.ts
│   │   │   ├── setting.module.ts
│   │   │   └── setting.service.ts
│   │   ├── storage/
│   │   │   ├── bucket-task.service.ts
│   │   │   ├── bucket.controller.ts
│   │   │   ├── bucket.service.ts
│   │   │   ├── cloud-bin-bucket.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-bucket.dto.ts
│   │   │   │   └── update-bucket.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── minio.ts
│   │   │   │   ├── storage-bucket.ts
│   │   │   │   └── storage-user.ts
│   │   │   ├── minio/
│   │   │   │   ├── minio.service.ts
│   │   │   │   └── types.ts
│   │   │   ├── storage-usage-capture-task.service.ts
│   │   │   ├── storage-usage-limit-task.service.ts
│   │   │   ├── storage-user-task.service.ts
│   │   │   ├── storage.module.ts
│   │   │   └── storage.service.ts
│   │   ├── system-database.ts
│   │   ├── trigger/
│   │   │   ├── cron-job.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-trigger.dto.ts
│   │   │   │   └── update-trigger.dto.ts
│   │   │   ├── entities/
│   │   │   │   └── cron-trigger.ts
│   │   │   ├── trigger-task.service.ts
│   │   │   ├── trigger.controller.ts
│   │   │   ├── trigger.module.ts
│   │   │   └── trigger.service.ts
│   │   ├── user/
│   │   │   ├── dto/
│   │   │   │   ├── bind-email.dto.ts
│   │   │   │   ├── bind-phone.dto.ts
│   │   │   │   ├── bind-username.dto.ts
│   │   │   │   ├── create-pat.dto.ts
│   │   │   │   └── update-avatar.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── pat.ts
│   │   │   │   ├── user-avatar.ts
│   │   │   │   ├── user-password.ts
│   │   │   │   ├── user-profile.ts
│   │   │   │   ├── user-quota.ts
│   │   │   │   └── user.ts
│   │   │   ├── pat.controller.ts
│   │   │   ├── pat.service.ts
│   │   │   ├── quota.service.ts
│   │   │   ├── user.controller.ts
│   │   │   ├── user.module.ts
│   │   │   └── user.service.ts
│   │   ├── utils/
│   │   │   ├── crypto.ts
│   │   │   ├── decorator.ts
│   │   │   ├── getter.ts
│   │   │   ├── interface.ts
│   │   │   ├── k8s-error.ts
│   │   │   ├── lang.ts
│   │   │   ├── number.ts
│   │   │   ├── p-limit.ts
│   │   │   ├── random.ts
│   │   │   └── response.ts
│   │   └── website/
│   │       ├── dto/
│   │       │   ├── create-website.dto.ts
│   │       │   └── update-website.dto.ts
│   │       ├── entities/
│   │       │   └── website.ts
│   │       ├── website.controller.ts
│   │       ├── website.module.ts
│   │       └── website.service.ts
│   ├── test/
│   │   ├── app.e2e-spec.ts
│   │   └── jest-e2e.json
│   ├── tsconfig.build.json
│   └── tsconfig.json
├── services/
│   └── runtime-exporter/
│       ├── .eslintrc
│       ├── .gitignore
│       ├── Dockerfile
│       ├── package.json
│       ├── src/
│       │   ├── config.ts
│       │   ├── handler/
│       │   │   ├── get-db-metrics.ts
│       │   │   └── get-runtime-metrics.ts
│       │   ├── helper/
│       │   │   └── cluster.service.ts
│       │   ├── index.ts
│       │   └── logger.ts
│       ├── tsconfig.dev.json
│       └── tsconfig.json
└── web/
    ├── .dockerignore
    ├── .eslintrc
    ├── .gitignore
    ├── .stylelintrc.json
    ├── .swagger.config.js
    ├── Dockerfile
    ├── README.md
    ├── index.html
    ├── nginx.conf
    ├── package.json
    ├── postcss.config.cjs
    ├── public/
    │   ├── js/
    │   │   └── monaco-editor.0.43.0/
    │   │       ├── base/
    │   │       │   ├── common/
    │   │       │   │   └── worker/
    │   │       │   │       ├── simpleWorker.nls.de.js
    │   │       │   │       ├── simpleWorker.nls.es.js
    │   │       │   │       ├── simpleWorker.nls.fr.js
    │   │       │   │       ├── simpleWorker.nls.it.js
    │   │       │   │       ├── simpleWorker.nls.ja.js
    │   │       │   │       ├── simpleWorker.nls.js
    │   │       │   │       ├── simpleWorker.nls.ko.js
    │   │       │   │       ├── simpleWorker.nls.ru.js
    │   │       │   │       ├── simpleWorker.nls.zh-cn.js
    │   │       │   │       └── simpleWorker.nls.zh-tw.js
    │   │       │   └── worker/
    │   │       │       └── workerMain.js
    │   │       ├── basic-languages/
    │   │       │   ├── abap/
    │   │       │   │   └── abap.js
    │   │       │   ├── apex/
    │   │       │   │   └── apex.js
    │   │       │   ├── azcli/
    │   │       │   │   └── azcli.js
    │   │       │   ├── bat/
    │   │       │   │   └── bat.js
    │   │       │   ├── bicep/
    │   │       │   │   └── bicep.js
    │   │       │   ├── cameligo/
    │   │       │   │   └── cameligo.js
    │   │       │   ├── clojure/
    │   │       │   │   └── clojure.js
    │   │       │   ├── coffee/
    │   │       │   │   └── coffee.js
    │   │       │   ├── cpp/
    │   │       │   │   └── cpp.js
    │   │       │   ├── csharp/
    │   │       │   │   └── csharp.js
    │   │       │   ├── csp/
    │   │       │   │   └── csp.js
    │   │       │   ├── css/
    │   │       │   │   └── css.js
    │   │       │   ├── cypher/
    │   │       │   │   └── cypher.js
    │   │       │   ├── dart/
    │   │       │   │   └── dart.js
    │   │       │   ├── dockerfile/
    │   │       │   │   └── dockerfile.js
    │   │       │   ├── ecl/
    │   │       │   │   └── ecl.js
    │   │       │   ├── elixir/
    │   │       │   │   └── elixir.js
    │   │       │   ├── flow9/
    │   │       │   │   └── flow9.js
    │   │       │   ├── freemarker2/
    │   │       │   │   └── freemarker2.js
    │   │       │   ├── fsharp/
    │   │       │   │   └── fsharp.js
    │   │       │   ├── go/
    │   │       │   │   └── go.js
    │   │       │   ├── graphql/
    │   │       │   │   └── graphql.js
    │   │       │   ├── handlebars/
    │   │       │   │   └── handlebars.js
    │   │       │   ├── hcl/
    │   │       │   │   └── hcl.js
    │   │       │   ├── html/
    │   │       │   │   └── html.js
    │   │       │   ├── ini/
    │   │       │   │   └── ini.js
    │   │       │   ├── java/
    │   │       │   │   └── java.js
    │   │       │   ├── javascript/
    │   │       │   │   └── javascript.js
    │   │       │   ├── julia/
    │   │       │   │   └── julia.js
    │   │       │   ├── kotlin/
    │   │       │   │   └── kotlin.js
    │   │       │   ├── less/
    │   │       │   │   └── less.js
    │   │       │   ├── lexon/
    │   │       │   │   └── lexon.js
    │   │       │   ├── liquid/
    │   │       │   │   └── liquid.js
    │   │       │   ├── lua/
    │   │       │   │   └── lua.js
    │   │       │   ├── m3/
    │   │       │   │   └── m3.js
    │   │       │   ├── markdown/
    │   │       │   │   └── markdown.js
    │   │       │   ├── mdx/
    │   │       │   │   └── mdx.js
    │   │       │   ├── mips/
    │   │       │   │   └── mips.js
    │   │       │   ├── msdax/
    │   │       │   │   └── msdax.js
    │   │       │   ├── mysql/
    │   │       │   │   └── mysql.js
    │   │       │   ├── objective-c/
    │   │       │   │   └── objective-c.js
    │   │       │   ├── pascal/
    │   │       │   │   └── pascal.js
    │   │       │   ├── pascaligo/
    │   │       │   │   └── pascaligo.js
    │   │       │   ├── perl/
    │   │       │   │   └── perl.js
    │   │       │   ├── pgsql/
    │   │       │   │   └── pgsql.js
    │   │       │   ├── php/
    │   │       │   │   └── php.js
    │   │       │   ├── pla/
    │   │       │   │   └── pla.js
    │   │       │   ├── postiats/
    │   │       │   │   └── postiats.js
    │   │       │   ├── powerquery/
    │   │       │   │   └── powerquery.js
    │   │       │   ├── powershell/
    │   │       │   │   └── powershell.js
    │   │       │   ├── protobuf/
    │   │       │   │   └── protobuf.js
    │   │       │   ├── pug/
    │   │       │   │   └── pug.js
    │   │       │   ├── python/
    │   │       │   │   └── python.js
    │   │       │   ├── qsharp/
    │   │       │   │   └── qsharp.js
    │   │       │   ├── r/
    │   │       │   │   └── r.js
    │   │       │   ├── razor/
    │   │       │   │   └── razor.js
    │   │       │   ├── redis/
    │   │       │   │   └── redis.js
    │   │       │   ├── redshift/
    │   │       │   │   └── redshift.js
    │   │       │   ├── restructuredtext/
    │   │       │   │   └── restructuredtext.js
    │   │       │   ├── ruby/
    │   │       │   │   └── ruby.js
    │   │       │   ├── rust/
    │   │       │   │   └── rust.js
    │   │       │   ├── sb/
    │   │       │   │   └── sb.js
    │   │       │   ├── scala/
    │   │       │   │   └── scala.js
    │   │       │   ├── scheme/
    │   │       │   │   └── scheme.js
    │   │       │   ├── scss/
    │   │       │   │   └── scss.js
    │   │       │   ├── shell/
    │   │       │   │   └── shell.js
    │   │       │   ├── solidity/
    │   │       │   │   └── solidity.js
    │   │       │   ├── sophia/
    │   │       │   │   └── sophia.js
    │   │       │   ├── sparql/
    │   │       │   │   └── sparql.js
    │   │       │   ├── sql/
    │   │       │   │   └── sql.js
    │   │       │   ├── st/
    │   │       │   │   └── st.js
    │   │       │   ├── swift/
    │   │       │   │   └── swift.js
    │   │       │   ├── systemverilog/
    │   │       │   │   └── systemverilog.js
    │   │       │   ├── tcl/
    │   │       │   │   └── tcl.js
    │   │       │   ├── twig/
    │   │       │   │   └── twig.js
    │   │       │   ├── typescript/
    │   │       │   │   └── typescript.js
    │   │       │   ├── vb/
    │   │       │   │   └── vb.js
    │   │       │   ├── wgsl/
    │   │       │   │   └── wgsl.js
    │   │       │   ├── xml/
    │   │       │   │   └── xml.js
    │   │       │   └── yaml/
    │   │       │       └── yaml.js
    │   │       ├── editor/
    │   │       │   ├── editor.main.css
    │   │       │   ├── editor.main.js
    │   │       │   ├── editor.main.nls.de.js
    │   │       │   ├── editor.main.nls.es.js
    │   │       │   ├── editor.main.nls.fr.js
    │   │       │   ├── editor.main.nls.it.js
    │   │       │   ├── editor.main.nls.ja.js
    │   │       │   ├── editor.main.nls.js
    │   │       │   ├── editor.main.nls.ko.js
    │   │       │   ├── editor.main.nls.ru.js
    │   │       │   ├── editor.main.nls.zh-cn.js
    │   │       │   └── editor.main.nls.zh-tw.js
    │   │       ├── language/
    │   │       │   ├── css/
    │   │       │   │   ├── cssMode.js
    │   │       │   │   └── cssWorker.js
    │   │       │   ├── html/
    │   │       │   │   ├── htmlMode.js
    │   │       │   │   └── htmlWorker.js
    │   │       │   ├── json/
    │   │       │   │   ├── jsonMode.js
    │   │       │   │   └── jsonWorker.js
    │   │       │   └── typescript/
    │   │       │       ├── tsMode.js
    │   │       │       └── tsWorker.js
    │   │       └── loader.js
    │   ├── locales/
    │   │   ├── en/
    │   │   │   └── translation.json
    │   │   ├── zh/
    │   │   │   └── translation.json
    │   │   └── zh-CN/
    │   │       └── translation.json
    │   └── robots.txt
    ├── src/
    │   ├── App.css
    │   ├── App.tsx
    │   ├── apis/
    │   │   ├── dependence.ts
    │   │   ├── typing.d.ts
    │   │   └── v1/
    │   │       ├── accounts.ts
    │   │       ├── api-auto.d.ts
    │   │       ├── applications.ts
    │   │       ├── apps.ts
    │   │       ├── auth.ts
    │   │       ├── billings.ts
    │   │       ├── function-templates.ts
    │   │       ├── group.ts
    │   │       ├── monitor.ts
    │   │       ├── notification.ts
    │   │       ├── pats.ts
    │   │       ├── recycle-bin.ts
    │   │       ├── regions.ts
    │   │       ├── resources.ts
    │   │       ├── runtimes.ts
    │   │       ├── settings.ts
    │   │       └── user.ts
    │   ├── chakraTheme.ts
    │   ├── chakraThemeDark.ts
    │   ├── components/
    │   │   ├── ChargeButton/
    │   │   │   └── index.tsx
    │   │   ├── ColorModeSwitch/
    │   │   │   └── index.tsx
    │   │   ├── CommonIcon/
    │   │   │   └── index.tsx
    │   │   ├── ConfirmButton/
    │   │   │   └── index.tsx
    │   │   ├── ConfirmDialog/
    │   │   │   └── index.tsx
    │   │   ├── Content/
    │   │   │   └── index.tsx
    │   │   ├── CopyText/
    │   │   │   └── index.tsx
    │   │   ├── DateRangePicker/
    │   │   │   ├── index.css
    │   │   │   └── index.tsx
    │   │   ├── DependenceList/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── DotBadge/
    │   │   │   └── index.tsx
    │   │   ├── EditableTable/
    │   │   │   ├── EditableTr/
    │   │   │   │   └── index.tsx
    │   │   │   ├── NormalTr/
    │   │   │   │   └── index.tsx
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── Editor/
    │   │   │   ├── CommonDiffEditor.tsx
    │   │   │   ├── ENVCodeEditor.tsx
    │   │   │   ├── ENVEditor.tsx
    │   │   │   ├── FunctionEditor.tsx
    │   │   │   ├── JSONEditor.tsx
    │   │   │   ├── JSONViewer.tsx
    │   │   │   ├── LanguageClient.ts
    │   │   │   ├── TSEditor.tsx
    │   │   │   ├── TextModel.tsx
    │   │   │   ├── index.css
    │   │   │   ├── index.scss
    │   │   │   ├── typesResolve/
    │   │   │   │   ├── globals.ts
    │   │   │   │   ├── index.ts
    │   │   │   │   ├── objectidType.ts
    │   │   │   │   ├── requestType.ts
    │   │   │   │   ├── responseType.ts
    │   │   │   │   ├── streamType.ts
    │   │   │   │   └── websocketType.ts
    │   │   │   └── useWorker.ts
    │   │   ├── EmptyBox/
    │   │   │   └── index.tsx
    │   │   ├── FileStatusIcon/
    │   │   │   └── index.tsx
    │   │   ├── FileTypeIcon/
    │   │   │   └── index.tsx
    │   │   ├── FileUpload/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── Grid/
    │   │   │   └── index.tsx
    │   │   ├── IconText/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── IconWrap/
    │   │   │   └── index.tsx
    │   │   ├── InputTag/
    │   │   │   └── index.tsx
    │   │   ├── LanguageSwitch/
    │   │   │   └── index.tsx
    │   │   ├── LogoIcon/
    │   │   │   └── index.tsx
    │   │   ├── Markdown/
    │   │   │   ├── codeLight.ts
    │   │   │   ├── formatLinkText.ts
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── MoreButton/
    │   │   │   └── index.tsx
    │   │   ├── Pagination/
    │   │   │   └── index.tsx
    │   │   ├── Panel/
    │   │   │   ├── Header.tsx
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── PopConfirm/
    │   │   │   └── index.tsx
    │   │   ├── Resize/
    │   │   │   └── index.tsx
    │   │   ├── SectionList/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── SendEmailCodeButton/
    │   │   │   └── index.tsx
    │   │   ├── SendSmsCodeButton/
    │   │   │   └── index.tsx
    │   │   ├── SmsCodeInput/
    │   │   │   └── index.tsx
    │   │   ├── TextButton/
    │   │   │   └── index.tsx
    │   │   └── UpgradePrompt/
    │   │       └── index.tsx
    │   ├── constants/
    │   │   ├── .gitkeep
    │   │   └── index.ts
    │   ├── hooks/
    │   │   ├── useAwsS3.ts
    │   │   ├── useCustomToast.ts
    │   │   ├── useDB.ts
    │   │   ├── useFunctionCache.ts
    │   │   ├── useHotKey.ts
    │   │   ├── useInviteCode.ts
    │   │   └── useResizable.ts
    │   ├── layouts/
    │   │   ├── Auth/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── Basic/
    │   │   │   ├── RealNameWarn.tsx
    │   │   │   └── index.tsx
    │   │   ├── Function.tsx
    │   │   ├── Header/
    │   │   │   ├── UserBalance/
    │   │   │   │   └── index.tsx
    │   │   │   └── index.tsx
    │   │   └── Template.tsx
    │   ├── main.tsx
    │   ├── pages/
    │   │   ├── 403.tsx
    │   │   ├── 404.tsx
    │   │   ├── app/
    │   │   │   ├── collaboration/
    │   │   │   │   ├── CollaborateButton/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── Invited/
    │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   └── logo_invite.tsx
    │   │   │   │   └── service.ts
    │   │   │   ├── database/
    │   │   │   │   ├── BottomPanel/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── CollectionDataList/
    │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   └── mods/
    │   │   │   │   │       ├── ColPanel/
    │   │   │   │   │       │   └── index.tsx
    │   │   │   │   │       ├── DataPanel/
    │   │   │   │   │       │   ├── index.module.scss
    │   │   │   │   │       │   └── index.tsx
    │   │   │   │   │       └── IndexPanel/
    │   │   │   │   │           ├── addIndexModal/
    │   │   │   │   │           │   └── index.tsx
    │   │   │   │   │           └── index.tsx
    │   │   │   │   ├── CollectionListPanel/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── PolicyDataList/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── PolicyListPanel/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── RightComponent/
    │   │   │   │   │   ├── DeleteButton.tsx
    │   │   │   │   │   ├── EditBox.tsx
    │   │   │   │   │   └── List.tsx
    │   │   │   │   ├── index.tsx
    │   │   │   │   ├── mods/
    │   │   │   │   │   ├── AddDataModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── AddIndexModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── AddPolicyModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── AddRulesModal/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── policyTemplate.ts
    │   │   │   │   │   ├── CreateCollectionModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── DeleteCollectionModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   └── IndexModal/
    │   │   │   │   │       └── index.tsx
    │   │   │   │   ├── service.ts
    │   │   │   │   └── store.ts
    │   │   │   ├── functions/
    │   │   │   │   ├── index.tsx
    │   │   │   │   ├── mods/
    │   │   │   │   │   ├── AIChatPanel/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── BottomPanel/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── ConsolePanel/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── DebugPanel/
    │   │   │   │   │   │   ├── BodyParamsTab/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── HeaderParamsTab/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── QueryParamsTab/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── DependencePanel/
    │   │   │   │   │   │   ├── AddDependenceModal/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── DeployButton/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── EditorPanel/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── FunctionPanel/
    │   │   │   │   │   │   ├── ContextMenu/
    │   │   │   │   │   │   │   ├── index.scss
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── CreateModal/
    │   │   │   │   │   │   │   ├── functionTemplates.ts
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.css
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── HeadPanel/
    │   │   │   │   │   │   ├── FunctionDetailPopOver.tsx
    │   │   │   │   │   │   ├── index.css
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── RecycleBinModal/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── TriggerModal/
    │   │   │   │   │   │   ├── AddTriggerModal/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   └── VersionHistoryPanel/
    │   │   │   │   │       ├── FetchModal/
    │   │   │   │   │       │   └── index.tsx
    │   │   │   │   │       └── index.tsx
    │   │   │   │   ├── service.ts
    │   │   │   │   └── store.ts
    │   │   │   ├── index.tsx
    │   │   │   ├── mods/
    │   │   │   │   ├── SideBar/
    │   │   │   │   │   ├── Icons.tsx
    │   │   │   │   │   ├── index.module.scss
    │   │   │   │   │   └── index.tsx
    │   │   │   │   └── StatusBar/
    │   │   │   │       ├── LSPBar/
    │   │   │   │       │   └── index.tsx
    │   │   │   │       ├── LogsModal/
    │   │   │   │       │   ├── InitLog.tsx
    │   │   │   │       │   ├── index.scss
    │   │   │   │       │   ├── index.tsx
    │   │   │   │       │   └── initLog.scss
    │   │   │   │       ├── MonitorBar/
    │   │   │   │       │   └── index.tsx
    │   │   │   │       └── index.tsx
    │   │   │   ├── setting/
    │   │   │   │   ├── SysSetting/
    │   │   │   │   │   ├── AppEnvList/
    │   │   │   │   │   │   ├── EditTextarea/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── AppInfoList/
    │   │   │   │   │   │   ├── InfoDetail/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── AppMonitor/
    │   │   │   │   │   │   ├── AreaCard/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── PieCard/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── CommonSetting/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── CustomDomain/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── DatabaseMonitor/
    │   │   │   │   │   │   ├── AreaCard/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── PieCard/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── UserSetting/
    │   │   │   │   │   ├── BillingDetails/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── CardRedemption/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── PATList/
    │   │   │   │   │   │   ├── DateSelector/
    │   │   │   │   │   │   │   ├── index.module.scss
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── PricingStandards/
    │   │   │   │   │   │   ├── PricingCard.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── RechargeHistory/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── Usage/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── UserInfo/
    │   │   │   │   │   │   ├── Mods/
    │   │   │   │   │   │   │   ├── AvatarEditor.tsx
    │   │   │   │   │   │   │   ├── EmailEditor.tsx
    │   │   │   │   │   │   │   ├── PasswordEditor.tsx
    │   │   │   │   │   │   │   ├── PhoneEditor.tsx
    │   │   │   │   │   │   │   └── UsernameEditor.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── UserInvite/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   └── useTabMatch.tsx
    │   │   │   │   ├── index.css
    │   │   │   │   └── index.tsx
    │   │   │   └── storages/
    │   │   │       ├── index.tsx
    │   │   │       ├── mods/
    │   │   │       │   ├── CreateBucketModal/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── CreateFolderModal/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── CreateWebsiteModal/
    │   │   │       │   │   ├── SiteStatus.tsx
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── DeleteBucketModal/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── FileList/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── HostingDrawer/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── PathLink/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── StorageListPanel/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── UploadButton/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   └── index.module.scss
    │   │   │       ├── service.ts
    │   │   │       └── store.ts
    │   │   ├── auth/
    │   │   │   ├── bind/
    │   │   │   │   └── BindGitHub/
    │   │   │   │       └── index.tsx
    │   │   │   ├── reset-password/
    │   │   │   │   └── index.tsx
    │   │   │   ├── service.ts
    │   │   │   ├── signin/
    │   │   │   │   ├── index.tsx
    │   │   │   │   └── mods/
    │   │   │   │       ├── LoginByEmailPanel/
    │   │   │   │       │   └── index.tsx
    │   │   │   │       ├── LoginByPasswordPanel/
    │   │   │   │       │   └── index.tsx
    │   │   │   │       └── LoginByPhonePanel/
    │   │   │   │           └── index.tsx
    │   │   │   ├── signup/
    │   │   │   │   └── index.tsx
    │   │   │   └── store.ts
    │   │   ├── customSetting.ts
    │   │   ├── functionTemplate/
    │   │   │   ├── AllTemplateList/
    │   │   │   │   └── index.tsx
    │   │   │   ├── CreateFuncTemplate/
    │   │   │   │   ├── Mods/
    │   │   │   │   │   ├── AddDependenceModal.tsx
    │   │   │   │   │   ├── AddEnvironmentsModal.tsx
    │   │   │   │   │   └── AddFunctionModal.tsx
    │   │   │   │   └── index.tsx
    │   │   │   ├── FuncTemplateItem/
    │   │   │   │   ├── TemplateFunctionInfo.tsx
    │   │   │   │   └── index.tsx
    │   │   │   ├── Mods/
    │   │   │   │   ├── MonacoEditor/
    │   │   │   │   │   ├── FunctionPopover.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── TemplateCard/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── TemplateInfo/
    │   │   │   │   │   ├── SponsorModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── UseTemplate/
    │   │   │   │   │   │   ├── UseTemplateModal.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   └── TemplatePopover/
    │   │   │   │       └── TemplatePopover.tsx
    │   │   │   ├── MyTemplateList/
    │   │   │   │   └── index.tsx
    │   │   │   ├── index.tsx
    │   │   │   ├── service.ts
    │   │   │   └── store.ts
    │   │   ├── globalStore.ts
    │   │   ├── home/
    │   │   │   ├── index.tsx
    │   │   │   ├── mods/
    │   │   │   │   ├── CreateAppModal/
    │   │   │   │   │   ├── AutoscalingControl/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── BundleControl/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── BundleItem/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── DatabaseBundleControl/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── RuntimeItem/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── DeleteAppModal/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── Empty/
    │   │   │   │   │   ├── index.module.scss
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── List/
    │   │   │   │   │   ├── BundleInfo.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   └── StatusBadge/
    │   │   │   │       ├── index.module.scss
    │   │   │   │       └── index.tsx
    │   │   │   └── service.ts
    │   │   ├── homepage/
    │   │   │   ├── ability.tsx
    │   │   │   ├── choice.tsx
    │   │   │   ├── circle.tsx
    │   │   │   ├── contact.tsx
    │   │   │   ├── footer.tsx
    │   │   │   ├── hero.tsx
    │   │   │   ├── homepage.css
    │   │   │   ├── index.tsx
    │   │   │   ├── joinus.tsx
    │   │   │   ├── navbar.tsx
    │   │   │   ├── smallcircle.tsx
    │   │   │   ├── status.module.scss
    │   │   │   ├── status.tsx
    │   │   │   └── video.tsx
    │   │   └── siteSetting.ts
    │   ├── routes/
    │   │   └── index.tsx
    │   ├── types/
    │   │   └── index.d.ts
    │   ├── utils/
    │   │   ├── .gitkeep
    │   │   ├── format.ts
    │   │   ├── getAvatarUrl.ts
    │   │   ├── getPageInfo.ts
    │   │   ├── getRegionById.ts
    │   │   ├── handleData.ts
    │   │   ├── i18n.ts
    │   │   ├── request.ts
    │   │   └── streamFetch.ts
    │   └── vite-env.d.ts
    ├── tailwind.config.cjs
    ├── tsconfig.json
    ├── tsconfig.node.json
    └── vite.config.ts

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[!{node_modules}/**]
end_of_line = lf
charset = utf-8
insert_final_newline = true

[{*.js,*.ts}]
indent_style = space
indent_size = 2

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: [maslow] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

name: Bug report
title: "[bug] bug title "
description: If something isn't working as expected.
labels: ["bug"]
body:
  - type: markdown
    attributes:
      value: |
        For better global communication, please write in English.
        (为了更好的国际化交流,请您使用英语描述问题。)

        You can use ChatGPT to translate your native language into English:
        (您可以使用ChatGPT将您的母语翻译成英文。)
        - [ChatGPT](https://chat.openai.com/)

  - type: checkboxes
    attributes:
      label: Search before asking
      description: >
        Please make sure to search in the [issues](https://github.com/labring/laf/issues?q=is%3Aissue)
        first to see whether the same issue was reported already.
      options:
        - label: >
            I had searched in the [issues](https://github.com/labring/laf/issues?q=is%3Aissue) and found
            no similar issues.
          required: true

  - type: dropdown
    attributes:
      label: Environment
      description: Describe the environment.
      options:
        - https://laf.dev
        - https://laf.run
        - Linux (self-host)
        - Mac (self-host)
        - Windows (self-host)
        - Laf-cli
    validations:
      required: true

  - type: textarea
    attributes:
      label: What happened
      description: Describe what happened.
      placeholder: >
        A clear and concise description of what the bug is.
    validations:
      required: true

  - type: textarea
    attributes:
      label: How to reproduce
      description: >
        Describe the steps to reproduce the bug here.
      placeholder: >
        Please make sure you provide a reproducible step-by-step case of how to reproduce the problem
        as minimally and precisely as possible.

        1. xxx

        2. xxx

        3. ...
    validations:
      required: true

  - type: checkboxes
    attributes:
      label: Are you willing to submit PR?
      description: >
        This is absolutely not required, but we are happy to guide you in the contribution process
        especially if you already have a good understanding of how to implement the fix.
      options:
        - label: Yes I am willing to submit a PR!

  - type: markdown
    attributes:
      value: "Thanks for completing our form!"


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Join Our Discord
    url: https://discord.gg/uWZqAwwdvy
    about: Join our community, we will keep you in the loop.
  - name: Contact US / Business Inquiries
    url: https://docs.qq.com/form/page/DS0tCWXpQc2NpR3dR
    about: Please contact us.

================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

name: Feature Request
title: "[Feature] Feature title "
description: I want to suggest a feature for this project.
labels: [ "feature" ]
body:
  - type: markdown
    attributes:
      value: |
        For better global communication, Please write in English.
        (为了更好的国际化交流,请您使用英语描述您的问题。)

        You can use the following translation tool to translate, but please check the translation carefully after translation to avoid misinterpretation:
        (你可以使用以下翻译工具进行翻译,但是翻译完成后请仔细检查译文,以免有错误的理解:)
        - [Google Translate](https://translate.google.com/)
        - [Baidu Translate](https://fanyi.baidu.com/)
        - [YouDao Translate](https://fanyi.baidu.com/)
        - ChatGPT

  - type: checkboxes
    attributes:
      label: Search before asking
      description: >
        Please make sure to search in the [issues](https://github.com/labring/laf/issues?q=is%3Aissue)
        first to see whether the same issue was reported already.
      options:
        - label: >
            I had searched in the [issues](https://github.com/labring/laf/issues?q=is%3Aissue) and found
            no similar issues.
          required: true

  - type: textarea
    attributes:
      label: Feature Request
      description: Describe the feature.
      placeholder: >
        First of all: Have you checked the docs,
        or GitHub issues whether someone else has already reported your issue?
        Maybe the feature already exists?
    validations:
      required: true

  - type: checkboxes
    attributes:
      label: Are you willing to submit PR?
      description: >
        This is absolutely not required, but we are happy to guide you in the contribution process
        especially if you already have a good understanding of how to implement the fix.
      options:
        - label: Yes I am willing to submit a PR!

  - type: markdown
    attributes:
      value: "Thanks for completing our form!"


================================================
FILE: .github/ISSUE_TEMPLATE/question.yml
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

name: Question
title: "[Question] Question title "
description: I have a question that isn't answered in docs or issue.
labels: [ "question" ]
body:
  - type: markdown
    attributes:
      value: |
        For better global communication, Please write in English.
        (为了更好的国际化交流,请您使用英语描述您的问题。)

        You can use the following translation tool to translate, but please check the translation carefully after translation to avoid misinterpretation:
        (你可以使用以下翻译工具进行翻译,但是翻译完成后请仔细检查译文,以免有错误的理解:)
        - [Google Translate](https://translate.google.com/)
        - [Baidu Translate](https://fanyi.baidu.com/)
        - [YouDao Translate](https://fanyi.baidu.com/)
        - ChatGPT

  - type: checkboxes
    attributes:
      label: Search before asking
      description: >
        Please make sure to search in the [issues](https://github.com/labring/laf/issues?q=is%3Aissue)
        first to see whether the same issue was reported already.
      options:
        - label: >
            I had searched in the [issues](https://github.com/labring/laf/issues?q=is%3Aissue) and found
            no similar issues.
          required: true

  - type: textarea
    attributes:
      label: Question
      description: Describe your question.
      placeholder: >
        Describe your question here :D
    validations:
      required: true

  - type: markdown
    attributes:
      value: "Thanks for completing our form!"


================================================
FILE: .github/actions/build-docs/action.yml
================================================
name: Build Laf Docs
description: Build Laf Docs, to reuse in other workflows

inputs:
  docs-path:
    description: 'Path to docs folder'
    required: false
    default: 'docs'
  

# development docs: https://docs.github.com/en/actions/creating-actions/creating-a-composite-action

runs:
  using: composite
  steps:
    - name: Set Node.js 18.x
      uses: actions/setup-node@v3
      with:
        node-version: 18.x
    - name: Run Install
      working-directory: ${{ inputs.docs-path }}        
      run: npm install
      shell: bash
    - name: Run Build
      working-directory: ${{ inputs.docs-path }}
      run: npm run build
      shell: bash


================================================
FILE: .github/gh-bot.yml
================================================
version: v1
debug: true
action:
  printConfig: false
  release:
    retry: 15s
    actionName: Release
    allowOps:
      - maslow
bot:
  prefix: /
  spe: _
  allowOps:
    - sealos-ci-robot
    - sealos-release-robot
  email: sealos-ci-robot@sealos.io
  username: sealos-ci-robot
repo:
  org: false

message:
  success: |
    🤖 says: Hooray! The action {{.Body}} has been completed successfully. 🎉
  format_error: |
    🤖 says: ‼️ There is a formatting issue with the action, kindly verify the action's format.
  permission_error: |
    🤖 says: ‼️ The action doesn't have permission to trigger.
  release_error: |
    🤖 says: ‼️ Release action failed.
    Error details: {{.Error}}


================================================
FILE: .github/no-response.yml
================================================
# Configuration for probot-no-response - https://github.com/probot/no-response

# Number of days of inactivity before an Issue is closed for lack of response
daysUntilClose: 7
# Label requiring a response
responseRequiredLabel: waiting-for-info
# Comment to post when closing an Issue for lack of response. Set to `false` to disable
closeComment: >
  This issue has been automatically closed because there has been no response
  to our request for more information from the original author. With only the
  information that is currently in the issue, we don't have enough information
  to take action. Please reach out if you have or find the answers we need so
  that we can investigate further.


================================================
FILE: .github/stale.yml
================================================


# Number of days of inactivity before an issue becomes stale
daysUntilStale: 15
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 3
# Issues with these labels will never be considered stale
exemptLabels:
  - do-not-close
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
  This issue has been automatically marked as stale because it has not had
  recent activity. It will be closed if no further activity occurs. Thank you
  for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: true


================================================
FILE: .github/workflows/build-scripts-updated.yml
================================================
name: build-scripts-updated

on:
  workflow_dispatch:
  push:
    branches:
      - main
    paths:
      - "build/**"
      - "deploy/**"
      - ".github/workflows/build-scripts-updated.yml"
      - ".github/workflows/build-sealos-cluster-image.yml"
      - "!**/*.md"

permissions:
  contents: read

concurrency:
  group: build-scripts-updated-${{ github.ref }}
  cancel-in-progress: true

jobs:
  notify:
    runs-on: ubuntu-latest
    steps:
      - name: Log workflow completion
        run: |
          echo "Build scripts updated workflow completed"
          echo "This will trigger build-sealos-cluster-image via workflow_run"
          echo "Ref: ${{ github.ref }}"
          echo "SHA: ${{ github.sha }}"


================================================
FILE: .github/workflows/build-sealos-cluster-image.yml
================================================
name: build-sealos-cluster-image

on:
  # Triggered when dockerize-web, dockerize-server, or build-scripts-updated workflow completes on main branch
  workflow_run:
    workflows: ["dockerize-web", "dockerize-server", "dockerize-runtime-nodejs", "dockerize-runtime-exporter", "build-scripts-updated", "release"]
    types: [completed]
    branches: [main]
  # Manual trigger
  workflow_dispatch:
    inputs:
      version:
        description: 'Version tag for cluster image'
        required: false
        default: 'latest'

permissions:
  packages: write
  contents: read

env:
  GO_VERSION: "1.19"
  DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}

concurrency:
  group: build-sealos-cluster-image-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build_cluster_image:
    runs-on: ubuntu-latest
    # Only run if the triggering workflow succeeded (or manual trigger)
    if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Prepare
        id: prepare
        run: |
          IMAGE=laf
          # Use custom version for workflow_dispatch, otherwise 'latest'
          TAG=${{ github.event.inputs.version || 'latest' }}
          echo "tag=${TAG}" >> $GITHUB_ENV
          echo "image=${IMAGE}" >> $GITHUB_ENV
          echo "Building cluster image: ${IMAGE}:${TAG}"

      - name: Remove builtin docker
        run: |
          sudo apt-get remove -y moby-engine moby-cli moby-buildx moby-compose

      - name: Install sealos
        run: |
          echo "deb [trusted=yes] https://apt.fury.io/labring/ /" | sudo tee /etc/apt/sources.list.d/labring.list
          sudo apt update
          sudo apt install sealos=4.1.4
          sudo sealos version

      - name: Install buildah
        run: |
          sudo apt remove buildah -y || true
          arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
          echo "Downloading buildah from https://github.com/labring/cluster-image/releases/download/depend/buildah.linux.${arch}"
          sudo wget -qO "buildah" "https://github.com/labring/cluster-image/releases/download/depend/buildah.linux.${arch}"
          sudo chmod a+x buildah
          sudo mv buildah /usr/bin

      - name: Login GHCR.io
        run: |
          echo "Logging in to ghcr.io as ${{ github.repository_owner }}"
          sudo buildah login -u ${{ github.repository_owner }} -p ${{ secrets.GITHUB_TOKEN }} ghcr.io

      - name: Build cluster image
        env:
          IMAGE: ghcr.io/${{ github.repository_owner }}/${{ env.image }}
          VERSION: ${{ env.tag }}
        working-directory: build
        run: |
          echo "Building cluster image: $IMAGE:$VERSION"
          sudo sealos build -t $IMAGE:$VERSION-arm64 --platform linux/arm64 -f Kubefile  .
          sudo rm -rf registry
          sudo sealos build -t $IMAGE:$VERSION-amd64 --platform linux/amd64 -f Kubefile  .
          sudo sealos images

      - name: Push cluster image to ghcr.io
        env:
          IMAGE: ghcr.io/${{ github.repository_owner }}/${{ env.image }}
          VERSION: ${{ env.tag }}
        run: |
          sudo buildah images
          sudo buildah push $IMAGE:$VERSION-amd64
          sudo buildah push $IMAGE:$VERSION-arm64
          sudo buildah manifest create $IMAGE:$VERSION
          sudo buildah manifest add $IMAGE:$VERSION docker://$IMAGE:$VERSION-amd64
          sudo buildah manifest add $IMAGE:$VERSION docker://$IMAGE:$VERSION-arm64
          sudo buildah manifest push --all $IMAGE:$VERSION docker://$IMAGE:$VERSION

      - name: Push cluster image to docker.io
        if: ${{ env.DOCKERHUB_USERNAME != '' }}
        env:
          GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ env.image }}
          IMAGE: docker.io/${{ env.DOCKERHUB_USERNAME }}/${{ env.image }}
          VERSION: ${{ env.tag }}
        run: |
          sudo buildah login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} docker.io
          sudo buildah tag $GHCR_IMAGE:$VERSION-amd64 $IMAGE:$VERSION-amd64
          sudo buildah tag $GHCR_IMAGE:$VERSION-arm64 $IMAGE:$VERSION-arm64
          sudo buildah push $IMAGE:$VERSION-amd64
          sudo buildah push $IMAGE:$VERSION-arm64
          sudo buildah manifest create $IMAGE:$VERSION
          sudo buildah manifest add $IMAGE:$VERSION docker://$IMAGE:$VERSION-amd64
          sudo buildah manifest add $IMAGE:$VERSION docker://$IMAGE:$VERSION-arm64
          sudo buildah manifest push --all $IMAGE:$VERSION docker://$IMAGE:$VERSION

      - name: Renew issue and Sync Images
        uses: labring/gh-rebot@v0.0.6
        if: ${{ github.event_name != 'workflow_dispatch' }}
        with:
          version: v0.0.8-rc1
        env:
          GH_TOKEN: "${{ secrets.GH_PAT }}"
          SEALOS_TYPE: "issue_renew"
          SEALOS_ISSUE_TITLE: "【DaylyReport】 Auto build for laf"
          SEALOS_ISSUE_BODYFILE: "build/README.md"
          SEALOS_ISSUE_LABEL: "dayly-report"
          SEALOS_ISSUE_TYPE: "day"
          SEALOS_ISSUE_REPO: "labring-actions/cluster-image"
          SEALOS_COMMENT_BODY: "/imagesync ghcr.io/${{ github.repository_owner }}/${{ env.image }}:${{ env.tag }}"

================================================
FILE: .github/workflows/deploy-doc.yml
================================================
name: deploy docs

on:
  workflow_dispatch:
  push:
    branches: [main]
    paths:
      - "docs/**"
      - ".github/workflows/deploy-doc.yml"
env:
  LAF_CI_DOCS_PAT: ${{ secrets.LAF_CI_DOCS_PAT }}
  LAF_CI_DOCS_APPID: ${{ secrets.LAF_CI_DOCS_APPID }}
  LAF_CI_DOCS_BUCKET_NAME: ${{ secrets.LAF_CI_DOCS_BUCKET_NAME }}
  LAF_API_URL: ${{ secrets.LAF_API_URL }}

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Build Docs
        uses: ./.github/actions/build-docs

      - name: Setup laf-cli
        run: npm i laf-cli -g
      - name: Login laf-cli
        run: |
          laf user add doc -r ${{ env.LAF_API_URL }}
          laf user switch doc
          laf login ${{ env.LAF_CI_DOCS_PAT }}
      - name: Deploy to laf
        working-directory: docs/.vitepress
        run: |
          laf app init ${{ env.LAF_CI_DOCS_APPID }}
          laf storage push -f ${{ env.LAF_CI_DOCS_BUCKET_NAME }} dist/


================================================
FILE: .github/workflows/doc-deploy.yml
================================================
name: Deploy Documentation

on:
  push:
    branches: [main]
    paths:
      - "docs/**"
      - ".github/workflows/doc-deploy.yml"

env:
  LAF_CI_DOCS_PREVIEW_PAT: ${{ secrets.LAF_CI_DOCS_PREVIEW_PAT }}
  LAF_CI_DOCS_PREVIEW_APPID: ${{ secrets.LAF_CI_DOCS_PREVIEW_APPID }}
  LAF_CI_DOCS_PREVIEW_API_URL: ${{ secrets.LAF_CI_DOCS_PREVIEW_API_URL }}

jobs:
  deploy-docs:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Build Docs
        uses: ./.github/actions/build-docs

      - name: Setup laf-cli
        run: npm i laf-cli -g

      - name: Login laf-cli
        run: |
          laf user add doc -r ${{ env.LAF_CI_DOCS_PREVIEW_API_URL }}
          laf user switch doc
          laf login ${{ env.LAF_CI_DOCS_PREVIEW_PAT }}
          laf app init ${{ env.LAF_CI_DOCS_PREVIEW_APPID }}

      - name: Deploy to production bucket
        run: |
          # Deploy to production docs bucket
          laf storage push -f production-docs docs/.vitepress/dist/


================================================
FILE: .github/workflows/doc-preview.yml
================================================
name: Laf Doc Preview

# todo: When the requirements are mature enough, refactor using TypeScript, create a generic GitHub Action, and make it available to users.

on:
  pull_request:
    branches: [main]
    types: [opened, synchronize, reopened, closed]
    paths:
      - "docs/**"
      - ".github/workflows/doc-preview.yml"

permissions:
  pull-requests: write

env:
  LAF_CI_DOCS_PREVIEW_PAT: ${{ secrets.LAF_CI_DOCS_PREVIEW_PAT }}
  LAF_CI_DOCS_PREVIEW_APPID: ${{ secrets.LAF_CI_DOCS_PREVIEW_APPID }}
  LAF_CI_DOCS_PREVIEW_API_URL: ${{ secrets.LAF_CI_DOCS_PREVIEW_API_URL }}
  BUCKET_SHORT_NAME: pr-${{ github.event.pull_request.number }}-doc-preview

jobs:
  create-or-update-doc-preview:
    if: github.event_name == 'pull_request' && github.event.action != 'closed'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Build Docs
        uses: ./.github/actions/build-docs

      - name: PR build summary
        run: |
          echo "📖 Documentation built successfully for PR #${{ github.event.pull_request.number }}"
          echo "⚠️  Doc preview deployment is disabled for security reasons"
          echo "🚀 Docs will be deployed automatically when this PR is merged"
          echo "📋 Build completed at $(date)"


================================================
FILE: .github/workflows/dockerize-runtime-exporter.yml
================================================
name: dockerize-runtime-exporter

on:
  workflow_dispatch:
  pull_request:
    branches: [main]
    types: [opened, synchronize, reopened]
    paths:
      - "services/runtime-exporter/**"
      - ".github/workflows/dockerize-runtime-exporter.yml"
      - "!**/*.md"
      - "!services/runtime-exporter/package-lock.json"
  push:
    branches: [main]
    paths:
      - "services/runtime-exporter/**"
      - ".github/workflows/dockerize-runtime-exporter.yml"
      - "!**/*.md"
      - "!services/runtime-exporter/package-lock.json"

permissions:
  pull-requests: write
  packages: write
  contents: read
  issues: write

concurrency:
  group: dockerize-runtime-exporter-${{ github.ref }}
  cancel-in-progress: true

env:
  DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}

jobs:
  build-runtime-exporter-images:
    name: Build Runtime Exporter Docker Images
    permissions:
      packages: write
    strategy:
      matrix:
        include:
          - arch: amd64
          - arch: arm64
            runs-on: ubuntu-24.04-arm
    runs-on: ${{ matrix.runs-on || 'ubuntu-24.04' }}

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Cache node modules
        id: cache-node-modules
        uses: actions/cache@v4
        with:
          path: services/runtime-exporter/node_modules
          key: ${{ runner.os }}-${{ matrix.arch }}-node-${{ hashFiles('services/runtime-exporter/package-lock.json') }}

      - name: Use Node
        uses: actions/setup-node@v4
        with:
          node-version: 18.x

      - name: Install Package
        working-directory: services/runtime-exporter
        if: steps.cache-node-modules.outputs.cache-hit != 'true'
        run: npm ci

      - name: Build runtime-exporter
        working-directory: services/runtime-exporter
        run: npm run build

      - name: Set up QEMU
        if: ${{ matrix.arch != runner.arch }}
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to DockerHub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-runtime-exporter
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-runtime-exporter', env.DOCKERHUB_USERNAME) || '' }}

      - name: Build for ${{ matrix.arch }}
        id: docker-build
        uses: docker/build-push-action@v6
        with:
          context: ./services/runtime-exporter
          file: ./services/runtime-exporter/Dockerfile
          labels: ${{ steps.meta.outputs.labels }}
          platforms: linux/${{ matrix.arch }}
          # PR builds: load locally, Main builds: push by digest
          push: false
          load: ${{ github.event_name == 'pull_request' }}
          outputs: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && format('type=image,"name=ghcr.io/{0}/laf-runtime-exporter{1}",name-canonical=true,push-by-digest=true,push=true', github.repository_owner, env.DOCKERHUB_USERNAME && format(',docker.io/{0}/laf-runtime-exporter', env.DOCKERHUB_USERNAME) || '') || '' }}

      - name: Export digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        run: |
          mkdir -p ${{ runner.temp }}/digests
          digest="${{ steps.docker-build.outputs.digest }}"
          touch "${{ runner.temp }}/digests/${digest#sha256:}"

      - name: Upload digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: actions/upload-artifact@v4
        with:
          name: digests-runtime-exporter-${{ matrix.arch }}
          path: ${{ runner.temp }}/digests/*
          if-no-files-found: error
          retention-days: 1

      - name: Comment on PR
        if: github.event_name == 'pull_request' && matrix.arch == 'amd64' && always()
        uses: actions/github-script@v7
        continue-on-error: true
        with:
          script: |
            const buildSuccess = '${{ steps.docker-build.outcome }}' === 'success';
            const emoji = buildSuccess ? '✅' : '❌';
            const status = buildSuccess ? 'Success' : 'Failed';

            let body = `## ${emoji} laf Runtime Exporter Image Build ${status}\n\n`;
            body += `### Build Details\n\n`;
            body += `| Item | Value |\n`;
            body += `|------|-------|\n`;
            body += `| Build Status | ${buildSuccess ? '✅ Passed' : '❌ Failed'} |\n`;
            body += `| Platforms | linux/amd64 (PR validation) |\n`;
            body += `| Push to Registry | ⚠️ No (PR build only) |\n`;
            body += `| Node Version | 18.x |\n\n`;

            if (buildSuccess) {
              body += `### 📦 Image will be published after merge to main\n\n`;
              body += `**Note**: PR builds only verify the Docker build process for linux/amd64. Multi-platform images (amd64 + arm64) are built and pushed only when merged to main.\n\n`;
            }

            body += `**Commit**: \`${{ github.sha }}\`\n`;
            body += `**Triggered by**: @${{ github.actor }}\n`;

            try {
              const { data: comments } = await github.rest.issues.listComments({
                owner: context.repo.owner,
                repo: context.repo.repo,
                issue_number: context.issue.number,
              });

              const botComment = comments.find(comment =>
                comment.user.type === 'Bot' &&
                comment.body.includes('laf Runtime Exporter Image Build')
              );

              if (botComment) {
                await github.rest.issues.updateComment({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  comment_id: botComment.id,
                  body: body
                });
              } else {
                await github.rest.issues.createComment({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  issue_number: context.issue.number,
                  body: body
                });
              }
            } catch (error) {
              console.log('Failed to post comment:', error.message);
              console.log('This might be expected for PRs from forks');
            }

  release-runtime-exporter-images:
    name: Push Runtime Exporter Docker Images
    permissions:
      packages: write
    needs: build-runtime-exporter-images
    runs-on: ubuntu-24.04
    if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
    steps:
      - name: Login to DockerHub
        if: ${{ env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Download digests
        uses: actions/download-artifact@v5
        with:
          path: ${{ runner.temp }}/digests
          pattern: digests-runtime-exporter-*
          merge-multiple: true

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-runtime-exporter
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-runtime-exporter', env.DOCKERHUB_USERNAME) || '' }}
          tags: |
            type=ref,event=branch
            type=ref,event=pr
            type=ref,event=tag
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=semver,pattern={{major}}
            type=sha
            type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}

      - name: Create manifest list and push
        working-directory: ${{ runner.temp }}/digests
        run: |
          for TAG in $DOCKER_METADATA_OUTPUT_TAGS; do
            docker buildx imagetools create -t $TAG \
              $(printf 'ghcr.io/${{ github.repository_owner }}/laf-runtime-exporter@sha256:%s ' *)
            sleep 3
          done

      - name: Inspect image
        run: |
          docker buildx imagetools inspect ghcr.io/${{ github.repository_owner }}/laf-runtime-exporter:${{ steps.meta.outputs.version }}

================================================
FILE: .github/workflows/dockerize-runtime-nodejs.yml
================================================
name: dockerize-runtime-nodejs

on:
  workflow_dispatch:
  pull_request:
    branches: [main]
    types: [opened, synchronize, reopened]
    paths:
      - "runtimes/nodejs/**"
      - ".github/workflows/dockerize-runtime-nodejs.yml"
      - "!**/*.md"
      - "!runtimes/nodejs/package-lock.json"
  push:
    branches: [main]
    paths:
      - "runtimes/nodejs/**"
      - ".github/workflows/dockerize-runtime-nodejs.yml"
      - "!**/*.md"
      - "!runtimes/nodejs/package-lock.json"

env:
  ALIYUN_REGISTRY: ${{ secrets.ALIYUN_REGISTRY }}
  ALIYUN_NAMESPACE: ${{ secrets.ALIYUN_NAMESPACE }}
  DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}

permissions:
  pull-requests: write
  packages: write
  contents: read
  issues: write

concurrency:
  group: dockerize-runtime-nodejs-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build-runtime-nodejs-images:
    name: Build Runtime Node.js Docker Images
    permissions:
      packages: write
    strategy:
      matrix:
        include:
          - arch: amd64
          - arch: arm64
            runs-on: ubuntu-24.04-arm
    runs-on: ${{ matrix.runs-on || 'ubuntu-24.04' }}

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Cache node modules
        id: cache-node-modules
        uses: actions/cache@v4
        with:
          path: runtimes/nodejs/node_modules
          key: ${{ runner.os }}-${{ matrix.arch }}-node-${{ hashFiles('runtimes/nodejs/package-lock.json') }}

      - name: Use Node
        uses: actions/setup-node@v4
        with:
          node-version: 18.x

      - name: Install Package
        working-directory: runtimes/nodejs
        if: steps.cache-node-modules.outputs.cache-hit != 'true'
        run: npm ci

      - name: Build runtime-nodejs
        working-directory: runtimes/nodejs
        run: npm run build

      - name: Set up QEMU
        if: ${{ matrix.arch != runner.arch }}
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to DockerHub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Login to Aliyun Registry
        uses: docker/login-action@v3
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && env.ALIYUN_REGISTRY }}
        with:
          registry: ${{ env.ALIYUN_REGISTRY }}
          username: ${{ secrets.ALIYUN_USERNAME }}
          password: ${{ secrets.ALIYUN_PASSWORD }}

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-runtime-nodejs
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-runtime-nodejs', env.DOCKERHUB_USERNAME) || '' }}
            ${{ env.ALIYUN_REGISTRY && format('{0}/{1}/laf-runtime-nodejs', env.ALIYUN_REGISTRY, env.ALIYUN_NAMESPACE) || '' }}

      - name: Build for ${{ matrix.arch }}
        id: docker-build
        uses: docker/build-push-action@v6
        with:
          context: ./runtimes/nodejs
          file: ./runtimes/nodejs/Dockerfile
          labels: ${{ steps.meta.outputs.labels }}
          platforms: linux/${{ matrix.arch }}
          # PR builds: load locally, Main builds: push by digest
          push: false
          load: ${{ github.event_name == 'pull_request' }}
          outputs: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && format('type=image,"name=ghcr.io/{0}/laf-runtime-nodejs{1}{2}",name-canonical=true,push-by-digest=true,push=true', github.repository_owner, env.DOCKERHUB_USERNAME && format(',docker.io/{0}/laf-runtime-nodejs', env.DOCKERHUB_USERNAME) || '', env.ALIYUN_REGISTRY && format(',{0}/{1}/laf-runtime-nodejs', env.ALIYUN_REGISTRY, env.ALIYUN_NAMESPACE) || '') || '' }}

      - name: Export digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        run: |
          mkdir -p ${{ runner.temp }}/digests-nodejs
          digest="${{ steps.docker-build.outputs.digest }}"
          touch "${{ runner.temp }}/digests-nodejs/${digest#sha256:}"

      - name: Upload digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: actions/upload-artifact@v4
        with:
          name: digests-runtime-nodejs-${{ matrix.arch }}
          path: ${{ runner.temp }}/digests-nodejs/*
          if-no-files-found: error
          retention-days: 1

      - name: Comment on PR
        if: github.event_name == 'pull_request' && matrix.arch == 'amd64' && always()
        uses: actions/github-script@v7
        continue-on-error: true
        with:
          script: |
            const buildSuccess = '${{ steps.docker-build.outcome }}' === 'success';
            const emoji = buildSuccess ? '✅' : '❌';
            const status = buildSuccess ? 'Success' : 'Failed';

            let body = `## ${emoji} laf Runtime Node.js Image Build ${status}\n\n`;
            body += `### Build Details\n\n`;
            body += `| Item | Value |\n`;
            body += `|------|-------|\n`;
            body += `| Build Status | ${buildSuccess ? '✅ Passed' : '❌ Failed'} |\n`;
            body += `| Platforms | linux/amd64 (PR validation) |\n`;
            body += `| Push to Registry | ⚠️ No (PR build only) |\n`;
            body += `| Node Version | 18.x |\n\n`;

            if (buildSuccess) {
              body += `### 📦 Image will be published after merge to main\n\n`;
              body += `**Note**: PR builds only verify the Docker build process for linux/amd64. Multi-platform images (amd64 + arm64) are built and pushed only when merged to main.\n\n`;
            }

            body += `**Commit**: \`${{ github.sha }}\`\n`;
            body += `**Triggered by**: @${{ github.actor }}\n`;

            try {
              const { data: comments } = await github.rest.issues.listComments({
                owner: context.repo.owner,
                repo: context.repo.repo,
                issue_number: context.issue.number,
              });

              const botComment = comments.find(comment =>
                comment.user.type === 'Bot' &&
                comment.body.includes('laf Runtime Node.js Image Build')
              );

              if (botComment) {
                await github.rest.issues.updateComment({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  comment_id: botComment.id,
                  body: body
                });
              } else {
                await github.rest.issues.createComment({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  issue_number: context.issue.number,
                  body: body
                });
              }
            } catch (error) {
              console.log('Failed to post comment:', error.message);
              console.log('This might be expected for PRs from forks');
            }

  build-runtime-nodejs-init-images:
    name: Build Runtime Node.js Init Docker Images
    permissions:
      packages: write
    strategy:
      matrix:
        include:
          - arch: amd64
          - arch: arm64
            runs-on: ubuntu-24.04-arm
    runs-on: ${{ matrix.runs-on || 'ubuntu-24.04' }}

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up QEMU
        if: ${{ matrix.arch != runner.arch }}
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to DockerHub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Login to Aliyun Registry
        uses: docker/login-action@v3
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && env.ALIYUN_REGISTRY }}
        with:
          registry: ${{ env.ALIYUN_REGISTRY }}
          username: ${{ secrets.ALIYUN_USERNAME }}
          password: ${{ secrets.ALIYUN_PASSWORD }}

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-runtime-nodejs-init
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-runtime-nodejs-init', env.DOCKERHUB_USERNAME) || '' }}
            ${{ env.ALIYUN_REGISTRY && format('{0}/{1}/laf-runtime-nodejs-init', env.ALIYUN_REGISTRY, env.ALIYUN_NAMESPACE) || '' }}

      - name: Build for ${{ matrix.arch }}
        id: docker-build
        uses: docker/build-push-action@v6
        with:
          context: ./runtimes/nodejs
          file: ./runtimes/nodejs/Dockerfile.init
          labels: ${{ steps.meta.outputs.labels }}
          platforms: linux/${{ matrix.arch }}
          # PR builds: load locally, Main builds: push by digest
          push: false
          load: ${{ github.event_name == 'pull_request' }}
          outputs: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && format('type=image,"name=ghcr.io/{0}/laf-runtime-nodejs-init{1}{2}",name-canonical=true,push-by-digest=true,push=true', github.repository_owner, env.DOCKERHUB_USERNAME && format(',docker.io/{0}/laf-runtime-nodejs-init', env.DOCKERHUB_USERNAME) || '', env.ALIYUN_REGISTRY && format(',{0}/{1}/laf-runtime-nodejs-init', env.ALIYUN_REGISTRY, env.ALIYUN_NAMESPACE) || '') || '' }}

      - name: Export digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        run: |
          mkdir -p ${{ runner.temp }}/digests-nodejs-init
          digest="${{ steps.docker-build.outputs.digest }}"
          touch "${{ runner.temp }}/digests-nodejs-init/${digest#sha256:}"

      - name: Upload digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: actions/upload-artifact@v4
        with:
          name: digests-runtime-nodejs-init-${{ matrix.arch }}
          path: ${{ runner.temp }}/digests-nodejs-init/*
          if-no-files-found: error
          retention-days: 1

  release-runtime-nodejs-images:
    name: Push Runtime Node.js Docker Images
    permissions:
      packages: write
    needs: build-runtime-nodejs-images
    runs-on: ubuntu-24.04
    if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
    steps:
      - name: Login to DockerHub
        if: ${{ env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Login to Aliyun Registry
        uses: docker/login-action@v3
        if: ${{ env.ALIYUN_REGISTRY }}
        with:
          registry: ${{ env.ALIYUN_REGISTRY }}
          username: ${{ secrets.ALIYUN_USERNAME }}
          password: ${{ secrets.ALIYUN_PASSWORD }}

      - name: Download digests
        uses: actions/download-artifact@v5
        with:
          path: ${{ runner.temp }}/digests
          pattern: digests-runtime-nodejs-*
          merge-multiple: true

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-runtime-nodejs
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-runtime-nodejs', env.DOCKERHUB_USERNAME) || '' }}
            ${{ env.ALIYUN_REGISTRY && format('{0}/{1}/laf-runtime-nodejs', env.ALIYUN_REGISTRY, env.ALIYUN_NAMESPACE) || '' }}
          tags: |
            type=ref,event=branch
            type=ref,event=pr
            type=ref,event=tag
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=semver,pattern={{major}}
            type=sha
            type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}

      - name: Create manifest list and push
        working-directory: ${{ runner.temp }}/digests
        run: |
          for TAG in $DOCKER_METADATA_OUTPUT_TAGS; do
            docker buildx imagetools create -t $TAG \
              $(printf 'ghcr.io/${{ github.repository_owner }}/laf-runtime-nodejs@sha256:%s ' *)
            sleep 3
          done

      - name: Inspect image
        run: |
          docker buildx imagetools inspect ghcr.io/${{ github.repository_owner }}/laf-runtime-nodejs:${{ steps.meta.outputs.version }}

  release-runtime-nodejs-init-images:
    name: Push Runtime Node.js Init Docker Images
    permissions:
      packages: write
    needs: build-runtime-nodejs-init-images
    runs-on: ubuntu-24.04
    if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
    steps:
      - name: Login to DockerHub
        if: ${{ env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Login to Aliyun Registry
        uses: docker/login-action@v3
        if: ${{ env.ALIYUN_REGISTRY }}
        with:
          registry: ${{ env.ALIYUN_REGISTRY }}
          username: ${{ secrets.ALIYUN_USERNAME }}
          password: ${{ secrets.ALIYUN_PASSWORD }}

      - name: Download digests
        uses: actions/download-artifact@v5
        with:
          path: ${{ runner.temp }}/digests
          pattern: digests-runtime-nodejs-init-*
          merge-multiple: true

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-runtime-nodejs-init
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-runtime-nodejs-init', env.DOCKERHUB_USERNAME) || '' }}
            ${{ env.ALIYUN_REGISTRY && format('{0}/{1}/laf-runtime-nodejs-init', env.ALIYUN_REGISTRY, env.ALIYUN_NAMESPACE) || '' }}
          tags: |
            type=ref,event=branch
            type=ref,event=pr
            type=ref,event=tag
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=semver,pattern={{major}}
            type=sha
            type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}

      - name: Create manifest list and push
        working-directory: ${{ runner.temp }}/digests
        run: |
          for TAG in $DOCKER_METADATA_OUTPUT_TAGS; do
            docker buildx imagetools create -t $TAG \
              $(printf 'ghcr.io/${{ github.repository_owner }}/laf-runtime-nodejs-init@sha256:%s ' *)
            sleep 3
          done

      - name: Inspect image
        run: |
          docker buildx imagetools inspect ghcr.io/${{ github.repository_owner }}/laf-runtime-nodejs-init:${{ steps.meta.outputs.version }}


================================================
FILE: .github/workflows/dockerize-server.yml
================================================
name: dockerize-server

on:
  workflow_dispatch:
  pull_request:
    branches: [main]
    types: [opened, synchronize, reopened]
    paths:
      - "server/**"
      - ".github/workflows/dockerize-server.yml"
      - "!**/*.md"
      - "!server/package-lock.json"
  push:
    branches: [main]
    paths:
      - "server/**"
      - ".github/workflows/dockerize-server.yml"
      - "!**/*.md"
      - "!server/package-lock.json"

permissions:
  pull-requests: write
  packages: write
  contents: read
  issues: write

concurrency:
  group: dockerize-server-${{ github.ref }}
  cancel-in-progress: true

env:
  DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}

jobs:
  build-server-images:
    name: Build Server Docker Images
    permissions:
      packages: write
    strategy:
      matrix:
        include:
          - arch: amd64
          - arch: arm64
            runs-on: ubuntu-24.04-arm
    runs-on: ${{ matrix.runs-on || 'ubuntu-24.04' }}

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Cache node modules
        id: cache-node-modules
        uses: actions/cache@v4
        with:
          path: server/node_modules
          key: ${{ runner.os }}-${{ matrix.arch }}-node-${{ hashFiles('server/package-lock.json') }}

      - name: Use Node
        uses: actions/setup-node@v4
        with:
          node-version: 18.x

      - name: Install Package
        working-directory: server
        if: steps.cache-node-modules.outputs.cache-hit != 'true'
        run: npm ci

      - name: Build server
        working-directory: server
        run: npm run build

      - name: Set up QEMU
        if: ${{ matrix.arch != runner.arch }}
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to DockerHub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-server
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-server', env.DOCKERHUB_USERNAME) || '' }}

      - name: Build for ${{ matrix.arch }}
        id: docker-build
        uses: docker/build-push-action@v6
        with:
          context: ./server
          file: ./server/Dockerfile
          labels: ${{ steps.meta.outputs.labels }}
          platforms: linux/${{ matrix.arch }}
          # PR builds: load locally, Main builds: push by digest
          push: false
          load: ${{ github.event_name == 'pull_request' }}
          outputs: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && format('type=image,"name=ghcr.io/{0}/laf-server{1}",name-canonical=true,push-by-digest=true,push=true', github.repository_owner, env.DOCKERHUB_USERNAME && format(',docker.io/{0}/laf-server', env.DOCKERHUB_USERNAME) || '') || '' }}

      - name: Export digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        run: |
          mkdir -p ${{ runner.temp }}/digests
          digest="${{ steps.docker-build.outputs.digest }}"
          touch "${{ runner.temp }}/digests/${digest#sha256:}"

      - name: Upload digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: actions/upload-artifact@v4
        with:
          name: digests-server-${{ matrix.arch }}
          path: ${{ runner.temp }}/digests/*
          if-no-files-found: error
          retention-days: 1

      - name: Comment on PR
        if: github.event_name == 'pull_request' && matrix.arch == 'amd64' && always()
        uses: actions/github-script@v7
        continue-on-error: true
        with:
          script: |
            const buildSuccess = '${{ steps.docker-build.outcome }}' === 'success';
            const emoji = buildSuccess ? '✅' : '❌';
            const status = buildSuccess ? 'Success' : 'Failed';

            let body = `## ${emoji} laf Server Image Build ${status}\n\n`;
            body += `### Build Details\n\n`;
            body += `| Item | Value |\n`;
            body += `|------|-------|\n`;
            body += `| Build Status | ${buildSuccess ? '✅ Passed' : '❌ Failed'} |\n`;
            body += `| Platforms | linux/amd64 (PR validation) |\n`;
            body += `| Push to Registry | ⚠️ No (PR build only) |\n`;
            body += `| Node Version | 18.x |\n\n`;

            if (buildSuccess) {
              body += `### 📦 Image will be published after merge to main\n\n`;
              body += `**Note**: PR builds only verify the Docker build process for linux/amd64. Multi-platform images (amd64 + arm64) are built and pushed only when merged to main.\n\n`;
            }

            body += `**Commit**: \`${{ github.sha }}\`\n`;
            body += `**Triggered by**: @${{ github.actor }}\n`;

            try {
              const { data: comments } = await github.rest.issues.listComments({
                owner: context.repo.owner,
                repo: context.repo.repo,
                issue_number: context.issue.number,
              });

              const botComment = comments.find(comment =>
                comment.user.type === 'Bot' &&
                comment.body.includes('laf Server Image Build')
              );

              if (botComment) {
                await github.rest.issues.updateComment({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  comment_id: botComment.id,
                  body: body
                });
              } else {
                await github.rest.issues.createComment({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  issue_number: context.issue.number,
                  body: body
                });
              }
            } catch (error) {
              console.log('Failed to post comment:', error.message);
              console.log('This might be expected for PRs from forks');
            }

  release-server-images:
    name: Push Server Docker Images
    permissions:
      packages: write
    needs: build-server-images
    runs-on: ubuntu-24.04
    if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
    steps:
      - name: Login to DockerHub
        if: ${{ env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Download digests
        uses: actions/download-artifact@v5
        with:
          path: ${{ runner.temp }}/digests
          pattern: digests-server-*
          merge-multiple: true

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-server
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-server', env.DOCKERHUB_USERNAME) || '' }}
          tags: |
            type=ref,event=branch
            type=ref,event=pr
            type=ref,event=tag
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=semver,pattern={{major}}
            type=sha
            type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}

      - name: Create manifest list and push
        working-directory: ${{ runner.temp }}/digests
        run: |
          for TAG in $DOCKER_METADATA_OUTPUT_TAGS; do
            docker buildx imagetools create -t $TAG \
              $(printf 'ghcr.io/${{ github.repository_owner }}/laf-server@sha256:%s ' *)
            sleep 3
          done

      - name: Inspect image
        run: |
          docker buildx imagetools inspect ghcr.io/${{ github.repository_owner }}/laf-server:${{ steps.meta.outputs.version }}

================================================
FILE: .github/workflows/dockerize-web.yml
================================================
name: dockerize-web

on:
  workflow_dispatch:
  pull_request:
    branches: [main]
    types: [opened, synchronize, reopened]
    paths:
      - "web/**"
      - ".github/workflows/dockerize-web.yml"
      - "!**/*.md"
      - "!web/package-lock.json"
  push:
    branches:
      - main
    paths:
      - "web/**"
      - ".github/workflows/dockerize-web.yml"
      - "!**/*.md"
      - "!web/package-lock.json"

permissions:
  pull-requests: write
  packages: write
  contents: read
  issues: write

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}

jobs:
  build-web-images:
    name: Build Web Docker Images
    permissions:
      packages: write
    strategy:
      matrix:
        include:
          - arch: amd64
          - arch: arm64
            runs-on: ubuntu-24.04-arm
    runs-on: ${{ matrix.runs-on || 'ubuntu-24.04' }}

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Cache node modules
        id: cache-node-modules
        uses: actions/cache@v4
        with:
          path: web/node_modules
          key: ${{ runner.os }}-${{ matrix.arch }}-node-${{ hashFiles('web/package-lock.json') }}

      - name: Use Node
        uses: actions/setup-node@v4
        with:
          node-version: 18.x

      - name: Install Package
        working-directory: web
        if: steps.cache-node-modules.outputs.cache-hit != 'true'
        run: npm ci

      - name: Build web
        working-directory: web
        env:
          VITE_SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
          VITE_GITHUB_SHA: ${{ github.sha }}
        run: npm run build

      - name: Create Sentry release
        uses: getsentry/action-release@v1
        if: ${{ !github.event.repository.fork && github.event_name != 'pull_request' && matrix.arch == 'amd64' }}
        continue-on-error: true
        env:
          SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
          SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
          SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
        with:
          sourcemaps: web/dist/assets
          url_prefix: "~/assets/"
          version: ${{ format('laf@{0}', github.sha) }}
          working_directory: web
          ignore_missing: true
          ignore_empty: true

      - name: Sentry release info (PR only)
        if: github.event_name == 'pull_request' && matrix.arch == 'amd64'
        run: |
          echo "ℹ️  Sentry release skipped in PR for security reasons"
          echo "🚀 Sentry release will be created when this PR is merged"

      - name: Remove source maps
        run: rm -rf web/dist/assets/*.map

      - name: Set up QEMU
        if: ${{ matrix.arch != runner.arch }}
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to DockerHub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-web
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-web', env.DOCKERHUB_USERNAME) || '' }}

      - name: Build for ${{ matrix.arch }}
        id: docker-build
        uses: docker/build-push-action@v6
        with:
          context: ./web
          file: ./web/Dockerfile
          labels: ${{ steps.meta.outputs.labels }}
          platforms: linux/${{ matrix.arch }}
          # PR builds: load locally, Main builds: push by digest
          push: false
          load: ${{ github.event_name == 'pull_request' }}
          outputs: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' && format('type=image,"name=ghcr.io/{0}/laf-web{1}",name-canonical=true,push-by-digest=true,push=true', github.repository_owner, env.DOCKERHUB_USERNAME && format(',docker.io/{0}/laf-web', env.DOCKERHUB_USERNAME) || '') || '' }}

      - name: Export digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        run: |
          mkdir -p ${{ runner.temp }}/digests
          digest="${{ steps.docker-build.outputs.digest }}"
          touch "${{ runner.temp }}/digests/${digest#sha256:}"

      - name: Upload digest
        if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
        uses: actions/upload-artifact@v4
        with:
          name: digests-web-${{ matrix.arch }}
          path: ${{ runner.temp }}/digests/*
          if-no-files-found: error
          retention-days: 1

      - name: Comment on PR
        if: github.event_name == 'pull_request' && matrix.arch == 'amd64' && always()
        uses: actions/github-script@v7
        continue-on-error: true
        with:
          script: |
            const buildSuccess = '${{ steps.docker-build.outcome }}' === 'success';
            const emoji = buildSuccess ? '✅' : '❌';
            const status = buildSuccess ? 'Success' : 'Failed';

            let body = `## ${emoji} laf Web Image Build ${status}\n\n`;
            body += `### Build Details\n\n`;
            body += `| Item | Value |\n`;
            body += `|------|-------|\n`;
            body += `| Build Status | ${buildSuccess ? '✅ Passed' : '❌ Failed'} |\n`;
            body += `| Platforms | linux/amd64 (PR validation) |\n`;
            body += `| Push to Registry | ⚠️ No (PR build only) |\n`;
            body += `| Node Version | 18.x |\n`;
            body += `| Framework | Vite/React |\n\n`;

            if (buildSuccess) {
              body += `### 📦 Image will be published after merge to main\n\n`;
              body += `**Note**: PR builds only verify the Docker build process for linux/amd64. Multi-platform images (amd64 + arm64) are built and pushed only when merged to main.\n\n`;
            }

            body += `**Commit**: \`${{ github.sha }}\`\n`;
            body += `**Triggered by**: @${{ github.actor }}\n`;

            try {
              const { data: comments } = await github.rest.issues.listComments({
                owner: context.repo.owner,
                repo: context.repo.repo,
                issue_number: context.issue.number,
              });

              const botComment = comments.find(comment =>
                comment.user.type === 'Bot' &&
                comment.body.includes('laf Web Image Build')
              );

              if (botComment) {
                await github.rest.issues.updateComment({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  comment_id: botComment.id,
                  body: body
                });
              } else {
                await github.rest.issues.createComment({
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  issue_number: context.issue.number,
                  body: body
                });
              }
            } catch (error) {
              console.log('Failed to post comment:', error.message);
              console.log('This might be expected for PRs from forks');
            }

  release-web-images:
    name: Push Web Docker Images
    permissions:
      packages: write
    needs: build-web-images
    runs-on: ubuntu-24.04
    if: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
    steps:
      - name: Login to DockerHub
        if: ${{ env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to Github Container Hub
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Download digests
        uses: actions/download-artifact@v5
        with:
          path: ${{ runner.temp }}/digests
          pattern: digests-web-*
          merge-multiple: true

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-web
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-web', env.DOCKERHUB_USERNAME) || '' }}
          tags: |
            type=ref,event=branch
            type=ref,event=pr
            type=ref,event=tag
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=semver,pattern={{major}}
            type=sha
            type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}

      - name: Create manifest list and push
        working-directory: ${{ runner.temp }}/digests
        run: |
          for TAG in $DOCKER_METADATA_OUTPUT_TAGS; do
            docker buildx imagetools create -t $TAG \
              $(printf 'ghcr.io/${{ github.repository_owner }}/laf-web@sha256:%s ' *)
            sleep 3
          done

      - name: Inspect image
        run: |
          docker buildx imagetools inspect ghcr.io/${{ github.repository_owner }}/laf-web:${{ steps.meta.outputs.version }}

================================================
FILE: .github/workflows/e2e.yml
================================================
name: e2e

on:
  repository_dispatch:
    types: [cluster_image_build_success, dockerize_runtime_success]
  workflow_dispatch:
  push:
    branches:
      - main
    paths:
      - "e2e/**"
      - ".github/workflows/e2e.yml"

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  DOMAIN: 127.0.0.1.nip.io

jobs:
  e2e:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Remove builtin docker
        run: |
          sudo apt-get remove -y moby-engine moby-cli moby-buildx moby-compose

      - name: Deploy laf
        env:
          DOMAIN: ${{ env.DOMAIN }}
        working-directory: deploy
        run: sudo sh install-on-linux.sh $DOMAIN # this script will install sealos and laf

      - name: Run E2E Test
        working-directory: e2e
        run: |
          sudo sh e2e.sh


================================================
FILE: .github/workflows/link-pr.yml
================================================
name: links when pr

on:
  pull_request:
    branches: [main]
    paths:
      - "**.md"
      - "docs/**"
      - ".lycheeignore"

jobs:
  linkChecker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Build Docs
        uses: ./.github/actions/build-docs

      - name: Link Checker
        uses: lycheeverse/lychee-action@v1.8.0
        with:
          fail:
            true
            # For parameter description, see https://github.com/lycheeverse/lychee#commandline-parameters
            # -E, --exclude-all-private    Exclude all private IPs from checking.
            # -i, --insecure               Proceed for server connections considered insecure (invalid TLS)
            # -n, --no-progress            Do not show progress bar.
            # -t, --timeout <timeout>      Website timeout in seconds from connect to response finished [default:20]
            # --max-concurrency <max-concurrency>    Maximum number of concurrent network requests [default: 128]
            # -a --accept <accept>                      Comma-separated list of accepted status codes for valid links

            # docs/.vitepress/dist the site directory to check
            # ./*.md all markdown files in the root directory
          args: -E -i -n -t 45 --max-concurrency 64 -a 401,403 -- 'docs/.vitepress/dist' '*.md'
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}


================================================
FILE: .github/workflows/release.yml
================================================
name: release

on:
  workflow_dispatch:
  push:
    tags:
      - v*.*.*

permissions:
  contents: read
  packages: write

env:
  DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}

jobs:
  dockerize-server:
    name: Build and Push Server Release Image
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 18.x
          cache: "npm"
          cache-dependency-path: server/package-lock.json

      - name: Install dependencies
        working-directory: server
        run: npm ci

      - name: Build server
        working-directory: server
        run: npm run build

      - name: Docker meta
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-server
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-server', env.DOCKERHUB_USERNAME) || '' }}
          tags: |
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=semver,pattern={{major}}
            type=sha,format=short

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to DockerHub
        if: ${{ env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to GitHub Container Registry
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push
        id: docker-build
        uses: docker/build-push-action@v6
        with:
          context: ./server
          file: ./server/Dockerfile
          push: true
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}
          platforms: linux/amd64,linux/arm64

      - name: Log published images
        run: |
          echo "Published server images:"
          echo "${{ steps.meta.outputs.tags }}"
          echo "Digest: ${{ steps.docker-build.outputs.digest }}"

  dockerize-web:
    name: Build and Push Web Release Image
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 18.x
          cache: "npm"
          cache-dependency-path: web/package-lock.json

      - name: Install dependencies
        working-directory: web
        run: npm ci

      - name: Build web
        working-directory: web
        run: npm run build

      - name: Remove source maps
        run: rm -rf web/dist/assets/*.map

      - name: Docker meta
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: |
            ghcr.io/${{ github.repository_owner }}/laf-web
            ${{ env.DOCKERHUB_USERNAME && format('docker.io/{0}/laf-web', env.DOCKERHUB_USERNAME) || '' }}
          tags: |
            type=semver,pattern={{version}}
            type=semver,pattern={{major}}.{{minor}}
            type=semver,pattern={{major}}
            type=sha,format=short

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to DockerHub
        if: ${{ env.DOCKERHUB_USERNAME != '' }}
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Login to GitHub Container Registry
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.repository_owner }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push
        id: docker-build
        uses: docker/build-push-action@v6
        with:
          context: ./web
          file: ./web/Dockerfile
          push: true
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}
          platforms: linux/amd64,linux/arm64

      - name: Log published images
        run: |
          echo "Published web images:"
          echo "${{ steps.meta.outputs.tags }}"
          echo "Digest: ${{ steps.docker-build.outputs.digest }}"

  notify-completion:
    name: Notify Release Completion
    needs: [dockerize-server, dockerize-web]
    runs-on: ubuntu-latest

    steps:
      - name: Extract version from tag
        id: version
        run: |
          VERSION=${GITHUB_REF#refs/tags/}
          echo "version=$VERSION" >> $GITHUB_OUTPUT
          echo "Extracted version: $VERSION"

      - name: Log release completion
        run: |
          echo "Release workflow completed successfully"
          echo "This will trigger build-sealos-cluster-image via workflow_run"
          echo "Version: ${{ steps.version.outputs.version }}"
          echo "Ref: ${{ github.ref }}"
          echo "SHA: ${{ github.sha }}"


================================================
FILE: .github/workflows/sync-upstream.yml
================================================
name: Upstream Sync

permissions:
  contents: write

on:
  schedule:
    - cron: "0 0 * * *" # every day
  workflow_dispatch:

jobs:
  sync_latest_from_upstream:
    name: Sync latest commits from upstream repo
    runs-on: ubuntu-latest
    if: ${{ github.event.repository.fork }}

    steps:
      - name: Checkout target repo
        uses: actions/checkout@v3

      - name: Sync upstream changes
        id: sync
        uses: aormsby/Fork-Sync-With-Upstream-action@v3.4
        with:
          upstream_sync_repo: labring/laf
          upstream_sync_branch: main
          target_sync_branch: main
          target_repo_token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, no need to set
          # Set test_mode true to run tests instead of the true action!!
          test_mode: false

      - name: Sync check
        if: failure()
        run: |
          echo "[Error] Due to the change of the workflow file in the upstream warehouse, GitHub automatically suspended this automatic update, you need to manually Sync Fork once."
          exit 1


================================================
FILE: .gitignore
================================================
node_modules
dist

upload
data/*
tmp

ecosystem.config.js
.DS_Store
.idea

coverage
.nyc_output

kubernetes-dev/mongo-data

kubernetes-local/
.vscode/configurationCache.log
.vscode/dryrun.log
.vscode/targets.log

.kube/

build/*/manifests
build/*/registry
build/*/charts
build/registry
build-dev
docs/.vitepress/.temp
.idea/

update-changelog.sh
runtimes/nodejs-esm
yarn.lock
deploy/logs/sealos.log


================================================
FILE: .husky/pre-commit
================================================
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npm run lint-staged


================================================
FILE: .lycheeignore
================================================
.*appid.*
.*xx.*
https://beian.miit.gov.cn/
.*127-0-0-1.*
https://oss.laf.run
https://github.com/labring/laf/edit/main/docs/
https://openapi.alipaydev.com/gateway.do
https://github.com/labring/laf/commit/
https://github.com/labring/laf/issues/
https://twitter.com/laf_dev
https://oss.laf.dev
https://oss.laf.dev/
https://laf.run/v1/auth/passwd/signin

================================================
FILE: .vscode/extensions.json
================================================
{
  "recommendations": [
    "dbaeumer.vscode-eslint",
    "christian-kohler.npm-intellisense",
    "streetsidesoftware.code-spell-checker",
    "pomdtr.excalidraw-editor",
    "Tim-Koehler.helm-intellisense",
    "lokalise.i18n-ally",
    "stylelint.vscode-stylelint",
    "EditorConfig.EditorConfig"
  ]
}

================================================
FILE: .vscode/settings.json
================================================
{
  // editor
  "editor.formatOnSave": true,
  "editor.formatOnType": true,
  "editor.tabSize": 2,
  "editor.suggestSelection": "first",
  "editor.renderControlCharacters": true,
  "editor.quickSuggestions": {
    "strings": true
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  // eslint
  "eslint.alwaysShowStatus": true,
  "eslint.format.enable": true,
  "eslint.run": "onSave",
  "eslint.codeActionsOnSave.mode": "all",
  // json
  "[json]": {
    "editor.defaultFormatter": "vscode.json-language-features"
  },
  "cSpell.words": [
    "aarch",
    "Adora",
    "alicloud",
    "alipay",
    "alisms",
    "apiextensions",
    "apiv",
    "appid",
    "automount",
    "Autoscaler",
    "binded",
    "bodyparser",
    "bson",
    "buildah",
    "buildx",
    "Builtins",
    "chakra",
    "Chakra",
    "chatgpt",
    "ciphertext",
    "cloudbin",
    "clsx",
    "codingame",
    "coll",
    "compat",
    "containerd",
    "creationforms",
    "curlimages",
    "datasource",
    "datepicker",
    "dockerode",
    "doctag",
    "dysmsapi",
    "Dysmsapi",
    "EJSON",
    "entrypoint",
    "finalizers",
    "fullname",
    "ghaction",
    "healthz",
    "hljs",
    "hokify",
    "hostpath",
    "immer",
    "Katex",
    "Kube",
    "kubeconfig",
    "Kubefile",
    "Kubernetes",
    "labring",
    "lafjs",
    "lafyun",
    "languagedetector",
    "logtostderr",
    "mchid",
    "millicores",
    "mimetypes",
    "MINIO",
    "moby",
    "mongorestore",
    "MONOG",
    "nestjs",
    "objs",
    "openapi",
    "openebs",
    "OVERLIMIT",
    "pako",
    "passw",
    "pgdb",
    "presigner",
    "qrcode",
    "readwrite",
    "Referer",
    "rehype",
    "relock",
    "rolebinding",
    "roundrobin",
    "runc",
    "runtimes",
    "runtimev",
    "sealctl",
    "sealos",
    "signin",
    "Signup",
    "simplebar",
    "statefulset",
    "storageclass",
    "Streamable",
    "stylelint",
    "tailwindcss",
    "tanstack",
    "telepresence",
    "tolerations",
    "uids",
    "ungzip",
    "upsert",
    "upserted",
    "urlencode",
    "userid",
    "uuidv",
    "videobg",
    "videomobile",
    "vitepress",
    "webchat",
    "wechat",
    "WECHATPAY",
    "withs",
    "xmlparser",
    "zcube",
    "zustand"
  ],
  "i18n-ally.localesPaths": "web/public/locales",
  "i18n-ally.enabledParsers": [
    "json"
  ],
  "i18n-ally.enabledFrameworks": [
    "react",
    "i18next",
    "general"
  ],
  "i18n-ally.sourceLanguage": "zh",
  // "i18n-ally.displayLanguage": "en,zh",
  "i18n-ally.displayLanguage": "zh",
  "i18n-ally.namespace": false,
  "i18n-ally.pathMatcher": "{locale}/translation.json",
  "i18n-ally.keystyle": "nested",
  "i18n-ally.keysInUse": [
    "description.part2_whatever"
  ],
  "jest.rootPath": "e2e",
  "typescript.tsdk": "node_modules/typescript/lib",
  "[typescriptreact]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint"
  },
  "[typescript]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint"
  },
}

================================================
FILE: CHANGELOG.md
================================================
# [1.0.0-beta.4](https://github.com/labring/laf/compare/v1.0.0...v1.0.0-beta.4) (2024-04-01)



# [1.0.0](https://github.com/labring/laf/compare/v1.0.0-beta.14...v1.0.0) (2024-04-01)


### Bug Fixes

* **build:** remove unneeded build layer ([#1822](https://github.com/labring/laf/issues/1822)) ([f53510c](https://github.com/labring/laf/commit/f53510c1997164be42d28d0e2eba2bc0e12edf15))
* **cli:** dotenv package missing error ([#1747](https://github.com/labring/laf/issues/1747)) ([3539d17](https://github.com/labring/laf/commit/3539d1776449c0fb5bfbf3c16fd33a93a4d1a552))
* **cli:** func desc missing caused by typo ([#1832](https://github.com/labring/laf/issues/1832)) ([3816b3f](https://github.com/labring/laf/commit/3816b3fad3e6f8e538acd48daac699b753f77b52))
* **cli:** storage field key error during refresh ([#1833](https://github.com/labring/laf/issues/1833)) ([17811c4](https://github.com/labring/laf/commit/17811c49b9d45b27db1b557e97be1c3806544963))
* fix bson version error in database-ql ([#1751](https://github.com/labring/laf/issues/1751)) ([d3a5c7f](https://github.com/labring/laf/commit/d3a5c7fe4852cc93aaf2fe291355e98b48d2078e))
* **runtime-exporter:** repair the build process ([#1869](https://github.com/labring/laf/issues/1869)) ([2948df9](https://github.com/labring/laf/commit/2948df95b587be7eb813424af0b3bbd8a1c88bf9))
* **runtime:** fix override deps when init package.json ([#1855](https://github.com/labring/laf/issues/1855)) ([d73d71b](https://github.com/labring/laf/commit/d73d71bcfb5b02cc4eb068667b6b7f8105108006))
* **runtime:** fix runtime database connection error ([#1776](https://github.com/labring/laf/issues/1776)) ([db10359](https://github.com/labring/laf/commit/db10359399f61adbe49ba0c9dd7ef3be033caf3a))
* **runtime:** fix storage server query url problem ([#1910](https://github.com/labring/laf/issues/1910)) ([27be959](https://github.com/labring/laf/commit/27be959cf8406bb14c5c5cc40bf04adaeb440239))
* **runtime:** fix upload-dependencies tar path ([#1891](https://github.com/labring/laf/issues/1891)) ([bc948e2](https://github.com/labring/laf/commit/bc948e2d1acaaff9d308bebb645cdb05672e8ac9))
* **runtime:** print error when invoke init function error ([#1887](https://github.com/labring/laf/issues/1887)) ([fbfa762](https://github.com/labring/laf/commit/fbfa762afaaf02e7fd9d6477740f0005a8144853))
* **runtime:** wait for db ready ([#1774](https://github.com/labring/laf/issues/1774)) ([f1f0798](https://github.com/labring/laf/commit/f1f0798d303f73f0b8583458d7b0315770610b39))
* **server:** add environment variable to control bucket domain Create task switch ([#1836](https://github.com/labring/laf/issues/1836)) ([3e17727](https://github.com/labring/laf/commit/3e1772714d110b16f98dfaab9ae3338a1652914a))
* **server:** billing error with old apps ([#1797](https://github.com/labring/laf/issues/1797)) ([fadd735](https://github.com/labring/laf/commit/fadd7356952a1e8130fb60dfaa1a592e1e88a7d1))
* **server:** billing for all apps including stopped apps ([#1781](https://github.com/labring/laf/issues/1781)) ([6cb7e57](https://github.com/labring/laf/commit/6cb7e576c6e926735a2d7d8fbdcbca490ba3ce05))
* **server:** certificate of unbundled website domain name is not deleted ([#1871](https://github.com/labring/laf/issues/1871)) ([d52a578](https://github.com/labring/laf/commit/d52a57803433e4c16212680e20625f3d5af2a845))
* **server:** disable i18n file watching in server ([#1800](https://github.com/labring/laf/issues/1800)) ([e9b6de7](https://github.com/labring/laf/commit/e9b6de70be7c38c085311a7dcd7b1f205492c4d1))
* **server:** fix being failed to find address when connect ddb ([#1771](https://github.com/labring/laf/issues/1771)) ([0ed539e](https://github.com/labring/laf/commit/0ed539ec9d0607190107e2ad7cd712bdc88cab43))
* **server:** fix certificate not deleting and rebuilding issue when unbundling runtime custom domains ([#1829](https://github.com/labring/laf/issues/1829)) ([77be144](https://github.com/labring/laf/commit/77be144c48c4ee473104ae882520f47210efa520))
* **server:** fix compiled code that doesn't support await import ([#1828](https://github.com/labring/laf/issues/1828)) ([b23d2a2](https://github.com/labring/laf/commit/b23d2a2f8841c9095bf3cbca5497c515eb6a51b4))
* **server:** fix dedicated database connect host ([#1906](https://github.com/labring/laf/issues/1906)) ([658fe49](https://github.com/labring/laf/commit/658fe4978a6b21c4c4881f6990651a948704804a))
* **server:** fix extra billing for ddb when app has stopped ([#1884](https://github.com/labring/laf/issues/1884)) ([3113289](https://github.com/labring/laf/commit/31132890260be382285c7714ce6c3591ff3acecf))
* **server:** fix multi-region database connectivity issues ([#1801](https://github.com/labring/laf/issues/1801)) ([aa28e7e](https://github.com/labring/laf/commit/aa28e7e0a0c5fb6c7dc87f15372be26144cf0b92))
* **server:** fix too large entity error when upload large func ([#1882](https://github.com/labring/laf/issues/1882)) ([fdf96bb](https://github.com/labring/laf/commit/fdf96bb51ddaade6e6b09fca32f6f6da16db3373))
* **server:** read manifest failed when init region ([#1820](https://github.com/labring/laf/issues/1820)) ([f72e024](https://github.com/labring/laf/commit/f72e02467e3d40f1d851e14db4af983535fc42b4))
* **server:** update account updateAt ([#1806](https://github.com/labring/laf/issues/1806)) ([1b75bac](https://github.com/labring/laf/commit/1b75bacfb80fb56c5984f83aaf7ced9f1970d1a7))
* **server:** update function changelog optional ([#1799](https://github.com/labring/laf/issues/1799)) ([84ea810](https://github.com/labring/laf/commit/84ea810bf3dfed181cb7fe8331b35866868b9a95))
* **web&server:** fix billing query time boundary problem ([#1745](https://github.com/labring/laf/issues/1745)) ([d9cfd9f](https://github.com/labring/laf/commit/d9cfd9f933cb260ec43a658db8139e2a471067b0))
* **web:** cannot click history func version ([#1798](https://github.com/labring/laf/issues/1798)) ([12bef25](https://github.com/labring/laf/commit/12bef25e93e2049562db896e2c7fc00d60cc258b))
* **web:** change monaco loader cdn with self-host js ([#1812](https://github.com/labring/laf/issues/1812)) ([604ee33](https://github.com/labring/laf/commit/604ee33410b91b07fee89f505f70dadf2e8b9717))
* **web:** error when click recommend specs ([#1793](https://github.com/labring/laf/issues/1793)) ([cea1c88](https://github.com/labring/laf/commit/cea1c8889dc72873baa618afb06106366f0a17e0))
* **web:** fix ddb not compactable with old app ([#1768](https://github.com/labring/laf/issues/1768)) ([208a683](https://github.com/labring/laf/commit/208a683d717366dadab5eb03fdfee71b74389a43))
* **web:** fix editor theme override & init with value ([#1795](https://github.com/labring/laf/issues/1795)) ([b127a0b](https://github.com/labring/laf/commit/b127a0bfd954d6094f65306b91f9cab006d0b8b4))
* **web:** fix function scroll bar & support horizontal scrolling ([#1814](https://github.com/labring/laf/issues/1814)) ([48d636c](https://github.com/labring/laf/commit/48d636c72aff65c9d100e5a3d83fb9be37fcb3ca))
* **web:** fix monaco editor key binding ([#1809](https://github.com/labring/laf/issues/1809)) ([87b3c03](https://github.com/labring/laf/commit/87b3c0338c0c2af6adfa243060625fab1eaf41b4))
* **web:** fix nginx conf ([#1907](https://github.com/labring/laf/issues/1907)) ([b37508a](https://github.com/labring/laf/commit/b37508a02f7211a7895dcd3331590b4d3c9c2f8e))
* **web:** fix nginx conf ([#1908](https://github.com/labring/laf/issues/1908)) ([9ec2a97](https://github.com/labring/laf/commit/9ec2a9739c9403e57a0a2524c8211dec52d31ad1))
* **web:** fix not auto import typings when switch paths ([#1896](https://github.com/labring/laf/issues/1896)) ([f7ab0dd](https://github.com/labring/laf/commit/f7ab0dd687f76812b2772a3016f4b5d30fcac00b))
* **web:** fix only display either phone or email login ([#1888](https://github.com/labring/laf/issues/1888)) ([896386d](https://github.com/labring/laf/commit/896386d1620ff9c2477012e262357981980c5295))
* **web:** fix pwa cache ([#1905](https://github.com/labring/laf/issues/1905)) ([ab28cd4](https://github.com/labring/laf/commit/ab28cd4df9097a5aee6f14a1899232000f02af1d))
* **web:** fix storage path concatenation & add dependency install tip ([#1864](https://github.com/labring/laf/issues/1864)) ([53e491a](https://github.com/labring/laf/commit/53e491a70d05930c2c86b833ea2fe9000dfaf740))
* **web:** not update recent function list when deploy & fix type when import function by relative path ([#1821](https://github.com/labring/laf/issues/1821)) ([2a06729](https://github.com/labring/laf/commit/2a06729d304ef6da9ef8624363cbac673ea901f1))
* **web:** wait for all delete files  promise settled ([#1777](https://github.com/labring/laf/issues/1777)) ([44df222](https://github.com/labring/laf/commit/44df22218ab88b16aa15ba76e940735d02078c90))


### Features

* **runtime&server:** support display error/log line ([#1813](https://github.com/labring/laf/issues/1813)) ([faefc11](https://github.com/labring/laf/commit/faefc11c66471b39b5245e19a4b51429c46a9a04))
* **runtime&server:** support updating dependencies without restarting ([#1823](https://github.com/labring/laf/issues/1823)) ([debd01c](https://github.com/labring/laf/commit/debd01c82e02facb3a5e9c5d369fa62f4c1c3892))
* **runtime:** add ts lsp server ([#1660](https://github.com/labring/laf/issues/1660)) ([ba8de86](https://github.com/labring/laf/commit/ba8de8645cf1ff38eba58587f3adc940832967fe))
* **server:** Add a setting to control whether WebPromoPage is enabled or not. ([#1861](https://github.com/labring/laf/issues/1861)) ([cc97241](https://github.com/labring/laf/commit/cc972417d324fe2c14773682bf49b1a7cb022cab))
* **server:** add app network traffic metering ([#1892](https://github.com/labring/laf/issues/1892)) ([ef30cd9](https://github.com/labring/laf/commit/ef30cd917cd8ead8cab092e3f7e690e2452790a2))
* **server:** adding a delinquent flag to an account when the account… ([#1881](https://github.com/labring/laf/issues/1881)) ([a9bc541](https://github.com/labring/laf/commit/a9bc541c649502660f53c679887bf4ae74b90518))
* **server:** recover the application and synchronize the recovery functions to sys_db ([#1879](https://github.com/labring/laf/issues/1879)) ([46a0cd4](https://github.com/labring/laf/commit/46a0cd440feb2c63d21c5dcf327ba2476b5b29e4))
* **server:** support auth methods of email ([#1867](https://github.com/labring/laf/issues/1867)) ([2364f57](https://github.com/labring/laf/commit/2364f57b432fbf93727e3f5872af4e28d8a22da2))
* **server:** support dedicated database ([#1728](https://github.com/labring/laf/issues/1728)) ([cae101b](https://github.com/labring/laf/commit/cae101b7d37e67d342e7b28f132a4e28493bee1f))
* **server:** support function history changelog ([#1756](https://github.com/labring/laf/issues/1756)) ([829fd8a](https://github.com/labring/laf/commit/829fd8a0169702e0c4f9491bf2241b8327582579))
* **server:** support notification ([#1683](https://github.com/labring/laf/issues/1683)) ([d9f527b](https://github.com/labring/laf/commit/d9f527b5dc6fbf702b89a37d6defbd120af734dd))
* **services:** add database metrics interface ([#1739](https://github.com/labring/laf/issues/1739)) ([74518b9](https://github.com/labring/laf/commit/74518b9139b1dd336aa92d278fb8466b0a2bd4e0))
* **web&server:** control the activation of the ddb & change the location of deploy manifests ([#1810](https://github.com/labring/laf/issues/1810)) ([a8bd80e](https://github.com/labring/laf/commit/a8bd80e20144a24b93c6eac9517b99f99dff90b1))
* **web:** add app network traffic metering ([#1894](https://github.com/labring/laf/issues/1894)) ([e9d012d](https://github.com/labring/laf/commit/e9d012ddda0381332c3fc444e71e9c24e807461e))
* **web:** add function list context menu ([#1825](https://github.com/labring/laf/issues/1825)) ([bcde132](https://github.com/labring/laf/commit/bcde132fd872be9ef033d059055b92d5e20c5fff))
* **web:** add index page setting config ([#1858](https://github.com/labring/laf/issues/1858)) ([f192ec8](https://github.com/labring/laf/commit/f192ec8dc2a767bf03b41c336e8635f248bb3708))
* **web:** add laf_doc and laf_about_us url config ([#1763](https://github.com/labring/laf/issues/1763)) ([9a96ff7](https://github.com/labring/laf/commit/9a96ff75c4d5572491e16851b59b193e07c2c882))
* **web:** optimize app log stream ([#1811](https://github.com/labring/laf/issues/1811)) ([59da485](https://github.com/labring/laf/commit/59da48573d139d5fec5c405c0dbff9e3bb320c69))
* **web:** remove charge input ([#1912](https://github.com/labring/laf/issues/1912)) ([c39772b](https://github.com/labring/laf/commit/c39772b500cba35c348a25d0b80bcf68ed1f088d))
* **web:** support ai code completion ([#1877](https://github.com/labring/laf/issues/1877)) ([1c688b8](https://github.com/labring/laf/commit/1c688b8afcbc56af31f040ef3981bb743ac877f5))
* **web:** support auth methods of email ([#1865](https://github.com/labring/laf/issues/1865)) ([9f0a683](https://github.com/labring/laf/commit/9f0a68356b4746ebe948925c62e9e1ce57b9f25f))
* **web:** support dedicated database ([#1730](https://github.com/labring/laf/issues/1730)) ([6a02910](https://github.com/labring/laf/commit/6a0291043f01d3c134625bd345fa94e04fb6794f))
* **web:** support deleting multiple storage files ([#1755](https://github.com/labring/laf/issues/1755)) ([4e47d04](https://github.com/labring/laf/commit/4e47d0483819e273f84f93e741cf7b65d11d0d63))
* **web:** support function changelog ([#1757](https://github.com/labring/laf/issues/1757)) ([9d86105](https://github.com/labring/laf/commit/9d861050120894c3db26039ade6e250b0c340b95))
* **web:** support function editor with lsp ([#1657](https://github.com/labring/laf/issues/1657)) ([d7d0b46](https://github.com/labring/laf/commit/d7d0b46d17cbfb66de806083212e62da4d58ebd0))
* **web:** support function editor with lsp ([#1784](https://github.com/labring/laf/issues/1784)) ([022ee46](https://github.com/labring/laf/commit/022ee46404c87d49f9b86071ff2cb9c8bad62e09))
* **web:** support rename functions using dragging ([#1762](https://github.com/labring/laf/issues/1762)) ([f108ea8](https://github.com/labring/laf/commit/f108ea8d241750b448bd98a4474501ab8bc7a951))
* **web:** support sort files of storage & fix monitor data undefined ([#1819](https://github.com/labring/laf/issues/1819)) ([55360e9](https://github.com/labring/laf/commit/55360e9f411019d41bb80244d6eb137aee7a8007))
* **web:** support updating dependencies without restarting ([#1824](https://github.com/labring/laf/issues/1824)) ([bd69fea](https://github.com/labring/laf/commit/bd69fea2b9a8d3ebf55a24951ef432ae8a7a5218))
* **web:** support version upgrade prompt ([#1754](https://github.com/labring/laf/issues/1754)) ([94e3e82](https://github.com/labring/laf/commit/94e3e82f09aafd0ee9b0704f520f0eec9e1d1b6a))


### Reverts

* Revert "feat(web): support function editor with lsp (#1657)" (#1783) ([5a63468](https://github.com/labring/laf/commit/5a63468432e8173e255ab8cc29f992cd3cf835f0)), closes [#1657](https://github.com/labring/laf/issues/1657) [#1783](https://github.com/labring/laf/issues/1783)



# [1.0.0-beta.14](https://github.com/labring/laf/compare/v1.0.0-beta.13...v1.0.0-beta.14) (2023-12-19)


### Bug Fixes

* **runtime:** append null check to object check ([#1684](https://github.com/labring/laf/issues/1684)) ([f2a3a40](https://github.com/labring/laf/commit/f2a3a40969be641a0235bc2faa916f2d33eebf46))
* **runtime:** fix cloud sdk cannot initialize in custom deps module ([#1711](https://github.com/labring/laf/issues/1711)) ([c1748d6](https://github.com/labring/laf/commit/c1748d6f868b3cef500a41145644204c950bfc9f))
* **runtime:** fix module.exports error; fix logs error while response.chunkedEncoding is true ([#1707](https://github.com/labring/laf/issues/1707)) ([8ea5ad0](https://github.com/labring/laf/commit/8ea5ad0d893e1a55d0f91e65c4d3e6ec4c2de9b7))
* **runtime:** fix process.env hot reload ([#1709](https://github.com/labring/laf/issues/1709)) ([7ef87f5](https://github.com/labring/laf/commit/7ef87f5ab2229045cafef6e74c71738bfc65dd99))
* **runtime:** upgrade node to v20 to fix importModuleDynamic bug ([#1687](https://github.com/labring/laf/issues/1687)) ([849a221](https://github.com/labring/laf/commit/849a2214395afdb92185512515afb68db0760996))
* **server:** add field whitelist for validation ([#1692](https://github.com/labring/laf/issues/1692)) ([b73acea](https://github.com/labring/laf/commit/b73acea07c043ca391782abdcf8ebc2039f5dd08))
* **server:** fix get_client_ip method, use x-forwarded-fro first ([#1717](https://github.com/labring/laf/issues/1717)) ([be0cb05](https://github.com/labring/laf/commit/be0cb054351cc65a03998ec41b7247aa9ddebf79))
* **server:** fix logging api error return ([#1727](https://github.com/labring/laf/issues/1727)) ([dafa12c](https://github.com/labring/laf/commit/dafa12cb58cc426c9a164ed98777e9733647515d))
* **server:** fix runtime logging interface not authenticated ([#1725](https://github.com/labring/laf/issues/1725)) ([6e41123](https://github.com/labring/laf/commit/6e41123dab4206459ce09ec57996069c282dc62d))
* **services:** change runtime exporter penalty rules ([#1733](https://github.com/labring/laf/issues/1733)) ([e2a85e0](https://github.com/labring/laf/commit/e2a85e0c57a5b5d9d3f679e0e3aa2e2bbf0ed2f5))
* **web:** cannot update database record with ObjectId [#1524](https://github.com/labring/laf/issues/1524) ([#1723](https://github.com/labring/laf/issues/1723)) ([f8e2385](https://github.com/labring/laf/commit/f8e2385b26ffcdc7ca2e41425b7a66e1f8b4bada))
* **web:** fix app monitor longest array ([#1682](https://github.com/labring/laf/issues/1682)) ([9239629](https://github.com/labring/laf/commit/9239629fb02681b8b3aca6a3a2e2c3783a5dbecd))
* **web:** function return shows when not undefined & update current function after edit name ([#1713](https://github.com/labring/laf/issues/1713)) ([2b228d0](https://github.com/labring/laf/commit/2b228d05fd67caaf7eea20be1b0185eab44e8fae))
* **web:** jsonviewer support to render large data ([#1731](https://github.com/labring/laf/issues/1731)) ([382d8f2](https://github.com/labring/laf/commit/382d8f2af4824b8b74930b930f767eef165c7864))


### Features

* cli support env ([#1718](https://github.com/labring/laf/issues/1718)) ([80b88c0](https://github.com/labring/laf/commit/80b88c026c3566520e9307843b33e0a14ec34926))
* **cloud-sdk:** add url api to cloud sdk ([#1732](https://github.com/labring/laf/issues/1732)) ([2b87cb7](https://github.com/labring/laf/commit/2b87cb735caf87698a8016fe4c95cd0128fe0e7c))
* **runtime:** add cloud.storage api in cloud sdk ([#1729](https://github.com/labring/laf/issues/1729)) ([18afa9b](https://github.com/labring/laf/commit/18afa9b9b128f935ea1928012bf59fdb1d315721))
* **runtime:** detach custom dependency, support node_module caching ([#1658](https://github.com/labring/laf/issues/1658)) ([2fbc5f1](https://github.com/labring/laf/commit/2fbc5f189a941b3d445c555350ebac4bc9983dcb))
* **runtime:** support LF_NODE_MODULES_CACHE to control if offline deps installation ([#1743](https://github.com/labring/laf/issues/1743)) ([3e4b2f7](https://github.com/labring/laf/commit/3e4b2f7cf78e61619eeaac861074e2d5ab76aa18))
* **runtime:** support relative path import of fn ([#1712](https://github.com/labring/laf/issues/1712)) ([9daa9f8](https://github.com/labring/laf/commit/9daa9f8a42394456179e5437ffd2c89c48505cb1))
* **server:** Add a consolidated multi-pod, multi-container log query ([#1689](https://github.com/labring/laf/issues/1689)) ([b29fdcd](https://github.com/labring/laf/commit/b29fdcdda83cb4b5ea7de0b284642f2884c51e2f))
* **server:** support request-limit ratio conf of runtime resource in region ([#1702](https://github.com/labring/laf/issues/1702)) ([2046b4b](https://github.com/labring/laf/commit/2046b4bdfc4062978b3a79ab18ea9913cd436aab))
* **web:** support consolidated multi-pod, multi-container log query ([#1691](https://github.com/labring/laf/issues/1691)) ([61e7fcb](https://github.com/labring/laf/commit/61e7fcbaa4c103786cf0155e6ab9482db9b04eb6))



# [1.0.0-beta.13](https://github.com/labring/laf/compare/v1.0.0-beta.12...v1.0.0-beta.13) (2023-11-10)


### Bug Fixes

* **runtime:** fix DISABLE_MODULE_CACHE condition error ([#1630](https://github.com/labring/laf/issues/1630)) ([62cc5a7](https://github.com/labring/laf/commit/62cc5a7a6de3709c0363a5fab2f8ee000c7a9d7f))
* **runtime:** fix interceptor main func error ([#1638](https://github.com/labring/laf/issues/1638)) ([b3bc612](https://github.com/labring/laf/commit/b3bc6121843c0d835bf37f72d0371ec2850e5ca5))
* **server:** fix billing miss on old app ([#1659](https://github.com/labring/laf/issues/1659)) ([4e5b8d4](https://github.com/labring/laf/commit/4e5b8d407a06d76091fda112351b1491dc05fac1))
* **server:** fix billing miss on old app ([#1666](https://github.com/labring/laf/issues/1666)) ([943ad92](https://github.com/labring/laf/commit/943ad92000b92e29664a846ee43b6abf120d0a40))
* **server:** fix get metering data miss quota ([#1673](https://github.com/labring/laf/issues/1673)) ([afbdd36](https://github.com/labring/laf/commit/afbdd369945c4b357a4a983e531370926db3ef11))
* **services:** fix runtime exporter metrics data caching issue ([#1663](https://github.com/labring/laf/issues/1663)) ([9e8ee08](https://github.com/labring/laf/commit/9e8ee08c15eb92d1c46c8843152fad50c3c16fec))
* **services:** fix runtime exporter metrics data caching issue ([#1664](https://github.com/labring/laf/issues/1664)) ([c1f0cdc](https://github.com/labring/laf/commit/c1f0cdcbb18d81ad7d703cc9b8e6ded5c37407a4))
* **web:** fix add index bug ([#1626](https://github.com/labring/laf/issues/1626)) ([525a063](https://github.com/labring/laf/commit/525a063987604ea7d96e2555d8274c48cf66844e))
* **web:** fix inner html with LogViewer ([#1636](https://github.com/labring/laf/issues/1636)) ([46bcf42](https://github.com/labring/laf/commit/46bcf42f8d3bb48af84fc125b5468c0b2483edde))
* **web:** fix mergeArrays function ([#1672](https://github.com/labring/laf/issues/1672)) ([ab61bf2](https://github.com/labring/laf/commit/ab61bf23cd3ee302a904cea9f49c733beb470f15))
* **web:** fix monitor mergeArrays ([#1675](https://github.com/labring/laf/issues/1675)) ([51ef7fe](https://github.com/labring/laf/commit/51ef7fe4ea5a612dc59a0f9ca3ce040edbc49fa4))
* **web:** fix upload file entry 100 items limit ([#1629](https://github.com/labring/laf/issues/1629)) ([c92d405](https://github.com/labring/laf/commit/c92d405de8443f0bfb1df3f41d22c59e7c32e734))
* **web:** fix wrap of log amended ([#1645](https://github.com/labring/laf/issues/1645)) ([f78a053](https://github.com/labring/laf/commit/f78a0531ffcc5d0497d08b7c803b1e98e67e2acb))
* **web:** log viewer line height and fontsize ([#1639](https://github.com/labring/laf/issues/1639)) ([dded744](https://github.com/labring/laf/commit/dded7447c15c9933b15e28ba987e125adf5ce838))


### Features

* **runtime:** beautify runtime log format ([#1637](https://github.com/labring/laf/issues/1637)) ([8243db4](https://github.com/labring/laf/commit/8243db4fbf13b8760c7287c2b48457d85f252e91))
* **runtime:** refactor log console & enable module cache ([#1618](https://github.com/labring/laf/issues/1618)) ([8d95fff](https://github.com/labring/laf/commit/8d95fff415b52a18b7a152e4a88d2c7e7fbbda34))
* **runtime:** unit runtime logger instead of log4js; cache __websocket__ module ([2ad4f74](https://github.com/labring/laf/commit/2ad4f74f8ef1861d703b5585fa1d72d4a8286faa))
* **server:** add pod log interface ([#1631](https://github.com/labring/laf/issues/1631)) ([fa726a1](https://github.com/labring/laf/commit/fa726a196e890720780702b1560909e33fb4e67c))
* **services:** add runtime metrics exporter ([#1619](https://github.com/labring/laf/issues/1619)) ([44c29bd](https://github.com/labring/laf/commit/44c29bdbc25f47df66ea347d8be5604d7d83b6d6))
* **web:** add pods logs modal ([#1634](https://github.com/labring/laf/issues/1634)) ([33ac767](https://github.com/labring/laf/commit/33ac767468b7a1150183ecf4312353a13466dcd8))
* **web:** cpu and memory monitor support "all" option ([#1670](https://github.com/labring/laf/issues/1670)) ([b2fdf04](https://github.com/labring/laf/commit/b2fdf045188904937170d1c34d2df82c726f1327))
* **web:** footer add 'about us' page ([#1622](https://github.com/labring/laf/issues/1622)) ([779fae9](https://github.com/labring/laf/commit/779fae94655c2eefdf989b2d8f4f559c4d3dfd94))



# [1.0.0-beta.12](https://github.com/labring/laf/compare/v1.0.0-beta.11...v1.0.0-beta.12) (2023-10-31)


### Bug Fixes

* **cli:** fix app init error ([#1608](https://github.com/labring/laf/issues/1608)) ([7788d6c](https://github.com/labring/laf/commit/7788d6c7811cc5bb2e5f26474abfc70273ba3f60))
* **cli:** fix update func bug ([#1610](https://github.com/labring/laf/issues/1610)) ([92c9830](https://github.com/labring/laf/commit/92c98309a0259cda2768e16feb4c40104a8bf64c))
* **cli:** storage server api changed for cli ([#1609](https://github.com/labring/laf/issues/1609)) ([bf4150e](https://github.com/labring/laf/commit/bf4150e6a0136d80993c1b21836665d928fac232))
* **deploy:** minio console ingress enable websocket ([#1555](https://github.com/labring/laf/issues/1555)) ([f360709](https://github.com/labring/laf/commit/f3607099e72c7e0ca8c22f770f8140788c9bec7c))
* **gateway:** fix cors headers conf of runtime, ingress nginx installation ([#1565](https://github.com/labring/laf/issues/1565)) ([8de0a29](https://github.com/labring/laf/commit/8de0a29de636ecd10287b17fad5504f9c66e4270))
* **runtime:** default close module cache ([#1604](https://github.com/labring/laf/issues/1604)) ([ba378a6](https://github.com/labring/laf/commit/ba378a6e51551e48a5129385dcf3d07f9844e0fa))
* **runtime:** enable cors in runtime; disable cors in gateway ingress ([#1603](https://github.com/labring/laf/issues/1603)) ([06cafd4](https://github.com/labring/laf/commit/06cafd4a793afb9c55f0d3f577aa4e0128bc5180))
* **runtime:** fix compile error ([#1563](https://github.com/labring/laf/issues/1563)) ([3878bc0](https://github.com/labring/laf/commit/3878bc092c4e830cbcb7641da26eed89afc885a6))
* **runtime:** fix db stream initialize ([#1592](https://github.com/labring/laf/issues/1592)) ([40e25f1](https://github.com/labring/laf/commit/40e25f13163f1a0d1274caa8ae4f091e15710fba))
* **runtime:** fix runtime cors options ([#1607](https://github.com/labring/laf/issues/1607)) ([366a6a4](https://github.com/labring/laf/commit/366a6a4e8989ce2f8fd362479001da6b4fd6eb25))
* **runtime:** fix update function not effective ([#1597](https://github.com/labring/laf/issues/1597)) ([0c9daa3](https://github.com/labring/laf/commit/0c9daa304e51d3cb60c7aa1875960c9d8c67bc79))
* **runtime:** support default function ([#1602](https://github.com/labring/laf/issues/1602)) ([04905dc](https://github.com/labring/laf/commit/04905dce839ab1aea2acc29ed8d7cb522fd0f32d))
* **server:** add storage service conf for runtime, add cors conf for bucket ingress ([fc73e6f](https://github.com/labring/laf/commit/fc73e6f9355d2145ee4f24a26ce897430004dbff))
* **server:** fix nest deps missing ([#1564](https://github.com/labring/laf/issues/1564)) ([7781a3e](https://github.com/labring/laf/commit/7781a3ef6c30882a7c2e789b5dfb255bc0d35931))
* **server:** fix not reapply service when restart app ([#1578](https://github.com/labring/laf/issues/1578)) ([bb9e8e2](https://github.com/labring/laf/commit/bb9e8e24a588ddcbe10dc5cc019d0be694889184))
* **server:** fix runtime deployment labels ([#1585](https://github.com/labring/laf/issues/1585)) ([93de793](https://github.com/labring/laf/commit/93de793a119507e5d57f51646203c6d4b5509873))
* **server:** fix user quota ([#1534](https://github.com/labring/laf/issues/1534)) ([d3a2e65](https://github.com/labring/laf/commit/d3a2e65ed86161a6ddd3ff962a53247f0b659689))
* **server:** fixed runtime manifest labels ([#1583](https://github.com/labring/laf/issues/1583)) ([364c7a6](https://github.com/labring/laf/commit/364c7a68526c703d9bb3aa2b9d0b82d0206e8484))
* **server:** set deleting phase for runtime domain and website when deleting app ([#1613](https://github.com/labring/laf/issues/1613)) ([27b0587](https://github.com/labring/laf/commit/27b0587f18f57b04d2a207eae44a27f833ed4b2e))
* **server:** update logic of cronjob deletion ([#1623](https://github.com/labring/laf/issues/1623)) ([fb7a45d](https://github.com/labring/laf/commit/fb7a45db3f137e58e4df00d8e2f51913b5a1f310))
* **web:** disable navigate cache for api endpoint ([#1579](https://github.com/labring/laf/issues/1579)) ([f7b8775](https://github.com/labring/laf/commit/f7b8775843c2908b82761ae93a9e9f78343bf82b))
* **web:** fix bucket display name in edit mode ([#1606](https://github.com/labring/laf/issues/1606)) ([d16bb36](https://github.com/labring/laf/commit/d16bb361d529da9349ebdb739a3334e95246efc1))
* **web:** fix create function default code ([#1544](https://github.com/labring/laf/issues/1544)) ([0b903e8](https://github.com/labring/laf/commit/0b903e8e8fd002d2a0e60a123524ea69a8d23288))
* **web:** fix delete button covered in dependency panel ([#1546](https://github.com/labring/laf/issues/1546)) ([b065acd](https://github.com/labring/laf/commit/b065acdd21b020713243dd8964b667fbb55808b6))
* **web:** fix files can't be accessed before refreshing & change file path ([#1538](https://github.com/labring/laf/issues/1538)) ([86250d9](https://github.com/labring/laf/commit/86250d9b3ad9f9936734af55beadb4af30560a53))
* **web:** fix function list folder name display ([#1561](https://github.com/labring/laf/issues/1561)) ([1f7d6af](https://github.com/labring/laf/commit/1f7d6af998d2b9229ab381f0c092cc957e901f9b))
* **web:** fix params not update & change function list type ([#1535](https://github.com/labring/laf/issues/1535)) ([5366201](https://github.com/labring/laf/commit/53662012e96f3238128623440be9e90bd9104aa8))
* **web:** fix sentry allowlist ([#1587](https://github.com/labring/laf/issues/1587)) ([6c812bd](https://github.com/labring/laf/commit/6c812bd674ccac959c5331d90aa33dd07d8fd2d9))
* **web:** fix sign up navigate & storage display ([#1580](https://github.com/labring/laf/issues/1580)) ([7dac760](https://github.com/labring/laf/commit/7dac7602eb91d7d66aa28ad31c17e961666a2f01))
* **web:** remove storage.credential ([#1594](https://github.com/labring/laf/issues/1594)) ([8e5f568](https://github.com/labring/laf/commit/8e5f56836582b9b4719a9b666c124b93eb92dcb0))


### Features

* **cli:** improve the cli interface ([#1591](https://github.com/labring/laf/issues/1591)) ([fdbfc5c](https://github.com/labring/laf/commit/fdbfc5c518f641c7cd54dd3750a4ba5ea17c2851))
* **cli:** support database export and import ([#1540](https://github.com/labring/laf/issues/1540)) ([8c68089](https://github.com/labring/laf/commit/8c68089a7864cf0eb0895199512f9be72ec48d5f))
* **gateway:** refactor gateway to support ingress ([#1559](https://github.com/labring/laf/issues/1559)) ([155814b](https://github.com/labring/laf/commit/155814bd6751c2962238c8c3d9b5598dea179634))
* **runtime:** add Access-Control-Max-Age to cors options ([#1615](https://github.com/labring/laf/issues/1615)) ([c4b79fb](https://github.com/labring/laf/commit/c4b79fbc041d04a3d960ec182d287e2f46ce73a8))
* **runtime:** proxy cloud storage & website hosting request to minio ([#1560](https://github.com/labring/laf/issues/1560)) ([5456de2](https://github.com/labring/laf/commit/5456de268b8d6fb5128eef499be5e2e980f00db5))
* **runtime:** refactor function engine ([#1590](https://github.com/labring/laf/issues/1590)) ([811066b](https://github.com/labring/laf/commit/811066b5e76f2d85212df8d682a6ebe6edef3824))
* **runtime:** reuse context ([#1539](https://github.com/labring/laf/issues/1539)) ([acafda5](https://github.com/labring/laf/commit/acafda5d43e661ec772cee6790d89066debcb12e))
* **server:** add runtime affinity settings in region ([#1548](https://github.com/labring/laf/issues/1548)) ([d3da138](https://github.com/labring/laf/commit/d3da138bc585ede2d0ee158884e0c40763087cbe))
* **server:** add sealos manager labels to rumtime manifest([#1577](https://github.com/labring/laf/issues/1577)) ([f71ea31](https://github.com/labring/laf/commit/f71ea31457ad22881a32f26ccbdc06a256b3a9b8))
* **server:** add tls config for ingress gateway ([#1569](https://github.com/labring/laf/issues/1569)) ([8751858](https://github.com/labring/laf/commit/8751858cb2fd130fc8030fb5e4caaae86b948c54))
* **server:** support github login ([#1542](https://github.com/labring/laf/issues/1542)) ([14540c1](https://github.com/labring/laf/commit/14540c1a061b9dc24220effded8fa3c759127a8e))
* **web:** add client settings & change settings directory ([#1536](https://github.com/labring/laf/issues/1536)) ([d22fd4e](https://github.com/labring/laf/commit/d22fd4e4469a204efe3e35f9da92bcc1801d7efe))
* **web:** add database indexes management ([#1611](https://github.com/labring/laf/issues/1611)) ([f8c068a](https://github.com/labring/laf/commit/f8c068a95022be80b3fa229db90fb70b70a1fb46))
* **web:** add function list desc-name display & fix editor min-h ([#1545](https://github.com/labring/laf/issues/1545)) ([2b252f2](https://github.com/labring/laf/commit/2b252f2591f8e0d49b09755a46e449e2bba8c3ed))
* **web:** optimize editor ctx type definition ([#1558](https://github.com/labring/laf/issues/1558)) ([b3ecb45](https://github.com/labring/laf/commit/b3ecb4515dd894930b434bebedca87c9db813301))
* **web:** support github login ([#1543](https://github.com/labring/laf/issues/1543)) ([e8b8380](https://github.com/labring/laf/commit/e8b838090ae997add978ca3d0a348d831b268a0f))



# [1.0.0-beta.11](https://github.com/labring/laf/compare/v1.0.0-beta.10...v1.0.0-beta.11) (2023-09-12)


### Bug Fixes

* **build:** fix build of laf mage and change the deployment of metering service ([#1488](https://github.com/labring/laf/issues/1488)) ([d7594af](https://github.com/labring/laf/commit/d7594afa90eceb28d5b54de61cbdc7ddbb9ef0aa))
* **build:** fix minio helm custom commands ([#1432](https://github.com/labring/laf/issues/1432)) ([b46f903](https://github.com/labring/laf/commit/b46f9032a99f46a961fd24fd155c7e5c65911d3e))
* **build:** fix sealos resource system image version ([1d1d249](https://github.com/labring/laf/commit/1d1d249a0e30ce524cd9661bbf090903c11c9435))
* **build:** metering ctrl yaml error ([7fa508e](https://github.com/labring/laf/commit/7fa508e672438b54a513d0c63a1b012defb13403))
* **cli:** fix cannot read properties baseDir ([#1447](https://github.com/labring/laf/issues/1447)) ([9722e9a](https://github.com/labring/laf/commit/9722e9ac5b2dafdd37eb3930bb6cd83970599b47))
* **cli:** fix delete website not found ([#1473](https://github.com/labring/laf/issues/1473)) ([414f518](https://github.com/labring/laf/commit/414f518724970cb9ef4efdc8b54882707d3bb300))
* **cli:** fix read function name error in windows ([#1527](https://github.com/labring/laf/issues/1527)) ([32d2121](https://github.com/labring/laf/commit/32d2121dacd7851e9c4e02a7d39b075c17f79103))
* **log-server:** miss log for request_id required ([#1421](https://github.com/labring/laf/issues/1421)) ([ea07b91](https://github.com/labring/laf/commit/ea07b91f165ebfffd1fff431b71ee1798f604d7b))
* **runtime:** fix change stream concurrency reconnect ([#1480](https://github.com/labring/laf/issues/1480)) ([2ef4873](https://github.com/labring/laf/commit/2ef4873f6cb222942ec67a8e997d3029df0e3767))
* **runtime:** function source leakage caused by type hint interface ([#1454](https://github.com/labring/laf/issues/1454)) ([1ad9832](https://github.com/labring/laf/commit/1ad98323b974f2e107c12d97fdc27a13b0f481f2))
* **runtime:** remove reconnection of mongo stream since bug in it ([f6d8aed](https://github.com/labring/laf/commit/f6d8aed78654ee4bd67e8c96b59e4e84f3aa878a))
* **runtime:** vm add support for Float32Array [#1368](https://github.com/labring/laf/issues/1368) ([#1470](https://github.com/labring/laf/issues/1470)) ([7d081e8](https://github.com/labring/laf/commit/7d081e886d6d081582ae66d4a77d8c5403f7f8ef))
* **server:** add the user quota setting during initialization. ([#1528](https://github.com/labring/laf/issues/1528)) ([18be379](https://github.com/labring/laf/commit/18be379d7f66e4f2c5daa728bc67cdec5db34ed7))
* **server:** bind phone failed ([#1511](https://github.com/labring/laf/issues/1511)) ([3efde87](https://github.com/labring/laf/commit/3efde87346349bd57dfef01c7b914330fca7ba2b))
* **server:** change default interceptor policy ([#1495](https://github.com/labring/laf/issues/1495)) ([11bf0c1](https://github.com/labring/laf/commit/11bf0c19ac76ef34834135146e85c71f7a2490fe))
* **server:** change giftcode dto string length ([#1397](https://github.com/labring/laf/issues/1397)) ([7b792b6](https://github.com/labring/laf/commit/7b792b6ed2233b0a7bbf69cd4ba4c1d41db92c04))
* **server:** change hpa metrics value ([#1505](https://github.com/labring/laf/issues/1505)) ([c444288](https://github.com/labring/laf/commit/c4442888b24c4bc955cc44dbc65f76cd3be3e152))
* **server:** check app auth by createdBy ([#1453](https://github.com/labring/laf/issues/1453)) ([e2be923](https://github.com/labring/laf/commit/e2be923f117e1cbbbdb9d63f5c4416906b0c50ae))
* **server:** correct monitor metrics promql ([#1485](https://github.com/labring/laf/issues/1485)) ([76238d7](https://github.com/labring/laf/commit/76238d71611904d8a50d7840c2150092657044a6))
* **server:** create default group when check miss ([#1459](https://github.com/labring/laf/issues/1459)) ([3bcd8fd](https://github.com/labring/laf/commit/3bcd8fdc31cea23e0056d9cda1f5497da54644eb))
* **server:** fix apisix try path routes ([#1499](https://github.com/labring/laf/issues/1499)) ([69289d4](https://github.com/labring/laf/commit/69289d429db2e0a459a858b3aeb68bb247f72723))
* **server:** fix bind phone dto ([#1509](https://github.com/labring/laf/issues/1509)) ([ee8f551](https://github.com/labring/laf/commit/ee8f551ee36e074647263a725b87ff5c1e19e1cd))
* **server:** fix custom domain stuck in Creating phase ([3844779](https://github.com/labring/laf/commit/38447799a8e854e6993e86b7caef44bb3122626a))
* **server:** fix function templates user information ([#1405](https://github.com/labring/laf/issues/1405)) ([c559cbd](https://github.com/labring/laf/commit/c559cbd0e5e6c84fc9c766d80981fe2d3b88db11))
* **server:** fix undefined field `memberOf` of minio user ([#1436](https://github.com/labring/laf/issues/1436)) ([5c9bb33](https://github.com/labring/laf/commit/5c9bb3370af027e3e6c4d96720ccec9c6f839876))
* **server:** fix website hosting routes ([#1490](https://github.com/labring/laf/issues/1490)) ([d3dba8a](https://github.com/labring/laf/commit/d3dba8ac95522399c56393cf49d85c7471d0f957))
* **server:** guard expired and used for gift code ([#1412](https://github.com/labring/laf/issues/1412)) ([b28c1a5](https://github.com/labring/laf/commit/b28c1a5513008fab5b168df871b1359be03faf73))
* **server:** increase the request payload limit ([#1437](https://github.com/labring/laf/issues/1437)) ([c828c73](https://github.com/labring/laf/commit/c828c73b804ebb38c97a6936cba84dee6f4c1ca9))
* **server:** miss dependence ([#1433](https://github.com/labring/laf/issues/1433)) ([428e9aa](https://github.com/labring/laf/commit/428e9aa5aca3040de4dd5d5b09af7aee9f93eddd))
* **server:** no need to validate old phone when phone num miss ([#1507](https://github.com/labring/laf/issues/1507)) ([6d5882c](https://github.com/labring/laf/commit/6d5882c274161fd220d345c5f0f374b8eb8f67cb))
* **server:** reapply hpa and check spec when spec changes ([#1452](https://github.com/labring/laf/issues/1452)) ([57800c4](https://github.com/labring/laf/commit/57800c4f843c7f49cdb5d7c9440592b24e123236))
* **server:** relock check of domain tls for too long ([#1438](https://github.com/labring/laf/issues/1438)) ([64d27d9](https://github.com/labring/laf/commit/64d27d9e378838f1adb1b8c2c707a2c2812a3b19))
* **server:** remove default region namespace ([afac36d](https://github.com/labring/laf/commit/afac36db58aacc53d407005ac1abbd32fc5e230d))
* **server:** restart app when hpa canceled & fix conf publish ([#1517](https://github.com/labring/laf/issues/1517)) ([969f50d](https://github.com/labring/laf/commit/969f50d0ef3a50a158629543b7a3c6845c77805b))
* **server:** update apisix plugin `try-path` conf ([#1465](https://github.com/labring/laf/issues/1465)) ([ed6061d](https://github.com/labring/laf/commit/ed6061db8b15e699dbafa693f096eaac56e44454))
* **web:** add develop-token to load package ([#1455](https://github.com/labring/laf/issues/1455)) ([30029a7](https://github.com/labring/laf/commit/30029a7ffc57d8f57bf0bf3885df7b72a9b3a3d8))
* **web:** add unavailable page for monitor data & fix link of real name ([#1491](https://github.com/labring/laf/issues/1491)) ([2191468](https://github.com/labring/laf/commit/2191468792a2e6eeeaf0d90a2b35d77d14d394c5))
* **web:** change releasing as app phase ([#1423](https://github.com/labring/laf/issues/1423)) ([d8a149e](https://github.com/labring/laf/commit/d8a149e7ce328b9096accb8820ef7d272614c5fa))
* **web:** fix cron example & fix function page layout & hide email ([#1521](https://github.com/labring/laf/issues/1521)) ([4ef265c](https://github.com/labring/laf/commit/4ef265c1cb74ccdcd6f85d155b7199aff1e0c6b5))
* **web:** fix display issue when username does not exist ([#1411](https://github.com/labring/laf/issues/1411)) ([85ca268](https://github.com/labring/laf/commit/85ca2685e57b2100bc3d41526e69543f29af741f))
* **web:** fix display when monitor data undefined ([#1482](https://github.com/labring/laf/issues/1482)) ([f38cb93](https://github.com/labring/laf/commit/f38cb93ca149bcdde442b86f884a1e89e16aeb2b))
* **web:** fix drag upload folder ([#1426](https://github.com/labring/laf/issues/1426)) ([d223f5f](https://github.com/labring/laf/commit/d223f5fd05ec6c2b6019dd7a05aec2d3485c7a5c))
* **web:** fix invite link http ([#1451](https://github.com/labring/laf/issues/1451)) ([20a89be](https://github.com/labring/laf/commit/20a89be1ca05f4f24dc7339be0a43f8b93db5b11))
* **web:** fix miss getting providers ([#1513](https://github.com/labring/laf/issues/1513)) ([22ef31b](https://github.com/labring/laf/commit/22ef31bb47747913bfa8844cb741b39dd96a3dea))
* **web:** fix monitor bar instant data ([#1500](https://github.com/labring/laf/issues/1500)) ([5862422](https://github.com/labring/laf/commit/5862422b3224772c2025190a6e01f61d9752a83d))
* **web:** fix monitor data instant undefined ([#1506](https://github.com/labring/laf/issues/1506)) ([1582081](https://github.com/labring/laf/commit/15820812ea984ccf5c8b9116eca92cc756b9239e))
* **web:** fix pods list data & adjust create function ui ([#1487](https://github.com/labring/laf/issues/1487)) ([301982e](https://github.com/labring/laf/commit/301982e2fb2b3bfb55d43890529c786d52fb49c7))
* **web:** fix real name auth shown by phone provider ([#1508](https://github.com/labring/laf/issues/1508)) ([b31499d](https://github.com/labring/laf/commit/b31499debe520c77087b85d677feaf10c2cf3c38))
* **web:** fix real-name auth ([#1504](https://github.com/labring/laf/issues/1504)) ([212c873](https://github.com/labring/laf/commit/212c873a976efd20f6e1af8d995eac4fbcf80860))
* **web:** fix statusbar change app specific display ([#1456](https://github.com/labring/laf/issues/1456)) ([f34d50c](https://github.com/labring/laf/commit/f34d50c8020aee23abcc6d90423c1e5d3f5216ae))
* **web:** fix storage list pagination & site available only storage readonly ([#1519](https://github.com/labring/laf/issues/1519)) ([6dfe8c5](https://github.com/labring/laf/commit/6dfe8c5b7751c1d7988916ef67cfd4a83304bdc6))
* **web:** fix the display when app configuration is not in the bundle ([#1458](https://github.com/labring/laf/issues/1458)) ([3d7631a](https://github.com/labring/laf/commit/3d7631ae8a1ccdcb1ebfc393018f70b1eea986a4))
* **web:** fix the type of sms code for phone reset ([#1402](https://github.com/labring/laf/issues/1402)) ([a79e25a](https://github.com/labring/laf/commit/a79e25aaa6f2364212f862ebd6e3575b76869774))
* **web:** fix usage undefined ([#1496](https://github.com/labring/laf/issues/1496)) ([33a5ad6](https://github.com/labring/laf/commit/33a5ad652f2114e3a50c12275d4657d2f686a223))
* **web:** increase zLevel of id verify warn ([#1512](https://github.com/labring/laf/issues/1512)) ([e41cab3](https://github.com/labring/laf/commit/e41cab36490010d056783412c1004d1105db8d9d))
* **web:** keep each function expanded when making modifications ([#1463](https://github.com/labring/laf/issues/1463)) ([01fe18c](https://github.com/labring/laf/commit/01fe18cf46d56712fefc1c5cf0b1813457df3345))


### Features

* **cli:** add options for laf dep command ([#1408](https://github.com/labring/laf/issues/1408)) ([ce6ad79](https://github.com/labring/laf/commit/ce6ad79eae7d1520007ffbe18b67d3be39a871c7))
* **cli:** impl trigger command ([#1413](https://github.com/labring/laf/issues/1413)) ([2ec2929](https://github.com/labring/laf/commit/2ec2929564b8dd1df0414162d9ad6f57320e7bad))
* **cli:** support multi folder for functions ([#1431](https://github.com/labring/laf/issues/1431)) ([3f387ec](https://github.com/labring/laf/commit/3f387ecec7e91330b9286b70dd6d1d24696a3f85))
* replace current logging solution with log server ([#1381](https://github.com/labring/laf/issues/1381)) ([83a9960](https://github.com/labring/laf/commit/83a9960fdd50a478369a6602661435fff3c2ac3d))
* **runtime:** check circular dependency ([#1448](https://github.com/labring/laf/issues/1448)) ([ab7d63d](https://github.com/labring/laf/commit/ab7d63d52402cbcf03f9020badc14099017a605f))
* **server:** add a global http interceptor ([#1430](https://github.com/labring/laf/issues/1430)) ([1c379eb](https://github.com/labring/laf/commit/1c379eb229901be060147ed9d2a595b1ec04692b))
* **server:** add id verify ([#1449](https://github.com/labring/laf/issues/1449)) ([924e0fa](https://github.com/labring/laf/commit/924e0fa6eee9b3fa259208f66a275fe86405c778))
* **server:** add laf web site settings ([#1523](https://github.com/labring/laf/issues/1523)) ([a3d8fc1](https://github.com/labring/laf/commit/a3d8fc1f5ed57c9a88d4a14804cc0e968856bf4a))
* **server:** add random username for phone signup ([#1394](https://github.com/labring/laf/issues/1394)) ([0c04bd8](https://github.com/labring/laf/commit/0c04bd84dcaa4513e7047a0cc6057f0a58a1f7ce))
* **server:** add resource(storage&database) usage limit ([#1245](https://github.com/labring/laf/issues/1245)) ([4ad0d53](https://github.com/labring/laf/commit/4ad0d5356e4a7fd5e0b011343dcc7f62ac2b6809))
* **server:** add signup bonus ([#1531](https://github.com/labring/laf/issues/1531)) ([b5858c7](https://github.com/labring/laf/commit/b5858c70ae4104729b44b04261372349126ed7fd))
* **server:** add user quota to limit user resource create ([#1498](https://github.com/labring/laf/issues/1498)) ([54a7226](https://github.com/labring/laf/commit/54a722675cd9e9a0fa299b6c69e09f69423846cf))
* **server:** support binding email ([#1417](https://github.com/labring/laf/issues/1417)) ([0ce11e7](https://github.com/labring/laf/commit/0ce11e72169d4da00d1f3187dd458b1fb8bf76e1))
* **server:** support fixed namespace of application ([17d99df](https://github.com/labring/laf/commit/17d99df4e961dbd768287315cc66a05a602d8a8c))
* **server:** support import/export application db ([#1479](https://github.com/labring/laf/issues/1479)) ([1a86a8b](https://github.com/labring/laf/commit/1a86a8b7b64d3b255cbf9e6b0a513dbcc9d4beb6))
* **server:** support query instant metrics ([#1502](https://github.com/labring/laf/issues/1502)) ([b12527d](https://github.com/labring/laf/commit/b12527d86c8b1b3797747c33e629c892c3ad3bf5))
* **server:** support recycle bin ([#1396](https://github.com/labring/laf/issues/1396)) ([1ee6def](https://github.com/labring/laf/commit/1ee6def8ed44559de67feaee19102bdeaf6524d1))
* **server:** support resource group ([#1442](https://github.com/labring/laf/issues/1442)) ([b7e9a44](https://github.com/labring/laf/commit/b7e9a44a5573cd9963bd52be962c1845adb7d8f7))
* **server:** support resource monitor ([#1468](https://github.com/labring/laf/issues/1468)) ([9e2c17d](https://github.com/labring/laf/commit/9e2c17d44972f493cefdac027ceeaf791b4e7f35))
* **web:** add app realeasing status ([#1422](https://github.com/labring/laf/issues/1422)) ([930599d](https://github.com/labring/laf/commit/930599d86b7ea665fd3a42518da51c3ac41657d1))
* **web:** add functions list folder ([#1414](https://github.com/labring/laf/issues/1414)) ([2f49a06](https://github.com/labring/laf/commit/2f49a06dae2958dc04896dc8790092406eeb9ba1))
* **web:** add laf web site settings ([#1526](https://github.com/labring/laf/issues/1526)) ([0f91ab6](https://github.com/labring/laf/commit/0f91ab6f862dc0cb01116937e73974dfa3260bf5))
* **web:** add the cursor pointer style for CopyText ([#1404](https://github.com/labring/laf/issues/1404)) ([d261113](https://github.com/labring/laf/commit/d261113c47dae34b37557e861123123188ec54d1))
* **web:** collection list sort ([#1525](https://github.com/labring/laf/issues/1525)) ([6b463f0](https://github.com/labring/laf/commit/6b463f07aba2d0aef037828bb1846fb0286ec60f))
* **web:** enable daypicker component i18n ([#1515](https://github.com/labring/laf/issues/1515)) ([71ec0ca](https://github.com/labring/laf/commit/71ec0cad47fbc56f871ec6f66f72562956ad9230))
* **web:** increase the clickable area of the button  ([#1406](https://github.com/labring/laf/issues/1406)) ([87ba558](https://github.com/labring/laf/commit/87ba558168c7da027a3a7920b68c9d4cf1c79ba9))
* **web:** optimize the list display logic ([#1510](https://github.com/labring/laf/issues/1510)) ([970917d](https://github.com/labring/laf/commit/970917d8710ffd915295159bd4aa41e21baa9c6a))
* **web:** optimize the state display of application list ([#1403](https://github.com/labring/laf/issues/1403)) ([3d72820](https://github.com/labring/laf/commit/3d72820bbc56d6d350740e2c8fbf3c5ae36e9c64))
* **web:** support binding email ([#1418](https://github.com/labring/laf/issues/1418)) ([ce871fa](https://github.com/labring/laf/commit/ce871faac447db840aac5271e2343a3518c590ee))
* **web:** support functions recycle bin ([#1398](https://github.com/labring/laf/issues/1398)) ([1d22b6e](https://github.com/labring/laf/commit/1d22b6ed708d404000005caf7890f90fefa89c4b))
* **web:** support real name authentication ([#1450](https://github.com/labring/laf/issues/1450)) ([4b3126d](https://github.com/labring/laf/commit/4b3126d9e4ece4d1c49a5269432cd91d2659bbb8))
* **web:** support resource group ([#1444](https://github.com/labring/laf/issues/1444)) ([31be734](https://github.com/labring/laf/commit/31be73405e0443c0d18eb554fb29c3f34cdc77fc))
* **web:** support resource monitor ([#1471](https://github.com/labring/laf/issues/1471)) ([4e3edb3](https://github.com/labring/laf/commit/4e3edb3ca258c54930cbf713bf8806eeac30492f))



# [1.0.0-beta.10](https://github.com/labring/laf/compare/v1.0.0-beta.9...v1.0.0-beta.10) (2023-07-12)


### Bug Fixes

* **client-sdk:** fix [#1282](https://github.com/labring/laf/issues/1282) add polyfill for globalThis ([#1295](https://github.com/labring/laf/issues/1295)) ([c0fef5f](https://github.com/labring/laf/commit/c0fef5fb1cadeea6bd4aaeda03c63847612cf6e7))
* **cli:** fix function exec error ([#1270](https://github.com/labring/laf/issues/1270)) ([e077f76](https://github.com/labring/laf/commit/e077f7636176de10c4d165814289d91c88e3719a))
* **cli:** fix get website  by `_id` property ([#1360](https://github.com/labring/laf/issues/1360)) ([214fd7f](https://github.com/labring/laf/commit/214fd7f5c37ef9e6ac329ed56b0c1d20c6f921e3))
* **cli:** fix remote url end with / ([#1251](https://github.com/labring/laf/issues/1251)) ([226ed37](https://github.com/labring/laf/commit/226ed37159508116aacfe5ccf84cc8880b8e184f))
* **cli:** fix useless field in func schema ([35847ee](https://github.com/labring/laf/commit/35847eea1c3b41c8ae1d2f576302fcb3dad9c5e2))
* **cli:** opt func pull command ([#1271](https://github.com/labring/laf/issues/1271)) ([75deeb3](https://github.com/labring/laf/commit/75deeb31292c0cb8cb79fe5c8f42b309415048dc))
* **runtime:** add mongodb stream reconnect  ([#1276](https://github.com/labring/laf/issues/1276)) ([3f8f3ef](https://github.com/labring/laf/commit/3f8f3efca7c97f234d8a5594190e3e5fc0643b35))
* **runtime:** fix [#1229](https://github.com/labring/laf/issues/1229) init function invoke error ([#1230](https://github.com/labring/laf/issues/1230)) ([928ee5c](https://github.com/labring/laf/commit/928ee5cfc8d8ad54c87cb196d562686e45857c2d))
* **runtime:** remove alipay-sdk from runtime ([#1314](https://github.com/labring/laf/issues/1314)) ([c1d6124](https://github.com/labring/laf/commit/c1d61241350995aa5b0bbdb9a0c8b0f793b5cd76))
* **server:** add invite code chargeOrder and fix invite code profit settings ([#1379](https://github.com/labring/laf/issues/1379)) ([7a13658](https://github.com/labring/laf/commit/7a13658e3c253a3eacf56fecf2d0799e79310214))
* **server:** add length limits for function template name ([#1333](https://github.com/labring/laf/issues/1333)) ([fdc3119](https://github.com/labring/laf/commit/fdc311983c3a854ae8952a952e3b3d463a07f265))
* **server:** add recommended function templates and limits for function templates ([#1316](https://github.com/labring/laf/issues/1316)) ([0808c6a](https://github.com/labring/laf/commit/0808c6ab2a918ef542b4a20013180fe471ece0d7)), closes [#1226](https://github.com/labring/laf/issues/1226)
* **server:** add sort filter to resource bundle & options ([#1290](https://github.com/labring/laf/issues/1290)) ([d810000](https://github.com/labring/laf/commit/d810000bc926ae443c214185685bd4ad1bd41aa9))
* **server:** billing task exit abnormally ([#1255](https://github.com/labring/laf/issues/1255)) ([dc3235d](https://github.com/labring/laf/commit/dc3235d8e6ecfaa66de200e3c555317c4b9231d0))
* **server:** create hpa when hpa is not found ([#1275](https://github.com/labring/laf/issues/1275)) ([c7469d3](https://github.com/labring/laf/commit/c7469d3d464bf52c18e355274370f902079d4430))
* **server:** don't add history when debug function ([#1334](https://github.com/labring/laf/issues/1334)) ([347ccb4](https://github.com/labring/laf/commit/347ccb40208cdc7cf15b82c3be21001113a52fd1))
* **server:** fix  charge reward calculation error ([#1269](https://github.com/labring/laf/issues/1269)) ([78c1d79](https://github.com/labring/laf/commit/78c1d79512d5e2a729c569fa4e2722deb66a38e9))
* **server:** fix billing task perf problem ([#1236](https://github.com/labring/laf/issues/1236)) ([43e721f](https://github.com/labring/laf/commit/43e721f4e4e121829edea768b9aecf825ba664d3))
* **server:** fix cross-database issues with function templates ([#1352](https://github.com/labring/laf/issues/1352)) ([0d82090](https://github.com/labring/laf/commit/0d820903513db5484384e9fe1d6505e7a2fac740))
* **server:** improve billing task concurrency ([#1237](https://github.com/labring/laf/issues/1237)) ([a62d875](https://github.com/labring/laf/commit/a62d8755576401baad8fd9d4a0ecd99b9f72c2f1))
* **server:** opt billing task schedular cron ([#1253](https://github.com/labring/laf/issues/1253)) ([3b9e24e](https://github.com/labring/laf/commit/3b9e24ee75d7d26ce4fbd70a518c0990dcdd74b1))
* **server:** sort resource options by created time ([#1327](https://github.com/labring/laf/issues/1327)) ([e0b920c](https://github.com/labring/laf/commit/e0b920cb487818eb9f5898b04416f114e166c082))
* **web:** auto flush cache from service worker ([#1367](https://github.com/labring/laf/issues/1367)) ([4530571](https://github.com/labring/laf/commit/45305716793a73ce7cb15f41ee92203a2bfcdee6))
* **web:** balance recharge ([#1257](https://github.com/labring/laf/issues/1257)) ([6c01d95](https://github.com/labring/laf/commit/6c01d955213dfd943797f0b18497349de56738fe))
* **web:** change typo storage to memory ([#1266](https://github.com/labring/laf/issues/1266)) ([281dd94](https://github.com/labring/laf/commit/281dd94dab6889ecb2bccdcfc1c7caab027b9193))
* **web:** change ui & add infomation display ([#1296](https://github.com/labring/laf/issues/1296)) ([91518bb](https://github.com/labring/laf/commit/91518bb42e5dbc19e79e59c8740a6b413e56e66f))
* **web:** delete repeated component & fix usersetting & fix billing unit ([#1378](https://github.com/labring/laf/issues/1378)) ([f6a8f56](https://github.com/labring/laf/commit/f6a8f56b57cdf7a97a3a764ad376f38bc8bb9186))
* **web:** delete unused api ([#1372](https://github.com/labring/laf/issues/1372)) ([534662b](https://github.com/labring/laf/commit/534662bd6b048b88aed5fd3a57680cc0e865435d))
* **web:** fix function template darkmode & fix function list spacing ([#1369](https://github.com/labring/laf/issues/1369)) ([5a2d17e](https://github.com/labring/laf/commit/5a2d17e8643ce6fe203f13f3581a4798bd81d068))
* **web:** fix function template popover ([#1335](https://github.com/labring/laf/issues/1335)) ([b2165b8](https://github.com/labring/laf/commit/b2165b81b17977edf7174b1fb087b206be82a52f))
* **web:** fix ignore case & use template ([#1329](https://github.com/labring/laf/issues/1329)) ([706a2e2](https://github.com/labring/laf/commit/706a2e2b21b3a2b170bef5a7981f83b7b48afdc9))
* **web:** fix navbar github stars & change bundle billing query ([#1305](https://github.com/labring/laf/issues/1305)) ([2de5562](https://github.com/labring/laf/commit/2de556225237097babf11f2a0f26baa373c1f9ef))
* **web:** fix navigate & func delete & title overflow ([#1331](https://github.com/labring/laf/issues/1331)) ([55507f3](https://github.com/labring/laf/commit/55507f37aadc2762381fa51f36eca5c021b43649))
* **web:** fix recharge display & modal open ([#1274](https://github.com/labring/laf/issues/1274)) ([eaad7ea](https://github.com/labring/laf/commit/eaad7eaa701020bd572e934aa6523eb726ae9eaa))
* **web:** fix rendering issues when custom domain not exist ([#1342](https://github.com/labring/laf/issues/1342)) ([3cb2de3](https://github.com/labring/laf/commit/3cb2de3d7cb9587264297aa1c68158ff4baa6184))
* **web:** fix search query hooks ([#1328](https://github.com/labring/laf/issues/1328)) ([f46a8a0](https://github.com/labring/laf/commit/f46a8a03d0dfbb955bf525538124c36a66ad9f61))
* **web:** fix tabheight in function editor([#1239](https://github.com/labring/laf/issues/1239)) ([70a8fbb](https://github.com/labring/laf/commit/70a8fbbfdd0b7f3c280409a1c680f4a22e1d0770))
* **web:** fix toast & bill overflow ([#1362](https://github.com/labring/laf/issues/1362)) ([918c8d3](https://github.com/labring/laf/commit/918c8d3389880848939732fe8dc3bb796d7472d6))
* **web:** fix type error ([#1377](https://github.com/labring/laf/issues/1377)) ([d15963d](https://github.com/labring/laf/commit/d15963d6d4de5f8a30b310e6ea83bce95407f1be))
* **web:** fix typo ([#1273](https://github.com/labring/laf/issues/1273)) ([4efd3b5](https://github.com/labring/laf/commit/4efd3b5090f42164e782927684d82d10c9211533))
* **web:** fix ui & date range ([#1382](https://github.com/labring/laf/issues/1382)) ([bb19f13](https://github.com/labring/laf/commit/bb19f134479c5c01015a6f9e225235e7c5277cd6))
* **web:** header width error ([#1361](https://github.com/labring/laf/issues/1361)) ([f4ed976](https://github.com/labring/laf/commit/f4ed976a38f4cbaa59fd604f10f94afe112b5e20))
* **web:** hide bonus when no bonus ([#1267](https://github.com/labring/laf/issues/1267)) ([be02bf7](https://github.com/labring/laf/commit/be02bf70147ee1082b5b0d477ee1c5fb2bc5fe6e))
* **web:** hide template ([#1265](https://github.com/labring/laf/issues/1265)) ([60b4b89](https://github.com/labring/laf/commit/60b4b893f681a517a9b249a672a67a0402f943a3))
* **web:** remove casing error direction ([#1330](https://github.com/labring/laf/issues/1330)) ([9d85c50](https://github.com/labring/laf/commit/9d85c50f4a974118a615196d2163ac96b6ca6ef1))
* **web:** reset package list when reopen modal && `Restarting` -> `Starting` for app stopped ([#1324](https://github.com/labring/laf/issues/1324)) ([bfceb4d](https://github.com/labring/laf/commit/bfceb4de008d653ae37a12c0f699a84aaa6fc273))
* **web:** sort application bundles with createdAt & add copytext on input ([#1366](https://github.com/labring/laf/issues/1366)) ([1869ca1](https://github.com/labring/laf/commit/1869ca13a344ae960973802faaec54fb24fd8e03))
* **web:** storage file list hidden ([#1364](https://github.com/labring/laf/issues/1364)) ([dc5d0a4](https://github.com/labring/laf/commit/dc5d0a474f3526a9664c8b0cbf7463f38ac27f86))


### Features

* **cli:** add error prompt & opt init project ([#1235](https://github.com/labring/laf/issues/1235)) ([1f1f7ba](https://github.com/labring/laf/commit/1f1f7ba1c41a63d4f9e5072c2b44671fd4eda273))
* **cli:** app init support basic mode ([#1349](https://github.com/labring/laf/issues/1349)) ([be87fb5](https://github.com/labring/laf/commit/be87fb507bd09fff5f54b32ada48381b86b93ec5))
* **client-sdk:** support taro request ([#1325](https://github.com/labring/laf/issues/1325)) ([021adbd](https://github.com/labring/laf/commit/021adbd5c169d4f4371aae4cbc85ad76cf5b0983))
* **cli:** support specify code directory ([#1241](https://github.com/labring/laf/issues/1241)) ([b94f893](https://github.com/labring/laf/commit/b94f893b283bd49f7eaf396ba00ae47a0e137d38))
* **serve:** add account center ([#1370](https://github.com/labring/laf/issues/1370)) ([d1423bb](https://github.com/labring/laf/commit/d1423bb39762fd127450c873697b8ebde136af89)), closes [#1226](https://github.com/labring/laf/issues/1226)
* **server:** add `message ` field for AccountChargeReward ([#1321](https://github.com/labring/laf/issues/1321)) ([8e7174f](https://github.com/labring/laf/commit/8e7174f157cfa710b12e54f7c6145925d937b812))
* **server:** autoscaling for application ([#1250](https://github.com/labring/laf/issues/1250)) ([698e136](https://github.com/labring/laf/commit/698e1361641ae45f202c27a65d488636b0665e81))
* **server:** function templates add user avatar support ([#1380](https://github.com/labring/laf/issues/1380)) ([383568b](https://github.com/labring/laf/commit/383568bddbc68d0ef7b7c522511faf5b867bdc97))
* **server:** implements cloud function template & templates marketplace ([#1259](https://github.com/labring/laf/issues/1259)) ([9c4a57a](https://github.com/labring/laf/commit/9c4a57a5d5eb0d59f5ed129752b95e056a1d7d36)), closes [#1226](https://github.com/labring/laf/issues/1226)
* **server:** support charge reward ([#1261](https://github.com/labring/laf/issues/1261)) ([88f5bec](https://github.com/labring/laf/commit/88f5beca2851eca299eb01d3c97c0d9131b7f54f))
* **server:** support cloud function history ([#1283](https://github.com/labring/laf/issues/1283)) ([7ff4fbd](https://github.com/labring/laf/commit/7ff4fbdac3f8ef5670916508f7b82057918958ab))
* **server:** support function rename ([#1336](https://github.com/labring/laf/issues/1336)) ([fd8292d](https://github.com/labring/laf/commit/fd8292d5f6c985b1999c0b3bdc93da558d501a91))
* **server:** support modifying user info (username, phone, avatar) ([#1355](https://github.com/labring/laf/issues/1355)) ([8d88d0a](https://github.com/labring/laf/commit/8d88d0a706df861bf2739ad1d08af6126adba6bc))
* **server:** support setting custom domain for application ([#1310](https://github.com/labring/laf/issues/1310)) ([124b919](https://github.com/labring/laf/commit/124b919a38fdff712af2a1914fa6360367b251a3))
* **web:** add balance info at header ([#1359](https://github.com/labring/laf/issues/1359)) ([b678f1e](https://github.com/labring/laf/commit/b678f1efe042d752bcdea58e8e5c965e8a158751))
* **web:** add billing center ([#1371](https://github.com/labring/laf/issues/1371)) ([1f3e5df](https://github.com/labring/laf/commit/1f3e5df71c7eb28feb1c109f1f821c823d8784cf))
* **web:** add function history & add app darkmode ([#1289](https://github.com/labring/laf/issues/1289)) ([2485a33](https://github.com/labring/laf/commit/2485a3310667fc69d8eb2b21c5aad90428b16d61))
* **web:** add function template ([#1264](https://github.com/labring/laf/issues/1264)) ([589d0ff](https://github.com/labring/laf/commit/589d0ff16be28e7a2842b05ab11da9f5e6e8323c))
* **web:** add recharge bonus & autoscaling ([#1263](https://github.com/labring/laf/issues/1263)) ([ff15f30](https://github.com/labring/laf/commit/ff15f305464b6cd4b077ea010192cd5f422bd707))
* **web:** add recommend template & change ui ([#1323](https://github.com/labring/laf/issues/1323)) ([5bcc259](https://github.com/labring/laf/commit/5bcc259a3aed487df2ca30f31a6aacf9bbd30c91))
* **web:** opt function editor ui ([#1233](https://github.com/labring/laf/issues/1233)) ([1bf7eca](https://github.com/labring/laf/commit/1bf7eca1472a9713b262248e5c4fb3d293a420b8))
* **web:** support function rename ([#1343](https://github.com/labring/laf/issues/1343)) ([ad4d8ab](https://github.com/labring/laf/commit/ad4d8abe97c636eb1b4bce680be474e3164c04cc))
* **web:** support modifying user info (username, phone, avatar)  ([#1356](https://github.com/labring/laf/issues/1356)) ([3dbd761](https://github.com/labring/laf/commit/3dbd7615e01d34ced37fd0d823aa79ea04420b45))
* **web:** support pwa ([#1311](https://github.com/labring/laf/issues/1311)) ([d6098e4](https://github.com/labring/laf/commit/d6098e40517b3f6f665db31ec0fdfb845f1b402f))
* **web:** support querying collections using Mongo's "where" statements ([#1374](https://github.com/labring/laf/issues/1374)) ([d076b97](https://github.com/labring/laf/commit/d076b97ec494cc99b320eb059ddb518c1808ed7f))
* **web:** support seeing dep detail by jumping to `npmjs` ([#1315](https://github.com/labring/laf/issues/1315)) ([9e57c79](https://github.com/labring/laf/commit/9e57c7923572de2b06697a918ea73b96279db4c7))
* **web:** support setting custom domain for application ([#1338](https://github.com/labring/laf/issues/1338)) ([f3d6845](https://github.com/labring/laf/commit/f3d6845f350782c99d6f44fff260903ca3cf2309))



# [1.0.0-beta.9](https://github.com/labring/laf/compare/v1.0.0-beta.8...v1.0.0-beta.9) (2023-06-07)


### Bug Fixes

* **cli:** fix ignore file ([#1174](https://github.com/labring/laf/issues/1174)) ([b9f5fc5](https://github.com/labring/laf/commit/b9f5fc50fa571247a31a530e2b0f204be7f79809))
* **runtime:** empty volume mounted error in runtime image ([#1135](https://github.com/labring/laf/issues/1135)) ([207d29c](https://github.com/labring/laf/commit/207d29c6410bf277982cdf68611f166c0056188d))
* **server:** add trial bundle checks in updating application ([#1192](https://github.com/labring/laf/issues/1192)) ([39345bb](https://github.com/labring/laf/commit/39345bb29709dd4fce7b21b2ece44dc5266295c3))
* **server:** cannot restart stopped app ([#1129](https://github.com/labring/laf/issues/1129)) ([5477994](https://github.com/labring/laf/commit/5477994ea17ebc7f7ae2f8bee8ce5fa2b41eacbb))
* **server:** creating website report not found error ([#1198](https://github.com/labring/laf/issues/1198)) ([9107224](https://github.com/labring/laf/commit/910722484c17746f853b564aa267b11e534f2d13))
* **server:** default request ephemeral-storeage error ([#1149](https://github.com/labring/laf/issues/1149)) ([797a9b8](https://github.com/labring/laf/commit/797a9b828ac5bc8dfd0f4cccb4c17dcf80b01808))
* **server:** fix billing task concurrency overflow ([#1216](https://github.com/labring/laf/issues/1216)) ([b8cdc75](https://github.com/labring/laf/commit/b8cdc75a821f0dd465f77ec8b903e574b76a7a79))
* **server:** fix invitation code signup issue ([#1201](https://github.com/labring/laf/issues/1201)) ([dbf3121](https://github.com/labring/laf/commit/dbf3121fb0046b8277995f373b5104473d1fcd68))
* **server:** fix server dockerfile error; web merge conflict ([#1188](https://github.com/labring/laf/issues/1188)) ([6d94fd2](https://github.com/labring/laf/commit/6d94fd2850fb17eb1b30d56cbda4a71141ee974f))
* **server:** IResponse type def error ([#1189](https://github.com/labring/laf/issues/1189)) ([aafde83](https://github.com/labring/laf/commit/aafde83f5bdc31986eb824bfa42b19f6a652f46a))
* **server:** rename limit to pageSize in func log api ([#1202](https://github.com/labring/laf/issues/1202)) ([ac49ded](https://github.com/labring/laf/commit/ac49deda859267cac0dee58783586ef4e9fdef94))
* **server:** some pending billing tasks not processed on time ([ce225d3](https://github.com/labring/laf/commit/ce225d305ac506562e41d222cca89cc73bd11cee))
* **server:** turn off readOnlyRootFilesystem for runtime ([#1150](https://github.com/labring/laf/issues/1150)) ([b0ceb72](https://github.com/labring/laf/commit/b0ceb72ef66cdce97c5f521221f6f8ca1a262544))
* **server:** update billings get api; add createdby to billing schema ([#1197](https://github.com/labring/laf/issues/1197)) ([c407fda](https://github.com/labring/laf/commit/c407fda168fe03690e063227c33e73f76b7bfbea))
* **server:** update resource price to 0 in initializer ([#1193](https://github.com/labring/laf/issues/1193)) ([9a2281e](https://github.com/labring/laf/commit/9a2281e86f2fbad09750ad758f07d170e9dffc48))
* **web:** Add icons to the deploy and fetch buttons ([ef0aae9](https://github.com/labring/laf/commit/ef0aae91d7d85cb514ef80b5cc8e945062c4ec39))
* **web:** adjust editor tips being obscured and some other style problems ([#1179](https://github.com/labring/laf/issues/1179)) ([f49f44e](https://github.com/labring/laf/commit/f49f44e8b12adca16bfdb3470a3c96022a108b9e))
* **web:** adjust the margin of the createApp modal ([f43a0a9](https://github.com/labring/laf/commit/f43a0a9e0a2f8b4478fbfe8cbe55809eeb55612d))
* **web:** app env & price show ([#1207](https://github.com/labring/laf/issues/1207)) ([dc97818](https://github.com/labring/laf/commit/dc97818caf5510c5366031a360fd92014c29ed28))
* **web:** balance value error in cost center page ([#1204](https://github.com/labring/laf/issues/1204)) ([87d482a](https://github.com/labring/laf/commit/87d482a67e8e2c85893f3b8b7ffd3089865f8a43))
* **web:** cannot restart stopped app ([#1128](https://github.com/labring/laf/issues/1128)) ([5b36c61](https://github.com/labring/laf/commit/5b36c6171b414880d2a6974f61913147565151b6))
* **web:** fix /v1/profile api url missing ([#1227](https://github.com/labring/laf/issues/1227)) ([b2ab2f9](https://github.com/labring/laf/commit/b2ab2f9085f4c2d2ae3f1b89a7f9b8bdf08dfbde))
* **web:** fix deploy would clear params ([#1224](https://github.com/labring/laf/issues/1224)) ([95bc353](https://github.com/labring/laf/commit/95bc35370e2ab3634b669cd23c11253e82c3608b))
* **web:** fix fetch button zh name and width ([#1217](https://github.com/labring/laf/issues/1217)) ([e613d6f](https://github.com/labring/laf/commit/e613d6fd8b20311efdd27c82ac4bd8d989da93cb))
* **web:** fix function name regx error ([6a4b210](https://github.com/labring/laf/commit/6a4b210e0d4593b31bde507a689a1f1f06baaa34))
* **web:** fix function template's indentation ([#1182](https://github.com/labring/laf/issues/1182)) ([6e79d26](https://github.com/labring/laf/commit/6e79d26491764affde52b931dd903f2ea0f86c90))
* **web:** PAT copy button missed ([#1194](https://github.com/labring/laf/issues/1194)) ([f6aa6b3](https://github.com/labring/laf/commit/f6aa6b305094113c880c319ef4907f9c889fba71))
* **web:** price free show ([#1214](https://github.com/labring/laf/issues/1214)) ([fe5fdad](https://github.com/labring/laf/commit/fe5fdadda038ed8e5706ff5f7483ef7a3709d2e2))
* **web:** remove billing query debounce ([1e77c01](https://github.com/labring/laf/commit/1e77c0161586e30327c079891762565b814b6549))
* **web:** remove billingQuery from useEffect dependencies ([#1209](https://github.com/labring/laf/issues/1209)) ([708f021](https://github.com/labring/laf/commit/708f021e3d860257bb0b71560e58e0398e8d0711))
* **web:** running wouldn't publish code ([#1158](https://github.com/labring/laf/issues/1158)) ([3935b4f](https://github.com/labring/laf/commit/3935b4f07ca051675b950a0faf579e45a56fe797))
* **web:** update laf ai request url ([#1223](https://github.com/labring/laf/issues/1223)) ([060a393](https://github.com/labring/laf/commit/060a39312d6697db87b328230e121e04d65b59fe))


### Features

* add base deploy ([#1176](https://github.com/labring/laf/issues/1176)) ([12f48c4](https://github.com/labring/laf/commit/12f48c48d8d2c74e3bfc0053bac71be889d053ca))
* **cli:**  compatible with new apis ([#1211](https://github.com/labring/laf/issues/1211)) ([22ad61a](https://github.com/labring/laf/commit/22ad61af3d81f6526def823669b5b5ac363ab340))
* **cli:** add website deploy ([#1190](https://github.com/labring/laf/issues/1190)) ([ca634a6](https://github.com/labring/laf/commit/ca634a6aaf10fa05c96f59ddee0856c8c3e5fd77))
* **cli:** vscode supports automatic introduction of cloud functions. ([#1146](https://github.com/labring/laf/issues/1146)) ([9834906](https://github.com/labring/laf/commit/983490650b618d6bc3cba949eac6a109c4244ba9))
* **runtime:** add chatgpt package builtin runtime ([#1228](https://github.com/labring/laf/issues/1228)) ([6a4892a](https://github.com/labring/laf/commit/6a4892a9061f05734af7484e90eadf43522c38bc))
* **runtime:** support multi-level uri of cloud function ([#1203](https://github.com/labring/laf/issues/1203)) ([df478bf](https://github.com/labring/laf/commit/df478bf53f8a36fb6273b07a29dc583959bfc4d5))
* **server:** add metered billing module, remove subscription module, discard Prisma ([#1187](https://github.com/labring/laf/issues/1187)) ([8a06d44](https://github.com/labring/laf/commit/8a06d44e2a71bd1190a1c13d94fc58b47447ba09))
* **server:** add npm install flags to region; opt instance starting perf ([#1133](https://github.com/labring/laf/issues/1133)) ([1e60429](https://github.com/labring/laf/commit/1e60429654c060f11f27c89b0c1c1530f60756cc))
* **server:** impl i18n module ([#1143](https://github.com/labring/laf/issues/1143)) ([a420354](https://github.com/labring/laf/commit/a420354dbc236dd035f114ece039381f59ebdefc))
* **server:** support website history ([#1210](https://github.com/labring/laf/issues/1210)) ([806fcbd](https://github.com/labring/laf/commit/806fcbd7c281803bc9a0bde065e6f14dd9d6c8f6))
* **web:** add function fetch button ([#1163](https://github.com/labring/laf/issues/1163)) ([77369e4](https://github.com/labring/laf/commit/77369e41b7ebeaa14bcf049ab112a0dd97c19c7f))
* **web:** add invitecode to homepage and login ([#1170](https://github.com/labring/laf/issues/1170)) ([6f604be](https://github.com/labring/laf/commit/6f604bea93597bde653e17c2e7b6767705e2f1b9))
* **web:** add laf ai chat ([#1221](https://github.com/labring/laf/issues/1221)) ([9854b84](https://github.com/labring/laf/commit/9854b84472b687c3fc550248650bb21e03926cec))
* **web:** add laf status link ([#1127](https://github.com/labring/laf/issues/1127)) ([94814c8](https://github.com/labring/laf/commit/94814c865285d7c02b8a89b167f4eb6d284e13ee))
* **web:** add signup with invitecode ([#1144](https://github.com/labring/laf/issues/1144)) ([78a671c](https://github.com/labring/laf/commit/78a671cbbffe2748e05a3d218f20f1f69414c500))
* **web:** add user billing page ([#1195](https://github.com/labring/laf/issues/1195)) ([2fed138](https://github.com/labring/laf/commit/2fed1383c0e7c2d7fcdd6d0cb4419f64900e0f37))
* **web:** cloud functions support multi-level url ([5aec195](https://github.com/labring/laf/commit/5aec1953c4df8272baf261825bee1192024f999e))



# [1.0.0-beta.8](https://github.com/labring/laf/compare/v1.0.0-beta.7...v1.0.0-beta.8) (2023-05-12)


### Bug Fixes

* **client-sdk:** eslint type error ([0b5c9d1](https://github.com/labring/laf/commit/0b5c9d1ba3499c009aec2734618e08894e585296))
* **client-sdk:** fix bugs in compiling uniapp into WeChat mini programs ([#1105](https://github.com/labring/laf/issues/1105)) ([dd86d0b](https://github.com/labring/laf/commit/dd86d0b26394ac61bb9994728e483e92efb917d3))
* **docs:** typo ([3711363](https://github.com/labring/laf/commit/3711363df12937eb5986ae45f765783aa7e9fd8e))
* **server:** add regex validation for function name ([#1091](https://github.com/labring/laf/issues/1091)) ([48dbfb2](https://github.com/labring/laf/commit/48dbfb2a79cbecd04eafff528bf21df7982ada5f))
* **web:** fix bodyparams height ([#1101](https://github.com/labring/laf/issues/1101)) ([933da58](https://github.com/labring/laf/commit/933da58d44827ab0180d618c187e784ee29102e1))
* **web:** function name regex ([#1092](https://github.com/labring/laf/issues/1092)) ([0b933c9](https://github.com/labring/laf/commit/0b933c95b7b84e8b288c5794589025f96b0f74a6))
* **web:** text overflow ellipsis ([#1085](https://github.com/labring/laf/issues/1085)) ([99a01ed](https://github.com/labring/laf/commit/99a01ed750b370430de32ccac331249a539d3674))
* **web:** update error prompt of function name format ([#1094](https://github.com/labring/laf/issues/1094)) ([aeaa54d](https://github.com/labring/laf/commit/aeaa54d8c29b4d00bb6d8bd77dddeed3105cd4bc))


### Features

* **server:** add site setting api ([#1125](https://github.com/labring/laf/issues/1125)) ([9911a5d](https://github.com/labring/laf/commit/9911a5d7111f16ba61e459c72c75d74932ec9b6a))
* **server:** support deployment rolling update ([#1112](https://github.com/labring/laf/issues/1112)) ([633b2f3](https://github.com/labring/laf/commit/633b2f3f5736f16aa1083baf498a2d77fa34e704))
* **web:** add DocsPanel ([#1086](https://github.com/labring/laf/issues/1086)) ([0e72123](https://github.com/labring/laf/commit/0e72123d1db89411d9d6c23b8b08e4306a3f3661))
* **web:** add function params storage ([#1113](https://github.com/labring/laf/issues/1113)) ([1f75387](https://github.com/labring/laf/commit/1f753872fa323737728a37ab58f7da6f3d99b3e5))
* **web:** add laf site setting config ([#1126](https://github.com/labring/laf/issues/1126)) ([f5ec412](https://github.com/labring/laf/commit/f5ec4127a2384da3c425a8c6645217462aa256fe))
* **web:** add link copy in oss page ([#1108](https://github.com/labring/laf/issues/1108)) ([425b782](https://github.com/labring/laf/commit/425b782374f2866d7ad78aa1638431bc5082cd04))
* **web:** hide phone number info ([#1111](https://github.com/labring/laf/issues/1111)) ([e4d8141](https://github.com/labring/laf/commit/e4d8141de2ee00cf4944eba7a4a0816f1fe0b6b1))


### Performance Improvements

* change upload folder to upload fold's files ([#1087](https://github.com/labring/laf/issues/1087)) ([6d20780](https://github.com/labring/laf/commit/6d207803fd05cf68e90121475b2e4bc0030d564a))



# [1.0.0-beta.7](https://github.com/labring/laf/compare/v1.0.0-beta.6...v1.0.0-beta.7) (2023-04-25)


### Bug Fixes

* **client-sdk:** optimize invoke code prompts and documents ([#1038](https://github.com/labring/laf/issues/1038)) ([0e7d812](https://github.com/labring/laf/commit/0e7d8120c9a1225be0559a10c4ae9e6703092aea))
* **cli:** fix function name rule, add laf-cli option to issue tpl ([#1034](https://github.com/labring/laf/issues/1034)) ([#1035](https://github.com/labring/laf/issues/1035)) ([f07fecb](https://github.com/labring/laf/commit/f07fecb7e3dfd6b4ea831617aca1a57e8827489e))
* **runtime:** add build-base libaries in docker image to support canvas library ([c191848](https://github.com/labring/laf/commit/c191848d67eb3a4b42a791d659afd49cb5ee421b))
* **runtime:** fix func logging order ([#1072](https://github.com/labring/laf/issues/1072)) ([dd0c3d7](https://github.com/labring/laf/commit/dd0c3d7c1811897e37bd6a9dc7959f6623fa8f21))
* **server:** avoid acct-trans addition in free order ([#1049](https://github.com/labring/laf/issues/1049)) ([b0f7e81](https://github.com/labring/laf/commit/b0f7e81b3f2d3999a5793c167e9aa1e56328b220))
* **server:** check env name regex for batch update ([#1065](https://github.com/labring/laf/issues/1065)) ([3ddb36f](https://github.com/labring/laf/commit/3ddb36ff8682680226cca3bea5bffc6f4cb06a96))
* **server:** fix waiting time in instance starting task ([#1075](https://github.com/labring/laf/issues/1075)) ([fa72bb9](https://github.com/labring/laf/commit/fa72bb91085209245d412716bda168ed46c707ab))
* **server:** Modify the installation order of APISIX ([#1022](https://github.com/labring/laf/issues/1022)) ([67cc35d](https://github.com/labring/laf/commit/67cc35dfc6e2f148dcd301c7c699879302a1c1fb))
* **server:** remove minio alias init ([#1066](https://github.com/labring/laf/issues/1066)) ([b900f90](https://github.com/labring/laf/commit/b900f906a628633444e10ddd2c3a0972a7b6b3d7))
* **server:** suspend cronjob after instance stopped ([#1045](https://github.com/labring/laf/issues/1045)) ([8d63403](https://github.com/labring/laf/commit/8d634039430f8b0f88c39f31f8162f1130d77edb))
* **server:** use _id to sort logs instead of created_at ([#1073](https://github.com/labring/laf/issues/1073)) ([7a87bea](https://github.com/labring/laf/commit/7a87bea87a8918d2489cf5b2e54b37f636d93d65))
* **web:** add spec width scrollbar ([#1046](https://github.com/labring/laf/issues/1046)) ([4bbcaa0](https://github.com/labring/laf/commit/4bbcaa0212a07bb08bd71acc373a9c787f550c2f))
* **web:** common error handler ([#1071](https://github.com/labring/laf/issues/1071)) ([c93438b](https://github.com/labring/laf/commit/c93438bd59f24701fc5da0224f180300a3b9c01a))
* **web:** compress png images in home site ([#1019](https://github.com/labring/laf/issues/1019)) ([f2e2c4d](https://github.com/labring/laf/commit/f2e2c4dbd9d3dfae9af76129d9f2e3f45fbdf36f))
* **web:** fix route dashboard link ([#1020](https://github.com/labring/laf/issues/1020)) ([7ad26a0](https://github.com/labring/laf/commit/7ad26a00f3a4aeff3bbe7279827ad354c95de496))
* **web:** opt ide typings for response & request, opt function templates ([#1059](https://github.com/labring/laf/issues/1059)) ([7cb8204](https://github.com/labring/laf/commit/7cb8204a1129d738898b43efd508e09d895c8790))
* **web:** Repair document link address ([#1027](https://github.com/labring/laf/issues/1027)) ([f171712](https://github.com/labring/laf/commit/f17171216b11894a3d21e76480c1ba97d0650b9e))


### Features

* **cli:** add ignore file ([#1030](https://github.com/labring/laf/issues/1030)) ([3c32ced](https://github.com/labring/laf/commit/3c32ceddaa7f8d3500b889a1cce17a6cc6f48e67))
* **doc:** improved cloud function related documents ([#1050](https://github.com/labring/laf/issues/1050)) ([9ada3d2](https://github.com/labring/laf/commit/9ada3d2bb26c18ec37a618b78df44053d7f4ae7a))
* **runtime:** add __init__ hook in runtime ([#1081](https://github.com/labring/laf/issues/1081)) ([db62f1a](https://github.com/labring/laf/commit/db62f1af6269d4975a6c17fe102891b7c842ee31))
* **runtime:** support process.env in runtime ([#1074](https://github.com/labring/laf/issues/1074)) ([f0f1582](https://github.com/labring/laf/commit/f0f15821b27d1a0e9680cdd69b98c3fb04b21fcc))
* **server:** add func debug params, add envs update api ([#1055](https://github.com/labring/laf/issues/1055)) ([5f88a12](https://github.com/labring/laf/commit/5f88a1220485d88649f344dc89524cdf1659285e))
* **server:** hot load environments for runtime instead of restarting runtime ([#1077](https://github.com/labring/laf/issues/1077)) ([feb70ae](https://github.com/labring/laf/commit/feb70aee67fd717db9a2f972023165b59da78b42))
* **web:** add ChatGPT example ([#1052](https://github.com/labring/laf/issues/1052)) ([a46ce42](https://github.com/labring/laf/commit/a46ce42a3078f65a21639e5b897cd79e8c4b50ea))
* **web:** add homepage darkmode ([#1043](https://github.com/labring/laf/issues/1043)) ([ade2a05](https://github.com/labring/laf/commit/ade2a05bd9e36581203798047374b4e7eb91386b))
* **web:** add laf new homepage ([#1018](https://github.com/labring/laf/issues/1018)) ([f66e2f3](https://github.com/labring/laf/commit/f66e2f3576a8bab799b046f65753980a6879b7a0))
* **web:** add loginpage darkmode ([#1070](https://github.com/labring/laf/issues/1070)) ([9a27bcf](https://github.com/labring/laf/commit/9a27bcfca688f8a64f009b81bb4259db330b0943))
* **web:** add status bar ([#1054](https://github.com/labring/laf/issues/1054)) ([cd31eb8](https://github.com/labring/laf/commit/cd31eb80343f4d4a6d060f34c252b8a66ac5a4ed))
* **web:** common error handler ([#1040](https://github.com/labring/laf/issues/1040)) ([a099568](https://github.com/labring/laf/commit/a09956825b8be3e373dbf1b52d46ef46eb349a6d))
* **web:** support folder delete in storage ([#1047](https://github.com/labring/laf/issues/1047)) ([#1048](https://github.com/labring/laf/issues/1048)) ([367dcf0](https://github.com/labring/laf/commit/367dcf0fc8120e74e9a67f9dc2e6ee5ccdad6b5c))
* **web:** update environment variables without app restart ([#1079](https://github.com/labring/laf/issues/1079)) ([dc25ae3](https://github.com/labring/laf/commit/dc25ae3eda45543348cb4fed32d5f48cb602f24a))
* **web:** use laf ai to generate code ([#1029](https://github.com/labring/laf/issues/1029)) ([f1eac71](https://github.com/labring/laf/commit/f1eac71d978c6a91d7fab12401d60732f79e8d9b))



# [1.0.0-beta.6](https://github.com/labring/laf/compare/v1.0.0-beta.5...v1.0.0-beta.6) (2023-04-11)


### Bug Fixes

* **deploy:** upgrade minio version to fix CVE-2023-28432 ([#960](https://github.com/labring/laf/issues/960)) ([b38c288](https://github.com/labring/laf/commit/b38c288da58b0ea6dbbb834bc8b7c69f3cc21e37))
* fix app url protocol error & update default url ([#1006](https://github.com/labring/laf/issues/1006)) ([b79f71e](https://github.com/labring/laf/commit/b79f71edac1f84d6fb524281bbe2da59bc052a27))
* **server:** add existing check in creating phase of tasks ([#990](https://github.com/labring/laf/issues/990)) ([8444d80](https://github.com/labring/laf/commit/8444d804edd39bd0ac7fb09133f691f7e914f419))
* **server:** add website count limit, opt website task ([#959](https://github.com/labring/laf/issues/959)) ([7ca3364](https://github.com/labring/laf/commit/7ca33643b0d1626160f62fbb23e24d36e992a0c2))
* **server:** bucket deletion didn't remove related website ([#983](https://github.com/labring/laf/issues/983)) ([f559764](https://github.com/labring/laf/commit/f5597649ddc7ecd14e701611666823cda4fda36b))
* **server:** cancel namespace removal while stopping app ([#980](https://github.com/labring/laf/issues/980)) ([8213bea](https://github.com/labring/laf/commit/8213beae6e3a13c8b1c42a1f980efa4509adf0c8))
* **server:** check site deleting state in site creation ([#997](https://github.com/labring/laf/issues/997)) ([5f4d026](https://github.com/labring/laf/commit/5f4d026fa07017697a7432fabcfffac4daa48d5a))
* **server:** check website hosting in bucket deletion, add error handle to tasks; ([#1017](https://github.com/labring/laf/issues/1017)) ([48cad2d](https://github.com/labring/laf/commit/48cad2de3c8f8e9e0fb9af4e084e7187bcdf848e))
* **server:** error on deleting cronjob; app stucked in starting ([#964](https://github.com/labring/laf/issues/964)) ([a1e42b1](https://github.com/labring/laf/commit/a1e42b164092718b50569ca1102815a3296ac6f1))
* **server:** fix instance task error ([#988](https://github.com/labring/laf/issues/988)) ([63cc523](https://github.com/labring/laf/commit/63cc52308fe44ab2abe276bb4e584ad3da870d35))
* **server:** fix tasks state handler logic ([#987](https://github.com/labring/laf/issues/987)) ([d36eab9](https://github.com/labring/laf/commit/d36eab9bcc54c829ccdbf0b261538e4318e15683))
* **server:** fixed illegal removal of unowned trigger ([#965](https://github.com/labring/laf/issues/965)) ([260b335](https://github.com/labring/laf/commit/260b335de72c32c28a3c8f7cb4b1c7b13855443d))
* **server:** fixed the error of repeatedly deleting website routes ([#957](https://github.com/labring/laf/issues/957)) ([46d0cce](https://github.com/labring/laf/commit/46d0ccea60e1b57317d712064b1eaab4b53c5598))
* **server:** return notes fields in region & bundles ([#993](https://github.com/labring/laf/issues/993)) ([82b8121](https://github.com/labring/laf/commit/82b8121dfd39124437f7df4ceecf4b987f9d76e6))
* **server:** rm minio alias init in boot, fix multi region limit; ([#976](https://github.com/labring/laf/issues/976)) ([251a3c4](https://github.com/labring/laf/commit/251a3c46ff4948759b94f54a06bb02f6562fad9c))
* **web:** add types for ctx.request ([#963](https://github.com/labring/laf/issues/963)) ([a18c27f](https://github.com/labring/laf/commit/a18c27fb47ccbdeb14b5a5141a7e0d395b534477))
* **web:** appid confict if open 2 tabs ([#1011](https://github.com/labring/laf/issues/1011)) ([f6c39ee](https://github.com/labring/laf/commit/f6c39ee163cd115d975a6edee27ca989192dde70))
* **web:** fixed the path issue when clicking pathlink ([3408aca](https://github.com/labring/laf/commit/3408acac82cdef9a9e6add370c3f2eeaee1f27ac))
* **web:** hide register button while register disabled ([#994](https://github.com/labring/laf/issues/994)) ([a12f1f5](https://github.com/labring/laf/commit/a12f1f5535e43c727077aa0885724767283177ee))
* **web:** remove withCredentials ([#979](https://github.com/labring/laf/issues/979)) ([3300953](https://github.com/labring/laf/commit/330095346954c662f85562906c7905858898ebe5))


### Features

* **cli:** opt app list display ([#1007](https://github.com/labring/laf/issues/1007)) ([13a06df](https://github.com/labring/laf/commit/13a06df5830631d726ef20f37dd79e1bca860cd0))
* **runtime:** impl  cloud function import and cache function ([#1005](https://github.com/labring/laf/issues/1005)) ([6a96add](https://github.com/labring/laf/commit/6a96add95c83cb292f82c3fbe9339713e0ba3ecd))
* **server:** add account transaction ([#1014](https://github.com/labring/laf/issues/1014)) ([c7e6d15](https://github.com/labring/laf/commit/c7e6d154562ac3e48e6c8c0ed5d02a6164568f3e))
* **server:** add check if password had binded ([#951](https://github.com/labring/laf/issues/951)) ([c6b7ebc](https://github.com/labring/laf/commit/c6b7ebc57ee374bb40fc183aba448dfefb4504b9))
* **server:** add notes field to region,bundle,pay,auth ([#986](https://github.com/labring/laf/issues/986)) ([206070a](https://github.com/labring/laf/commit/206070aed69aefe7b01c39e1b4e2894e7bd54f61))
* **server:** support website custom domain ssl cert auto-gen ([#956](https://github.com/labring/laf/issues/956)) ([9141651](https://github.com/labring/laf/commit/914165185ebbc36eb33f0989c4aa3c635881f6f9))
* **web:** add bundle note messages ([#992](https://github.com/labring/laf/issues/992)) ([f8adbe7](https://github.com/labring/laf/commit/f8adbe7af9e43fc4acf47f4ae57f1cf7d91f8ec8))
* **web:** add region info on logo ([#1001](https://github.com/labring/laf/issues/1001)) ([378b0e6](https://github.com/labring/laf/commit/378b0e6c3fc7995cbd56d5a9a78f789688bf6f61))
* **web:** fix login bg && add welcome text ([#941](https://github.com/labring/laf/issues/941)) ([6baf800](https://github.com/labring/laf/commit/6baf80037d4ccee29e9b4c7f546c5a5948f3dded))
* **web:** format code on save ([#1002](https://github.com/labring/laf/issues/1002)) ([e970a66](https://github.com/labring/laf/commit/e970a66cdb0be1d6521a3df757f18eb62644b137))
* **web:** generate function code with AI prompt  ([#978](https://github.com/labring/laf/issues/978)) ([c68b03b](https://github.com/labring/laf/commit/c68b03b278423202798e416cbe613a6e3dfaa211))
* **web:** reset password ([#974](https://github.com/labring/laf/issues/974)) ([13a2a9f](https://github.com/labring/laf/commit/13a2a9f2010ac872f28160ee3b33638146c16566))



# [1.0.0-beta.5](https://github.com/labring/laf/compare/v1.0.0-beta.4...v1.0.0-beta.5) (2023-03-22)


### Bug Fixes

* **cli:** fix axios type error ([#881](https://github.com/labring/laf/issues/881)) ([5f8b487](https://github.com/labring/laf/commit/5f8b487590c5e12a0dbd7c756c2c8431529394c9))
* **cli:** fix publish package ignore file ([#899](https://github.com/labring/laf/issues/899)) ([bf9c907](https://github.com/labring/laf/commit/bf9c907ff4d083c9796f5a32533609b2da9cb0f5))
* **cli:** remove private npm mirror and replace AxiosRequestConfig to any ([#886](https://github.com/labring/laf/issues/886)) ([561fe7f](https://github.com/labring/laf/commit/561fe7fa0dbf9b9fd1126f906791c1844e367993))
* **server:** add max renewal time in bundle; fix subscription price ([#908](https://github.com/labring/laf/issues/908)) ([6139f74](https://github.com/labring/laf/commit/6139f743f79e23dadfa56e4b9c85429745d16483))
* **server:** add regex for environment name ([#944](https://github.com/labring/laf/issues/944)) ([1f5c300](https://github.com/labring/laf/commit/1f5c300d5f4f7de04544afe17f303614cc9379fc))
* **server:** change password signup phone filed to optional ([#934](https://github.com/labring/laf/issues/934)) ([c35d339](https://github.com/labring/laf/commit/c35d339906d672dba821c67add714f5615363c9b))
* **server:** deal with existed app without namespace ([#943](https://github.com/labring/laf/issues/943)) ([5ed3be5](https://github.com/labring/laf/commit/5ed3be5cec0d7dd987a9a9043bd0440e9126f701))
* **server:** fix bucket name regex ([#924](https://github.com/labring/laf/issues/924)) ([2c84173](https://github.com/labring/laf/commit/2c84173322e414c48cb0d17795437d5fdeb913a3))
* **server:** fix init auth provider  params ([#937](https://github.com/labring/laf/issues/937)) ([796774f](https://github.com/labring/laf/commit/796774fc64515626461a79312d4388eaccf13e56))
* **server:** stuck-starting instance blocked the task handler ([#945](https://github.com/labring/laf/issues/945)) ([f9a0f20](https://github.com/labring/laf/commit/f9a0f20d1154d0a88d6087ea9cf290e3da02dc5f))
* **web:** fix MoreButton tooltip and npm package deletion confirm tip ([#879](https://github.com/labring/laf/issues/879)) ([3b30aec](https://github.com/labring/laf/commit/3b30aece63a5d52350ad085b4e974d9d73157712))
* **web:** fix some dark mode ui bugs ([#919](https://github.com/labring/laf/issues/919)) ([f9e1781](https://github.com/labring/laf/commit/f9e17813677e64c1a578a041dcd90c52e1860247))
* **web:** login page i18n word too long ([#936](https://github.com/labring/laf/issues/936)) ([0836e11](https://github.com/labring/laf/commit/0836e11751c2c16ba2ea4a57cd07f7a23cb93caa))
* **web:** sign up provider err while refreshing page ([#938](https://github.com/labring/laf/issues/938)) ([4ad79c9](https://github.com/labring/laf/commit/4ad79c9a6a388d421c693b2a8b8729b02f9a7cf4))
* **web:** update data use merge mode ([#940](https://github.com/labring/laf/issues/940)) ([d62fe96](https://github.com/labring/laf/commit/d62fe96346515a9083c7e828332098ae2b3b75f7))
* **web:** web signup phone err ([#935](https://github.com/labring/laf/issues/935)) ([44b0699](https://github.com/labring/laf/commit/44b0699409f8085ba739aeceaf891732bda7b441))


### Features

* **cli:** cli invoke function support parameters ([#884](https://github.com/labring/laf/issues/884)) ([f0a6383](https://github.com/labring/laf/commit/f0a638367e04971faddff8303959949d5d8867fd))
* **cli:** init app support sync data ([#895](https://github.com/labring/laf/issues/895)) ([449abde](https://github.com/labring/laf/commit/449abde959a3243ee29103d14f431a61a46698f9))
* **cli:** rename name.meta.yaml to name.yaml ([#893](https://github.com/labring/laf/issues/893)) ([1dd12b2](https://github.com/labring/laf/commit/1dd12b2c16c37ae2f7724954d73a98909f3faa5f))
* **cli:** upgrade s3 sdk version ([#922](https://github.com/labring/laf/issues/922)) ([8589126](https://github.com/labring/laf/commit/858912689388caaef672faa1021851d485fc4762))
* **server:** add limit to update app state depends on subscription state ([39447d8](https://github.com/labring/laf/commit/39447d88752fe91b08ac99bb1db30bc201c1eb36))
* **server:** new authentication implements ([#897](https://github.com/labring/laf/issues/897)) ([c4e3cf8](https://github.com/labring/laf/commit/c4e3cf81655ae7f2b2fcb029263dd5f4e4b9d0e8))
* **subscription:** impl subscription and account ([#894](https://github.com/labring/laf/issues/894)) ([b8f2d47](https://github.com/labring/laf/commit/b8f2d4761140f2fecb0d7543d5faf48f2c9621e7))
* **web:** add dark mode support ([#891](https://github.com/labring/laf/issues/891)) ([#900](https://github.com/labring/laf/issues/900)) ([99e1568](https://github.com/labring/laf/commit/99e156832a3c257af24aa04ca86c9518ff4d38f8))
* **web:** add subscription and wechat pay ([#904](https://github.com/labring/laf/issues/904)) ([31c3a32](https://github.com/labring/laf/commit/31c3a324e66021c5ac83b2f60cd9819954a68744))
* **web:** impl new signup & signin method ([#910](https://github.com/labring/laf/issues/910)) ([0832b1e](https://github.com/labring/laf/commit/0832b1e609e94d321028ea1d15a4cc7df0f893ef))



# [1.0.0-beta.4](https://github.com/labring/laf/compare/v1.0.0-beta.3...v1.0.0-beta.4) (2023-03-09)


### Bug Fixes

* **build:** update minio latest version to fix [#800](https://github.com/labring/laf/issues/800) ([#850](https://github.com/labring/laf/issues/850)) ([53445f4](https://github.com/labring/laf/commit/53445f456461713c257dad63c805c31bbdb51b24))
* **cli:** remove app list empty field display ([#855](https://github.com/labring/laf/issues/855)) ([916ca0d](https://github.com/labring/laf/commit/916ca0d26ba1b361eca8e9a4e1995c5767f88f20))
* **deploy:** wrong node type in install scripts ([#847](https://github.com/labring/laf/issues/847)) ([093ebac](https://github.com/labring/laf/commit/093ebacbf6e62cc142f687804f6ed9124ed8ae98))
* **server:** bundle limit is invalid, bundleId missing ([#870](https://github.com/labring/laf/issues/870)) ([b12b3b9](https://github.com/labring/laf/commit/b12b3b9d0f9f2b65a7e367d05986dec411165c4a))
* **server:** fix region tls conf in initialization ([#863](https://github.com/labring/laf/issues/863)) ([00d0a6e](https://github.com/labring/laf/commit/00d0a6e9b977072a6829326634c1f208d11e07f4))
* **server:** some resources missing when deleting app ([#875](https://github.com/labring/laf/issues/875)) ([2b792b0](https://github.com/labring/laf/commit/2b792b0985d4836741d04e95228c35232a189f30))
* **server:** unable delete cronjob in k8s ([#873](https://github.com/labring/laf/issues/873)) ([3b015d3](https://github.com/labring/laf/commit/3b015d304357d7fac487569d2e2dcdd4d2a6e412))
* **web:** cloud function ctx types error ([#869](https://github.com/labring/laf/issues/869)) ([757c38e](https://github.com/labring/laf/commit/757c38e878f65e427716fe49821ee86a18d5fbfc))
* **web:** port info ([#871](https://github.com/labring/laf/issues/871)) ([b096734](https://github.com/labring/laf/commit/b096734e782bca5d68f52f36c33dc4c66235d135))
* **web:** remove bottom panel ([#862](https://github.com/labring/laf/issues/862)) ([3a6786c](https://github.com/labring/laf/commit/3a6786ce105bd7af69dade6821e45106af542351))
* **web:** typo & i18n fixes in domain binding ([#877](https://github.com/labring/laf/issues/877)) ([45323de](https://github.com/labring/laf/commit/45323decacabba30f65a1b4d0fc9d82082a9c7ce))


### Features

* **cli:** impl website command ([#854](https://github.com/labring/laf/issues/854)) ([409312a](https://github.com/labring/laf/commit/409312a8140f3721b5bf433de8edd1e529d26e20))
* **cli:** rebuild backend api ([#852](https://github.com/labring/laf/issues/852)) ([75370cd](https://github.com/labring/laf/commit/75370cdfde67944676b78ac6554fb79c14f564e6))
* **server:** add bundle limits for application ([#858](https://github.com/labring/laf/issues/858)) ([cb5d98c](https://github.com/labring/laf/commit/cb5d98c0ca28fd1b532a9f919f9b895a3251f20f))
* **server:** add bundle limits of website count, update readme ([#876](https://github.com/labring/laf/issues/876)) ([cee1282](https://github.com/labring/laf/commit/cee1282b59a06f10596c2871cd053d509500ac99))
* **server:** add special price in bundle, use id instead of name ([#865](https://github.com/labring/laf/issues/865)) ([7e81c0b](https://github.com/labring/laf/commit/7e81c0b5594cf8bef94006edd35a8f5fd88ba101))
* **server:** support runtime pod affinity, add task switcher env ([#846](https://github.com/labring/laf/issues/846)) ([f0c5d18](https://github.com/labring/laf/commit/f0c5d18c3f36c059c234e27f5d2de80beb4f3073))
* **web:** add app detail info dialog ([#843](https://github.com/labring/laf/issues/843)) ([378936b](https://github.com/labring/laf/commit/378936b7f4306f2047f0bb66f4937ebb017769c3))
* **web:** add file upload code template ([#844](https://github.com/labring/laf/issues/844)) ([7d5eebf](https://github.com/labring/laf/commit/7d5eebf228152b91d4f1d3e35610fc5e207c54db))
* **web:** add github link ([#872](https://github.com/labring/laf/issues/872)) ([82b963d](https://github.com/labring/laf/commit/82b963d0d3b4dd367737f45c94dbde29340e9cdc))
* **web:** add resize layout & function page prompt ([#856](https://github.com/labring/laf/issues/856)) ([d1fb07c](https://github.com/labring/laf/commit/d1fb07cea5918d36fffc240e57395008a9777708))
* **web:** upgrade application dialog ([#849](https://github.com/labring/laf/issues/849)) ([706cbdb](https://github.com/labring/laf/commit/706cbdb6a887cc4f4ebd57f548c3151228fc0788))


### Reverts

* Revert "chore: update lerna config, enabled npm workspace (#861)" (#864) ([72ba470](https://github.com/labring/laf/commit/72ba4705bbd7728a1d7e81802ed5127d2c3d09e0)), closes [#861](https://github.com/labring/laf/issues/861) [#864](https://github.com/labring/laf/issues/864)



# [1.0.0-beta.3](https://github.com/labring/laf/compare/v1.0.0-beta.2...v1.0.0-beta.3) (2023-03-01)


### Bug Fixes

* fix [#824](https://github.com/labring/laf/issues/824) win not cannot upload files normally ([#831](https://github.com/labring/laf/issues/831)) ([bb90765](https://github.com/labring/laf/commit/bb9076538743537ac3793e56639934c84a8925b3))
* multi-level path and s3 upgrade warn ([#834](https://github.com/labring/laf/issues/834)) ([dd0b4e4](https://github.com/labring/laf/commit/dd0b4e48d39c9cfd8b14d6d710e27ac2d6ab9c12))
* **server:** make prisma as global module ([#825](https://github.com/labring/laf/issues/825)) ([06adbd0](https://github.com/labring/laf/commit/06adbd0b01816cc51bcd128010e8dbf8212900c2))
* **server:** too many connections on mongo connection pool ([#827](https://github.com/labring/laf/issues/827)) ([07486b3](https://github.com/labring/laf/commit/07486b3c2401807b2e6dc098329dbefeabaa2494))
* **web:** enable allowSyntheticDefaultImports for web ide ([#826](https://github.com/labring/laf/issues/826)) ([c13ee1b](https://github.com/labring/laf/commit/c13ee1b0422150285c084cf50ea6bedf165c13d1))
* **web:** opt web contrib doc, opt local dev flow ([#837](https://github.com/labring/laf/issues/837)) ([65d0615](https://github.com/labring/laf/commit/65d0615f971b58e1aa6752514d4c1baec55aaeb9))
* **web:** unable to redirect to login page ([#821](https://github.com/labring/laf/issues/821)) ([33f7cb1](https://github.com/labring/laf/commit/33f7cb1f47fd4851283960e833aa747b9d94a5db))


### Features

* **runtime:** support __websocket__ builtin function ([#832](https://github.com/labring/laf/issues/832)) ([24d8731](https://github.com/labring/laf/commit/24d8731b223d78eeea7c4f0f7515f3613f053c96))



# [1.0.0-beta.2](https://github.com/labring/laf/compare/v1.0.0-beta.1...v1.0.0-beta.2) (2023-02-24)


### Bug Fixes

* **cli:** fix cli command error & release cli ([#734](https://github.com/labring/laf/issues/734)) ([cd5336d](https://github.com/labring/laf/commit/cd5336dd26e98d725e43edfa5c1cb0e4902bb485))
* **cli:** fix invoke url error ([#743](https://github.com/labring/laf/issues/743)) ([31ce3f1](https://github.com/labring/laf/commit/31ce3f18ac4959055305727cad29dfebce688d29))
* **cli:** fix login error ([#741](https://github.com/labring/laf/issues/741)) ([c02c42c](https://github.com/labring/laf/commit/c02c42cf9ba95c75b807852864dba23ac1325711))
* **cli:** fix some word case ([#742](https://github.com/labring/laf/issues/742)) ([27290d4](https://github.com/labring/laf/commit/27290d40e7462c1bfe652830d3107c7bfddd496e))
* fix init error in runtime, add set -e for shell scripts ([893ddcf](https://github.com/labring/laf/commit/893ddcf4b7ccbde894d36d3aeec33b00d9a6e5b7))
* **runtime:** cors package missing ([#795](https://github.com/labring/laf/issues/795)) ([18375b5](https://github.com/labring/laf/commit/18375b54a009d9bd266af8d64f24d2e366190c17))
* **runtime:** express cannot send number directly [#816](https://github.com/labring/laf/issues/816) ([#817](https://github.com/labring/laf/issues/817)) ([c856fd8](https://github.com/labring/laf/commit/c856fd8e39c9d1aa24f91e0cc67c9e21691feb1a))
* **runtime:** fix debug token error ([#793](https://github.com/labring/laf/issues/793)) ([f24db6f](https://github.com/labring/laf/commit/f24db6fa682c170fed0c53810e44e1ff4b539c48))
* **runtime:** fix proxy policy loading problem ([8127519](https://github.com/labring/laf/commit/81275190454aab72da42df45a5341e269e39b86f))
* **runtime:** rename debug token to develop token ([746f08d](https://github.com/labring/laf/commit/746f08dc1b9f9d4c95ae6dd4a3478f0c1a33d38b))
* **server:** add validation for cron expression ([#815](https://github.com/labring/laf/issues/815)) ([5245473](https://github.com/labring/laf/commit/5245473824f953408e157c9519fcb228c6852e5d))
* **server:** add website info in bucket-get api ([#775](https://github.com/labring/laf/issues/775)) ([60c55ed](https://github.com/labring/laf/commit/60c55ed370e0f7f9449e55b22051a04a0e4f1190))
* **server:** bind custom domain not working ([7a27533](https://github.com/labring/laf/commit/7a2753322c808ea90a12600b7a34f852c7d3955f))
* **server:** fix instance state error in task ([#762](https://github.com/labring/laf/issues/762)) ([e11b7ae](https://github.com/labring/laf/commit/e11b7ae028e5104232dc79a2ae0157fd5c278ffb))
* **server:** fix trigger job of agenda implement ([69aecf1](https://github.com/labring/laf/commit/69aecf1356a122d5f2835677ac2709dec5a694b4))
* **server:** fix unable to delete dependency name with splash [#786](https://github.com/labring/laf/issues/786) ([#805](https://github.com/labring/laf/issues/805)) ([0472a65](https://github.com/labring/laf/commit/0472a656e529f8b3befc9a646e2bc27d0e82d14b))
* **web:** database example internationalization ([#782](https://github.com/labring/laf/issues/782)) ([80a03be](https://github.com/labring/laf/commit/80a03becf3c6117800efe57f243ddf5ecc2712c3))
* **web:** fix [#718](https://github.com/labring/laf/issues/718) app info edit bug ([#738](https://github.com/labring/laf/issues/738)) ([3381884](https://github.com/labring/laf/commit/3381884df2f0b7f6cb9f0d0b3b3be2e38e015303))
* **web:** fix database page bugs & add storage refresh ([#761](https://github.com/labring/laf/issues/761)) ([857805a](https://github.com/labring/laf/commit/857805aa54a5be0c483fd45318778cb7e7aef4d8))
* **web:** fix missing comma in the translation file ([#784](https://github.com/labring/laf/issues/784)) ([c81d9e5](https://github.com/labring/laf/commit/c81d9e5bde69c5d18131f0f9d4bfadbae6b8f5f9))
* **web:** function data cannot be stored in local storage ([#769](https://github.com/labring/laf/issues/769)) ([bd983a0](https://github.com/labring/laf/commit/bd983a0d49c9abd9a689c2b24becf3cd36bfe618))
* **web:** get domain from bucket info ([#803](https://github.com/labring/laf/issues/803)) ([7ed542c](https://github.com/labring/laf/commit/7ed542c3fc4b4fc78f11125fffbc05167da82a4a))
* **web:** reverse array bug ([#776](https://github.com/labring/laf/issues/776)) ([dc34c2a](https://github.com/labring/laf/commit/dc34c2a89d88e7d3b16ccdb89550967a8929bf5a))
* **web:** support tls conf in [#767](https://github.com/labring/laf/issues/767) ([#790](https://github.com/labring/laf/issues/790)) ([efdf4ea](https://github.com/labring/laf/commit/efdf4ea9215fcc2af29aa2e1ce79ec032ea3106d))


### Features

* **cli:** auto create and delete fn ([#757](https://github.com/labring/laf/issues/757)) ([e7866fc](https://github.com/labring/laf/commit/e7866fc8c7dcca8c727026040f6fa283bf60a7c6))
* **cli:** generate .gitignore file ([#758](https://github.com/labring/laf/issues/758)) ([be1d88e](https://github.com/labring/laf/commit/be1d88e2e50edf14e14ced997fd1dc5c1c9655b6))
* **cli:** impl policy cmd ([#756](https://github.com/labring/laf/issues/756)) ([b85f8e0](https://github.com/labring/laf/commit/b85f8e02b4f5c5095a4ab04a905b072c11ef8334))
* **cli:** opt dependency cmd ([#759](https://github.com/labring/laf/issues/759)) ([df9692b](https://github.com/labring/laf/commit/df9692b8666abedb092d755c19e8b8bc81c3ceae))
* **runtime:** support dynamic import() in runtime ([#819](https://github.com/labring/laf/issues/819)) ([eabd39f](https://github.com/labring/laf/commit/eabd39fa49d6110ac9bf00a0b63d1cf2e399f736))
* **server:** implement website hosting module ([#763](https://github.com/labring/laf/issues/763)) ([41da999](https://github.com/labring/laf/commit/41da999318184a21f127230271b45f96a51f15a2))
* **server:** implement website hosting task ([#774](https://github.com/labring/laf/issues/774)) ([e1e597d](https://github.com/labring/laf/commit/e1e597dc20de6b13fdbbbca7162d8b813a294cec))
* **server:** refactor bundle and other data schemas ([#811](https://github.com/labring/laf/issues/811)) ([809d1de](https://github.com/labring/laf/commit/809d1def836f2a12ce8d853f4c81badf578baf39))
* **web:** add 403 page ([#781](https://github.com/labring/laf/issues/781)) ([50a7b79](https://github.com/labring/laf/commit/50a7b7945f262867842d5aad19487d605ebf80eb))
* **web:** add confirm update env modal ([#806](https://github.com/labring/laf/issues/806)) ([bf81496](https://github.com/labring/laf/commit/bf81496f301be7086751fe32bf5936049c06ce0e))
* **web:** add empty status & fix UI [#745](https://github.com/labring/laf/issues/745) ([#748](https://github.com/labring/laf/issues/748)) ([d88dd7e](https://github.com/labring/laf/commit/d88dd7ea7917362921321d2760ba3bfc6d01f435))
* **web:** add form-data option for debug panel ([#789](https://github.com/labring/laf/issues/789)) ([b59053b](https://github.com/labring/laf/commit/b59053b68c8523ab3c9ab42fe22591ab181e75db))
* **web:** add function name copy([#783](https://github.com/labring/laf/issues/783)) ([c808c1e](https://github.com/labring/laf/commit/c808c1e4e0715185fb3739018fc3b7ba6564d6b8))
* **web:** add i18n language switch, refact loading state ([#777](https://github.com/labring/laf/issues/777)) ([2de068b](https://github.com/labring/laf/commit/2de068b745251e3c6bf53f6b9504bf0658b78a87))
* **web:** add website hosting ([#780](https://github.com/labring/laf/issues/780)) ([7dadeba](https://github.com/labring/laf/commit/7dadeba0a1c1b0ba7f05e6818c50450665c4239c))
* **web:** add website hosting custom domain ([#796](https://github.com/labring/laf/issues/796)) ([a2ea24c](https://github.com/labring/laf/commit/a2ea24c0fb42e7045e98cb83dc3f49f692929e34))
* **web:** fix home page & function page bugs ([#735](https://github.com/labring/laf/issues/735)) ([f468748](https://github.com/labring/laf/commit/f468748c33aa049c1bd78f21829d9757b3ca6268))



# [1.0.0-beta.1](https://github.com/labring/laf/compare/v1.0.0-beta.0...v1.0.0-beta.1) (2023-02-05)


### Bug Fixes

* **cli:** fix invalid debug header ([#684](https://github.com/labring/laf/issues/684)) ([93fc18b](https://github.com/labring/laf/commit/93fc18b9ef96c3f47ecd15f048ef0a5a0bbe3234))
* fix max header size bug in gw & server ([#708](https://github.com/labring/laf/issues/708)) ([888ee82](https://github.com/labring/laf/commit/888ee82687545823108b1248651dc42354afa06e))
* **runtime-node:** fix custom env unable to read ([#728](https://github.com/labring/laf/issues/728)) ([60c0ccc](https://github.com/labring/laf/commit/60c0cccdbd230d723d653e4b1aee2e5036137869))
* **runtime:** fix build error of runtime-node ([#670](https://github.com/labring/laf/issues/670)) ([49fbc81](https://github.com/labring/laf/commit/49fbc819cfd06e1397d998c1b31b2e8d1c6ca8ec))
* **server:** fix logic error in get-app api ([#720](https://github.com/labring/laf/issues/720)) ([1c4e85b](https://github.com/labring/laf/commit/1c4e85b9bd18124c89703f34caa159ff3e88cd7f))
* **web:** fix func name regx for creating func ([#707](https://github.com/labring/laf/issues/707)) ([3de3d1a](https://github.com/labring/laf/commit/3de3d1a5e4303f188a879d60f0903a18cf61ca18))
* **web:** ui refactor, fix styles & tips ([#713](https://github.com/labring/laf/issues/713)) ([eadb9a6](https://github.com/labring/laf/commit/eadb9a6a1c2f899fc2e8cbb677937dba4521ef79))


### Features

* **cli:** add storage pull and push ([#716](https://github.com/labring/laf/issues/716)) ([4d6d882](https://github.com/labring/laf/commit/4d6d8829390c956cc45a387fc86ed73ce741d0d8))
* **cli:** impl bucket curd cmd ([#683](https://github.com/labring/laf/issues/683)) ([fd5ca45](https://github.com/labring/laf/commit/fd5ca45f18a9325f8c2d36863551fe4dccc4cd82))
* **web:**  fix create & delete  collection bug ([#659](https://github.com/labring/laf/issues/659)) ([9e95bcb](https://github.com/labring/laf/commit/9e95bcb401ff6cc3abf8c77f1f516f4a3dc75706))
* **web:**  fix UI bugs ([#717](https://github.com/labring/laf/issues/717)) ([eccd912](https://github.com/labring/laf/commit/eccd9121c055ac3900545985edbd56de44274c00))



# [1.0.0-beta.0](https://github.com/labring/laf/compare/v1.0.0-alpha.5...v1.0.0-beta.0) (2023-01-20)


### Bug Fixes

* **deploy:** fix minio ingress in build charts ([#658](https://github.com/labring/laf/issues/658)) ([de0a86b](https://github.com/labring/laf/commit/de0a86ba84be39a911f647fa1117aa15c24413db))
* **server:** fix bucket-udpate bug & server deploy issue ([#641](https://github.com/labring/laf/issues/641)) ([f6e2c35](https://github.com/labring/laf/commit/f6e2c3572d9fd22cc00a18b4302a4b361788a8ee))
* **server:** fix response check error in bucket-updating ([#642](https://github.com/labring/laf/issues/642)) ([c4d994e](https://github.com/labring/laf/commit/c4d994e89fbf74483aae3f78750d2c5d0b82abea))
* **server:** fix storage endpoint & ingress error ([#638](https://github.com/labring/laf/issues/638)) ([5506965](https://github.com/labring/laf/commit/5506965d942fb91358f6aa698ec85a2d906eee58))
* **web:** encode function debug header & button theme ([#646](https://github.com/labring/laf/issues/646)) ([a0a2497](https://github.com/labring/laf/commit/a0a2497dc5e28d45411772de0f74ff49b159742d))
* **web:** fix bucket name pattern ([#662](https://github.com/labring/laf/issues/662)) ([1f58446](https://github.com/labring/laf/commit/1f5844637fe3f88a375a900fe706bfcdeca624bb))
* **web:** fix function page ui, update triger modal ([#652](https://github.com/labring/laf/issues/652)) ([a7fcfa5](https://github.com/labring/laf/commit/a7fcfa5f11d1dfb615e409b945eb220b42afa688))
* **web:** fix pagination & favcon, optimize the ui styles ([#656](https://github.com/labring/laf/issues/656)) ([56cd541](https://github.com/labring/laf/commit/56cd541d8cd04448fc03e1040629bb0032cb5055))
* **web:** replace gateway crd data with app domain object ([#660](https://github.com/labring/laf/issues/660)) ([5d411bb](https://github.com/labring/laf/commit/5d411bb315b3695cbe7c1d5306583bf94d2330e7))


### Features

* **cli:** add function delete ([#664](https://github.com/labring/laf/issues/664)) ([b4002ba](https://github.com/labring/laf/commit/b4002ba1c703bcbccc9d6cc2ad026ac44e6f7b31))
* **cli:** refactor and impl function actions([#647](https://github.com/labring/laf/issues/647)) ([d49b15e](https://github.com/labring/laf/commit/d49b15e1e7cc4705316d49271f3744cf415b9ee4))
* **cli:** support dependency install ([#663](https://github.com/labring/laf/issues/663)) ([ac0be96](https://github.com/labring/laf/commit/ac0be967795d22f12d9f87be2f162473ed6bbf68))
* **gateway:** refactor gateway in server instead of crd ([#649](https://github.com/labring/laf/issues/649)) ([5207aa4](https://github.com/labring/laf/commit/5207aa45291cbecf4059fa995f4a4cbb4fae0890))
* **server:** impl bucket domain service ([#661](https://github.com/labring/laf/issues/661)) ([aa8a3af](https://github.com/labring/laf/commit/aa8a3af2e566163882056634cfd58111f6df0056))
* **server:** support multi-region cluster ([#648](https://github.com/labring/laf/issues/648)) ([ba5698c](https://github.com/labring/laf/commit/ba5698c04d2af69fccca8a6e8433379091da3bf8))
* **web:** add row & col layout ([#619](https://github.com/labring/laf/issues/619)) ([a016f4e](https://github.com/labring/laf/commit/a016f4e7044bff8159581b3eae9141aef27fd41a))
* **web:** add trigger panel ([#643](https://github.com/labring/laf/issues/643)) ([fbf850f](https://github.com/labring/laf/commit/fbf850f9e5be11517a6c3412a778d62f600d2bd7))
* **web:** fix function layout & more button ([#655](https://github.com/labring/laf/issues/655)) ([9813ca3](https://github.com/labring/laf/commit/9813ca3c467b377f54bb63a49e1e645b39770d31))
* **web:** policy panel & log new UI ([#624](https://github.com/labring/laf/issues/624)) ([dc5df96](https://github.com/labring/laf/commit/dc5df96e82bed00918fac31e8c56a20f50365d1f))
* **web:** support toggle panels in function page ([#623](https://github.com/labring/laf/issues/623)) ([fda7b0d](https://github.com/labring/laf/commit/fda7b0d3e5c0a89ea78abcff3deb538d4749de56))



# [1.0.0-alpha.5](https://github.com/labring/laf/compare/v1.0.0-alpha.4...v1.0.0-alpha.5) (2023-01-11)


### Bug Fixes

* **core:** remove bucket route pass host ([#600](https://github.com/labring/laf/issues/600)) ([a75a61f](https://github.com/labring/laf/commit/a75a61f467b33321d3c419bcca85af7c4fdfeba0))
* default load typedefiniiton ([#606](https://github.com/labring/laf/issues/606)) ([e2d0967](https://github.com/labring/laf/commit/e2d09673d4a1a27afc0b81a66dea04c91a7da1f4))
* **server:** fix function websocket error; add tags for function ([#611](https://github.com/labring/laf/issues/611)) ([6abee36](https://github.com/labring/laf/commit/6abee366d85d6396137fd4bdbaf79838c696d2c1))
* **web:** create same function cause page error ([#603](https://github.com/labring/laf/issues/603)) ([caa2a5d](https://github.com/labring/laf/commit/caa2a5d04d833ec701cdb4575a45dbb8fd1c1b00))


### Features

* **server:** add enviroments apis ([#605](https://github.com/labring/laf/issues/605)) ([acf5d34](https://github.com/labring/laf/commit/acf5d34f23bb6958ca61c0b52e19532459283aa5))
* **server:** add update-deps api ([#613](https://github.com/labring/laf/issues/613)) ([a1f67ae](https://github.com/labring/laf/commit/a1f67aefaab8bd1a80b70f573cbe910dcee404d5))
* **server:** implement policy rule schema & crud ([#612](https://github.com/labring/laf/issues/612)) ([5e3789c](https://github.com/labring/laf/commit/5e3789c30f6caf50459a9aaeaccb64261d019ee7))
* **web:** add AppEnvList and PATList ([#608](https://github.com/labring/laf/issues/608)) ([7d9
Download .txt
gitextract_pjbqfead/

├── .editorconfig
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── feature_request.yml
│   │   └── question.yml
│   ├── actions/
│   │   └── build-docs/
│   │       └── action.yml
│   ├── gh-bot.yml
│   ├── no-response.yml
│   ├── stale.yml
│   └── workflows/
│       ├── build-scripts-updated.yml
│       ├── build-sealos-cluster-image.yml
│       ├── deploy-doc.yml
│       ├── doc-deploy.yml
│       ├── doc-preview.yml
│       ├── dockerize-runtime-exporter.yml
│       ├── dockerize-runtime-nodejs.yml
│       ├── dockerize-server.yml
│       ├── dockerize-web.yml
│       ├── e2e.yml
│       ├── link-pr.yml
│       ├── release.yml
│       └── sync-upstream.yml
├── .gitignore
├── .husky/
│   └── pre-commit
├── .lycheeignore
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── CHANGELOG.md
├── CLAUDE.md
├── LICENSE
├── README.md
├── README_en.md
├── SECURITY.md
├── build/
│   ├── Kubefile
│   ├── README.md
│   ├── charts/
│   │   ├── kube-prometheus-stack/
│   │   │   ├── .helmignore
│   │   │   ├── CONTRIBUTING.md
│   │   │   ├── Chart.yaml
│   │   │   ├── README.md
│   │   │   ├── charts/
│   │   │   │   ├── crds/
│   │   │   │   │   ├── Chart.yaml
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── crds/
│   │   │   │   │       ├── crd-alertmanagerconfigs.yaml
│   │   │   │   │       ├── crd-alertmanagers.yaml
│   │   │   │   │       ├── crd-podmonitors.yaml
│   │   │   │   │       ├── crd-probes.yaml
│   │   │   │   │       ├── crd-prometheusagents.yaml
│   │   │   │   │       ├── crd-prometheuses.yaml
│   │   │   │   │       ├── crd-prometheusrules.yaml
│   │   │   │   │       ├── crd-scrapeconfigs.yaml
│   │   │   │   │       ├── crd-servicemonitors.yaml
│   │   │   │   │       └── crd-thanosrulers.yaml
│   │   │   │   ├── grafana/
│   │   │   │   │   ├── .helmignore
│   │   │   │   │   ├── Chart.yaml
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ci/
│   │   │   │   │   │   ├── default-values.yaml
│   │   │   │   │   │   ├── with-affinity-values.yaml
│   │   │   │   │   │   ├── with-dashboard-json-values.yaml
│   │   │   │   │   │   ├── with-dashboard-values.yaml
│   │   │   │   │   │   ├── with-extraconfigmapmounts-values.yaml
│   │   │   │   │   │   ├── with-image-renderer-values.yaml
│   │   │   │   │   │   └── with-persistence.yaml
│   │   │   │   │   ├── dashboards/
│   │   │   │   │   │   └── custom-dashboard.json
│   │   │   │   │   ├── templates/
│   │   │   │   │   │   ├── NOTES.txt
│   │   │   │   │   │   ├── _helpers.tpl
│   │   │   │   │   │   ├── _pod.tpl
│   │   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   │   ├── configmap-dashboard-provider.yaml
│   │   │   │   │   │   ├── configmap.yaml
│   │   │   │   │   │   ├── dashboards-json-configmap.yaml
│   │   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   │   ├── extra-manifests.yaml
│   │   │   │   │   │   ├── headless-service.yaml
│   │   │   │   │   │   ├── hpa.yaml
│   │   │   │   │   │   ├── image-renderer-deployment.yaml
│   │   │   │   │   │   ├── image-renderer-hpa.yaml
│   │   │   │   │   │   ├── image-renderer-network-policy.yaml
│   │   │   │   │   │   ├── image-renderer-service.yaml
│   │   │   │   │   │   ├── image-renderer-servicemonitor.yaml
│   │   │   │   │   │   ├── ingress.yaml
│   │   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   │   ├── poddisruptionbudget.yaml
│   │   │   │   │   │   ├── podsecuritypolicy.yaml
│   │   │   │   │   │   ├── pvc.yaml
│   │   │   │   │   │   ├── role.yaml
│   │   │   │   │   │   ├── rolebinding.yaml
│   │   │   │   │   │   ├── secret-env.yaml
│   │   │   │   │   │   ├── secret.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   │   ├── statefulset.yaml
│   │   │   │   │   │   └── tests/
│   │   │   │   │   │       ├── test-configmap.yaml
│   │   │   │   │   │       ├── test-podsecuritypolicy.yaml
│   │   │   │   │   │       ├── test-role.yaml
│   │   │   │   │   │       ├── test-rolebinding.yaml
│   │   │   │   │   │       ├── test-serviceaccount.yaml
│   │   │   │   │   │       └── test.yaml
│   │   │   │   │   └── values.yaml
│   │   │   │   ├── kube-state-metrics/
│   │   │   │   │   ├── .helmignore
│   │   │   │   │   ├── Chart.yaml
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── templates/
│   │   │   │   │   │   ├── NOTES.txt
│   │   │   │   │   │   ├── _helpers.tpl
│   │   │   │   │   │   ├── ciliumnetworkpolicy.yaml
│   │   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   │   ├── crs-configmap.yaml
│   │   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   │   ├── extra-manifests.yaml
│   │   │   │   │   │   ├── kubeconfig-secret.yaml
│   │   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   │   ├── pdb.yaml
│   │   │   │   │   │   ├── podsecuritypolicy.yaml
│   │   │   │   │   │   ├── psp-clusterrole.yaml
│   │   │   │   │   │   ├── psp-clusterrolebinding.yaml
│   │   │   │   │   │   ├── rbac-configmap.yaml
│   │   │   │   │   │   ├── role.yaml
│   │   │   │   │   │   ├── rolebinding.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   │   ├── stsdiscovery-role.yaml
│   │   │   │   │   │   ├── stsdiscovery-rolebinding.yaml
│   │   │   │   │   │   └── verticalpodautoscaler.yaml
│   │   │   │   │   └── values.yaml
│   │   │   │   ├── prometheus-node-exporter/
│   │   │   │   │   ├── .helmignore
│   │   │   │   │   ├── Chart.yaml
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── ci/
│   │   │   │   │   │   └── port-values.yaml
│   │   │   │   │   ├── templates/
│   │   │   │   │   │   ├── NOTES.txt
│   │   │   │   │   │   ├── _helpers.tpl
│   │   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   │   ├── daemonset.yaml
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── extra-manifests.yaml
│   │   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   │   ├── podmonitor.yaml
│   │   │   │   │   │   ├── psp-clusterrole.yaml
│   │   │   │   │   │   ├── psp-clusterrolebinding.yaml
│   │   │   │   │   │   ├── psp.yaml
│   │   │   │   │   │   ├── rbac-configmap.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   │   └── verticalpodautoscaler.yaml
│   │   │   │   │   └── values.yaml
│   │   │   │   └── prometheus-windows-exporter/
│   │   │   │       ├── .helmignore
│   │   │   │       ├── Chart.yaml
│   │   │   │       ├── README.md
│   │   │   │       ├── templates/
│   │   │   │       │   ├── _helpers.tpl
│   │   │   │       │   ├── config.yaml
│   │   │   │       │   ├── daemonset.yaml
│   │   │   │       │   ├── podmonitor.yaml
│   │   │   │       │   ├── service.yaml
│   │   │   │       │   ├── serviceaccount.yaml
│   │   │   │       │   └── servicemonitor.yaml
│   │   │   │       └── values.yaml
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── alertmanager/
│   │   │   │   │   ├── alertmanager.yaml
│   │   │   │   │   ├── extrasecret.yaml
│   │   │   │   │   ├── ingress.yaml
│   │   │   │   │   ├── ingressperreplica.yaml
│   │   │   │   │   ├── podDisruptionBudget.yaml
│   │   │   │   │   ├── psp-role.yaml
│   │   │   │   │   ├── psp-rolebinding.yaml
│   │   │   │   │   ├── psp.yaml
│   │   │   │   │   ├── secret.yaml
│   │   │   │   │   ├── service.yaml
│   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   └── serviceperreplica.yaml
│   │   │   │   ├── exporters/
│   │   │   │   │   ├── core-dns/
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-api-server/
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-controller-manager/
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-dns/
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-etcd/
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-proxy/
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   ├── kube-scheduler/
│   │   │   │   │   │   ├── endpoints.yaml
│   │   │   │   │   │   ├── service.yaml
│   │   │   │   │   │   └── servicemonitor.yaml
│   │   │   │   │   └── kubelet/
│   │   │   │   │       └── servicemonitor.yaml
│   │   │   │   ├── extra-objects.yaml
│   │   │   │   ├── grafana/
│   │   │   │   │   ├── configmap-dashboards.yaml
│   │   │   │   │   ├── configmaps-datasources.yaml
│   │   │   │   │   └── dashboards-1.14/
│   │   │   │   │       ├── alertmanager-overview.yaml
│   │   │   │   │       ├── apiserver.yaml
│   │   │   │   │       ├── cluster-total.yaml
│   │   │   │   │       ├── controller-manager.yaml
│   │   │   │   │       ├── etcd.yaml
│   │   │   │   │       ├── grafana-overview.yaml
│   │   │   │   │       ├── k8s-coredns.yaml
│   │   │   │   │       ├── k8s-resources-cluster.yaml
│   │   │   │   │       ├── k8s-resources-multicluster.yaml
│   │   │   │   │       ├── k8s-resources-namespace.yaml
│   │   │   │   │       ├── k8s-resources-node.yaml
│   │   │   │   │       ├── k8s-resources-pod.yaml
│   │   │   │   │       ├── k8s-resources-windows-cluster.yaml
│   │   │   │   │       ├── k8s-resources-windows-namespace.yaml
│   │   │   │   │       ├── k8s-resources-windows-pod.yaml
│   │   │   │   │       ├── k8s-resources-workload.yaml
│   │   │   │   │       ├── k8s-resources-workloads-namespace.yaml
│   │   │   │   │       ├── k8s-windows-cluster-rsrc-use.yaml
│   │   │   │   │       ├── k8s-windows-node-rsrc-use.yaml
│   │   │   │   │       ├── kubelet.yaml
│   │   │   │   │       ├── namespace-by-pod.yaml
│   │   │   │   │       ├── namespace-by-workload.yaml
│   │   │   │   │       ├── node-cluster-rsrc-use.yaml
│   │   │   │   │       ├── node-rsrc-use.yaml
│   │   │   │   │       ├── nodes-darwin.yaml
│   │   │   │   │       ├── nodes.yaml
│   │   │   │   │       ├── persistentvolumesusage.yaml
│   │   │   │   │       ├── pod-total.yaml
│   │   │   │   │       ├── prometheus-remote-write.yaml
│   │   │   │   │       ├── prometheus.yaml
│   │   │   │   │       ├── proxy.yaml
│   │   │   │   │       ├── scheduler.yaml
│   │   │   │   │       └── workload-total.yaml
│   │   │   │   ├── prometheus/
│   │   │   │   │   ├── _rules.tpl
│   │   │   │   │   ├── additionalAlertRelabelConfigs.yaml
│   │   │   │   │   ├── additionalAlertmanagerConfigs.yaml
│   │   │   │   │   ├── additionalPrometheusRules.yaml
│   │   │   │   │   ├── additionalScrapeConfigs.yaml
│   │   │   │   │   ├── ciliumnetworkpolicy.yaml
│   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   ├── csi-secret.yaml
│   │   │   │   │   ├── extrasecret.yaml
│   │   │   │   │   ├── ingress.yaml
│   │   │   │   │   ├── ingressThanosSidecar.yaml
│   │   │   │   │   ├── ingressperreplica.yaml
│   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   ├── podDisruptionBudget.yaml
│   │   │   │   │   ├── podmonitors.yaml
│   │   │   │   │   ├── prometheus.yaml
│   │   │   │   │   ├── psp-clusterrole.yaml
│   │   │   │   │   ├── psp-clusterrolebinding.yaml
│   │   │   │   │   ├── psp.yaml
│   │   │   │   │   ├── rules-1.14/
│   │   │   │   │   │   ├── alertmanager.rules.yaml
│   │   │   │   │   │   ├── config-reloaders.yaml
│   │   │   │   │   │   ├── etcd.yaml
│   │   │   │   │   │   ├── general.rules.yaml
│   │   │   │   │   │   ├── k8s.rules.yaml
│   │   │   │   │   │   ├── kube-apiserver-availability.rules.yaml
│   │   │   │   │   │   ├── kube-apiserver-burnrate.rules.yaml
│   │   │   │   │   │   ├── kube-apiserver-histogram.rules.yaml
│   │   │   │   │   │   ├── kube-apiserver-slos.yaml
│   │   │   │   │   │   ├── kube-prometheus-general.rules.yaml
│   │   │   │   │   │   ├── kube-prometheus-node-recording.rules.yaml
│   │   │   │   │   │   ├── kube-scheduler.rules.yaml
│   │   │   │   │   │   ├── kube-state-metrics.yaml
│   │   │   │   │   │   ├── kubelet.rules.yaml
│   │   │   │   │   │   ├── kubernetes-apps.yaml
│   │   │   │   │   │   ├── kubernetes-resources.yaml
│   │   │   │   │   │   ├── kubernetes-storage.yaml
│   │   │   │   │   │   ├── kubernetes-system-apiserver.yaml
│   │   │   │   │   │   ├── kubernetes-system-controller-manager.yaml
│   │   │   │   │   │   ├── kubernetes-system-kube-proxy.yaml
│   │   │   │   │   │   ├── kubernetes-system-kubelet.yaml
│   │   │   │   │   │   ├── kubernetes-system-scheduler.yaml
│   │   │   │   │   │   ├── kubernetes-system.yaml
│   │   │   │   │   │   ├── node-exporter.rules.yaml
│   │   │   │   │   │   ├── node-exporter.yaml
│   │   │   │   │   │   ├── node-network.yaml
│   │   │   │   │   │   ├── node.rules.yaml
│   │   │   │   │   │   ├── prometheus-operator.yaml
│   │   │   │   │   │   ├── prometheus.yaml
│   │   │   │   │   │   ├── windows.node.rules.yaml
│   │   │   │   │   │   └── windows.pod.rules.yaml
│   │   │   │   │   ├── service.yaml
│   │   │   │   │   ├── serviceThanosSidecar.yaml
│   │   │   │   │   ├── serviceThanosSidecarExternal.yaml
│   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   ├── servicemonitorThanosSidecar.yaml
│   │   │   │   │   ├── servicemonitors.yaml
│   │   │   │   │   └── serviceperreplica.yaml
│   │   │   │   ├── prometheus-operator/
│   │   │   │   │   ├── admission-webhooks/
│   │   │   │   │   │   ├── job-patch/
│   │   │   │   │   │   │   ├── ciliumnetworkpolicy-createSecret.yaml
│   │   │   │   │   │   │   ├── ciliumnetworkpolicy-patchWebhook.yaml
│   │   │   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   │   │   ├── job-createSecret.yaml
│   │   │   │   │   │   │   ├── job-patchWebhook.yaml
│   │   │   │   │   │   │   ├── networkpolicy-createSecret.yaml
│   │   │   │   │   │   │   ├── networkpolicy-patchWebhook.yaml
│   │   │   │   │   │   │   ├── psp.yaml
│   │   │   │   │   │   │   ├── role.yaml
│   │   │   │   │   │   │   ├── rolebinding.yaml
│   │   │   │   │   │   │   └── serviceaccount.yaml
│   │   │   │   │   │   ├── mutatingWebhookConfiguration.yaml
│   │   │   │   │   │   └── validatingWebhookConfiguration.yaml
│   │   │   │   │   ├── aggregate-clusterroles.yaml
│   │   │   │   │   ├── certmanager.yaml
│   │   │   │   │   ├── ciliumnetworkpolicy.yaml
│   │   │   │   │   ├── clusterrole.yaml
│   │   │   │   │   ├── clusterrolebinding.yaml
│   │   │   │   │   ├── deployment.yaml
│   │   │   │   │   ├── networkpolicy.yaml
│   │   │   │   │   ├── psp-clusterrole.yaml
│   │   │   │   │   ├── psp-clusterrolebinding.yaml
│   │   │   │   │   ├── psp.yaml
│   │   │   │   │   ├── service.yaml
│   │   │   │   │   ├── serviceaccount.yaml
│   │   │   │   │   ├── servicemonitor.yaml
│   │   │   │   │   └── verticalpodautoscaler.yaml
│   │   │   │   └── thanos-ruler/
│   │   │   │       ├── extrasecret.yaml
│   │   │   │       ├── ingress.yaml
│   │   │   │       ├── podDisruptionBudget.yaml
│   │   │   │       ├── ruler.yaml
│   │   │   │       ├── service.yaml
│   │   │   │       ├── serviceaccount.yaml
│   │   │   │       └── servicemonitor.yaml
│   │   │   └── values.yaml
│   │   ├── laf-server/
│   │   │   ├── .helmignore
│   │   │   ├── Chart.yaml
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── cert-issuer.yaml
│   │   │   │   ├── deployment.yaml
│   │   │   │   ├── hpa.yaml
│   │   │   │   ├── ingress.yaml
│   │   │   │   ├── rumtime-exporter.yaml
│   │   │   │   ├── service.yaml
│   │   │   │   ├── serviceaccount.yaml
│   │   │   │   └── tests/
│   │   │   │       └── test-connection.yaml
│   │   │   └── values.yaml
│   │   ├── laf-web/
│   │   │   ├── .helmignore
│   │   │   ├── Chart.yaml
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── deployment.yaml
│   │   │   │   ├── hpa.yaml
│   │   │   │   ├── ingress.yaml
│   │   │   │   ├── service.yaml
│   │   │   │   ├── serviceaccount.yaml
│   │   │   │   └── tests/
│   │   │   │       └── test-connection.yaml
│   │   │   └── values.yaml
│   │   ├── minio/
│   │   │   ├── Chart.yaml
│   │   │   ├── README.md
│   │   │   ├── templates/
│   │   │   │   ├── NOTES.txt
│   │   │   │   ├── _helper_create_bucket.txt
│   │   │   │   ├── _helper_create_policy.txt
│   │   │   │   ├── _helper_create_user.txt
│   │   │   │   ├── _helper_custom_command.txt
│   │   │   │   ├── _helper_policy.tpl
│   │   │   │   ├── _helpers.tpl
│   │   │   │   ├── configmap.yaml
│   │   │   │   ├── console-ingress.yaml
│   │   │   │   ├── console-service.yaml
│   │   │   │   ├── deployment.yaml
│   │   │   │   ├── ingress.yaml
│   │   │   │   ├── networkpolicy.yaml
│   │   │   │   ├── poddisruptionbudget.yaml
│   │   │   │   ├── post-install-create-bucket-job.yaml
│   │   │   │   ├── post-install-create-policy-job.yaml
│   │   │   │   ├── post-install-create-user-job.yaml
│   │   │   │   ├── post-install-custom-command.yaml
│   │   │   │   ├── pvc.yaml
│   │   │   │   ├── secrets.yaml
│   │   │   │   ├── securitycontextconstraints.yaml
│   │   │   │   ├── service.yaml
│   │   │   │   ├── serviceaccount.yaml
│   │   │   │   ├── servicemonitor.yaml
│   │   │   │   └── statefulset.yaml
│   │   │   └── values.yaml
│   │   └── prometheus-mongodb-exporter/
│   │       ├── .helmignore
│   │       ├── Chart.yaml
│   │       ├── README.md
│   │       ├── ci/
│   │       │   ├── env-values.yaml
│   │       │   └── servicemonitor-disabled-values.yaml
│   │       ├── templates/
│   │       │   ├── NOTES.txt
│   │       │   ├── _helpers.tpl
│   │       │   ├── deployment.yaml
│   │       │   ├── secret.yaml
│   │       │   ├── service.yaml
│   │       │   ├── serviceaccount.yaml
│   │       │   ├── servicemonitor.yaml
│   │       │   └── tests/
│   │       │       └── test-connection.yaml
│   │       └── values.yaml
│   ├── images/
│   │   └── shim/
│   │       └── ImageList
│   ├── mongodb.yaml
│   ├── prometheus-helm.yaml
│   └── start.sh
├── cli/
│   ├── .eslintrc
│   ├── .npmignore
│   ├── README.md
│   ├── package.json
│   ├── src/
│   │   ├── action/
│   │   │   ├── application/
│   │   │   │   └── index.ts
│   │   │   ├── database/
│   │   │   │   └── index.ts
│   │   │   ├── dependency/
│   │   │   │   └── index.ts
│   │   │   ├── deploy/
│   │   │   │   └── index.ts
│   │   │   ├── environment/
│   │   │   │   └── index.ts
│   │   │   ├── function/
│   │   │   │   └── index.ts
│   │   │   ├── policy/
│   │   │   │   ├── dto.ts
│   │   │   │   └── index.ts
│   │   │   ├── storage/
│   │   │   │   ├── index.ts
│   │   │   │   └── s3.ts
│   │   │   ├── trigger/
│   │   │   │   └── index.ts
│   │   │   ├── user/
│   │   │   │   └── index.ts
│   │   │   └── website/
│   │   │       └── index.ts
│   │   ├── api/
│   │   │   ├── custom.ts
│   │   │   ├── debug.ts
│   │   │   ├── pat.ts
│   │   │   └── v1/
│   │   │       ├── account.ts
│   │   │       ├── application.ts
│   │   │       ├── authentication.ts
│   │   │       ├── billing.ts
│   │   │       ├── data-contracts.ts
│   │   │       ├── database.ts
│   │   │       ├── function.ts
│   │   │       ├── functiontemplate.ts
│   │   │       ├── group.ts
│   │   │       ├── monitor.ts
│   │   │       ├── public.ts
│   │   │       ├── recyclebin.ts
│   │   │       ├── storage.ts
│   │   │       ├── trigger.ts
│   │   │       ├── user.ts
│   │   │       └── websitehosting.ts
│   │   ├── command/
│   │   │   ├── application/
│   │   │   │   └── index.ts
│   │   │   ├── database/
│   │   │   │   └── index.ts
│   │   │   ├── dependency/
│   │   │   │   └── index.ts
│   │   │   ├── deploy/
│   │   │   │   └── index.ts
│   │   │   ├── environment/
│   │   │   │   └── index.ts
│   │   │   ├── function/
│   │   │   │   └── index.ts
│   │   │   ├── policy/
│   │   │   │   └── index.ts
│   │   │   ├── storage/
│   │   │   │   └── index.ts
│   │   │   ├── trigger/
│   │   │   │   └── index.ts
│   │   │   ├── user/
│   │   │   │   └── index.ts
│   │   │   └── website/
│   │   │       └── index.ts
│   │   ├── common/
│   │   │   ├── constant.ts
│   │   │   ├── hook.ts
│   │   │   ├── prompts.ts
│   │   │   └── wait.ts
│   │   ├── main.ts
│   │   ├── schema/
│   │   │   ├── app.ts
│   │   │   ├── deploy.ts
│   │   │   ├── environment.ts
│   │   │   ├── function.ts
│   │   │   ├── project.ts
│   │   │   └── user.ts
│   │   └── util/
│   │       ├── file.ts
│   │       ├── format.ts
│   │       ├── print.ts
│   │       ├── request.ts
│   │       └── sys.ts
│   ├── template/
│   │   ├── gitignore
│   │   ├── global.d.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   └── tsconfig.json
├── deploy/
│   ├── README.md
│   ├── install-on-linux.sh
│   └── install-on-mac.sh
├── docs/
│   ├── .eslintignore
│   ├── .eslintrc
│   ├── .gitignore
│   ├── .vitepress/
│   │   ├── config.mts
│   │   ├── en.mts
│   │   ├── theme/
│   │   │   ├── custom.css
│   │   │   └── index.ts
│   │   └── zh.mts
│   ├── Dockerfile
│   ├── en/
│   │   ├── architecture.md
│   │   └── index.md
│   ├── package.json
│   ├── public/
│   │   ├── CNAME
│   │   ├── fancybox.css
│   │   └── fancybox.umd.js
│   ├── scripts/
│   │   └── check-version.js
│   └── zh/
│       ├── cli/
│       │   └── index.md
│       ├── client-sdk/
│       │   └── index.md
│       ├── cloud-database/
│       │   ├── database-ql/
│       │   │   ├── add.md
│       │   │   ├── aggregate.md
│       │   │   ├── command.md
│       │   │   ├── del.md
│       │   │   ├── find.md
│       │   │   ├── geo.md
│       │   │   ├── index.md
│       │   │   ├── operator.md
│       │   │   ├── policy.md
│       │   │   ├── quickstart.md
│       │   │   └── update.md
│       │   ├── delete.md
│       │   ├── find.md
│       │   ├── index.md
│       │   ├── insert.md
│       │   ├── query/
│       │   │   ├── array.md
│       │   │   ├── condition.md
│       │   │   ├── nested.md
│       │   │   ├── pagination.md
│       │   │   ├── regex.md
│       │   │   └── sort.md
│       │   ├── quick-start.md
│       │   └── update.md
│       ├── cloud-function/
│       │   ├── auth.md
│       │   ├── cron.md
│       │   ├── deps.md
│       │   ├── env.md
│       │   ├── fetch.md
│       │   ├── files.md
│       │   ├── import.md
│       │   ├── index.md
│       │   ├── init.md
│       │   ├── interceptor.md
│       │   ├── quick-start.md
│       │   ├── request.md
│       │   ├── response.md
│       │   └── websocket.md
│       ├── cloud-storage/
│       │   ├── delete.md
│       │   ├── download-url.md
│       │   ├── index.md
│       │   ├── list.md
│       │   ├── read.md
│       │   ├── upload-url.md
│       │   ├── upload.md
│       │   └── website-hosting.md
│       ├── examples/
│       │   ├── index.md
│       │   ├── website-hosting-ci-cd.md
│       │   └── wxmp-upload.md
│       ├── index.md
│       ├── other/
│       │   └── sealaf-migration.md
│       └── quick-start/
│           ├── Todo.md
│           └── login.md
├── e2e/
│   ├── .eslintrc
│   ├── .gitignore
│   ├── 0-user/
│   │   ├── 00-signup.test.ts
│   │   └── 01-signin.test.ts
│   ├── 1-application/
│   │   └── 00-create.test.ts
│   ├── 2-monitor/
│   │   └── 00-query.test.ts
│   ├── 9-cleaning/
│   │   └── 00-clean.test.ts
│   ├── api.ts
│   ├── config.ts
│   ├── e2e.sh
│   ├── jest-sequencer.js
│   ├── jest.config.js
│   ├── package.json
│   ├── system-db.ts
│   └── tsconfig.json
├── lerna.json
├── package.json
├── packages/
│   ├── client-sdk/
│   │   ├── .eslintrc
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── cloud.ts
│   │   │   ├── index-bundle.ts
│   │   │   ├── index.ts
│   │   │   ├── request/
│   │   │   │   ├── index.ts
│   │   │   │   ├── request-taro.ts
│   │   │   │   ├── request-uni.ts
│   │   │   │   ├── request-wxmp.ts
│   │   │   │   └── request.ts
│   │   │   └── types.ts
│   │   ├── tests/
│   │   │   ├── _app.js
│   │   │   ├── http/
│   │   │   │   ├── add_test.js
│   │   │   │   ├── config.js
│   │   │   │   ├── read_test.js
│   │   │   │   └── update_test.js
│   │   │   └── units/
│   │   │       └── cloud_test.js
│   │   ├── tsconfig.esm.json
│   │   ├── tsconfig.json
│   │   └── webpack.config.js
│   ├── cloud-sdk/
│   │   ├── .eslintrc
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── cloud.interface.ts
│   │   │   ├── cloud.ts
│   │   │   ├── function.interface.ts
│   │   │   ├── index.ts
│   │   │   ├── storage.ts
│   │   │   └── util.ts
│   │   └── tsconfig.json
│   ├── database-proxy/
│   │   ├── .eslintrc
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── docs/
│   │   │   ├── convert-sql.md
│   │   │   ├── qa-1.md
│   │   │   ├── qa-query-rules.md
│   │   │   ├── ruler_v2_design.md
│   │   │   ├── rules-v1.json
│   │   │   ├── rules-v2.json
│   │   │   └── todo.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── accessor/
│   │   │   │   ├── accessor.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── mongo.ts
│   │   │   │   ├── mysql.ts
│   │   │   │   └── sql_builder.ts
│   │   │   ├── dbi/
│   │   │   │   ├── index.ts
│   │   │   │   └── request.ts
│   │   │   ├── index.ts
│   │   │   ├── logger.ts
│   │   │   ├── policy/
│   │   │   │   ├── index.ts
│   │   │   │   ├── interface.ts
│   │   │   │   └── policy.ts
│   │   │   ├── processor.ts
│   │   │   ├── proxy.ts
│   │   │   ├── types.ts
│   │   │   ├── utils/
│   │   │   │   ├── constraint.ts
│   │   │   │   ├── script.ts
│   │   │   │   └── security.ts
│   │   │   └── validators/
│   │   │       ├── condition/
│   │   │       │   └── index.ts
│   │   │       ├── data/
│   │   │       │   └── index.ts
│   │   │       ├── index.ts
│   │   │       ├── join/
│   │   │       │   └── index.ts
│   │   │       ├── lookup/
│   │   │       │   └── index.ts
│   │   │       ├── multi/
│   │   │       │   └── index.ts
│   │   │       └── query/
│   │   │           └── index.ts
│   │   ├── tests/
│   │   │   ├── mongo_db/
│   │   │   │   ├── _db.js
│   │   │   │   ├── add.test.js
│   │   │   │   ├── aggregate.test.js
│   │   │   │   ├── count.test.js
│   │   │   │   ├── dbi.test.js
│   │   │   │   ├── read.test.js
│   │   │   │   ├── remove.test.js
│   │   │   │   └── update.test.js
│   │   │   ├── mysql_db/
│   │   │   │   ├── _db.js
│   │   │   │   ├── count.test.ignore.js
│   │   │   │   ├── dbi.test.ignore.js
│   │   │   │   ├── delete.test.ignore.js
│   │   │   │   ├── insert.test.ignore.js
│   │   │   │   ├── join.test.ignore.js
│   │   │   │   ├── read.test.ignore.js
│   │   │   │   └── update.test.ignore.js
│   │   │   ├── units/
│   │   │   │   ├── accessor.test.js
│   │   │   │   ├── policy/
│   │   │   │   │   ├── data.add.constraints/
│   │   │   │   │   │   ├── condition.test.js
│   │   │   │   │   │   ├── default.test.js
│   │   │   │   │   │   ├── in.test.js
│   │   │   │   │   │   ├── length.test.js
│   │   │   │   │   │   ├── match.test.js
│   │   │   │   │   │   ├── number.test.js
│   │   │   │   │   │   ├── required.test.js
│   │   │   │   │   │   └── test.js
│   │   │   │   │   ├── data.update.constraints/
│   │   │   │   │   │   ├── data.replace.test.js
│   │   │   │   │   │   ├── default.test.js
│   │   │   │   │   │   └── required.test.js
│   │   │   │   │   ├── query.constraints/
│   │   │   │   │   │   ├── condition.test.js
│   │   │   │   │   │   ├── default.test.js
│   │   │   │   │   │   ├── in.test.js
│   │   │   │   │   │   ├── length.test.js
│   │   │   │   │   │   ├── match.test.js
│   │   │   │   │   │   ├── number.test.js
│   │   │   │   │   │   └── required.test.js
│   │   │   │   │   ├── ruler.schema.js
│   │   │   │   │   ├── ruler.test.js
│   │   │   │   │   ├── rules.json
│   │   │   │   │   ├── validator.join.test.js
│   │   │   │   │   └── validator.multi.test.js
│   │   │   │   ├── proxy.test.js
│   │   │   │   ├── sql_builder.test.js
│   │   │   │   └── sql_query_builder.test.js
│   │   │   └── utils.js
│   │   └── tsconfig.json
│   ├── database-ql/
│   │   ├── .eslintrc
│   │   ├── .npmignore
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── README.md
│   │   │   ├── aggregate.ts
│   │   │   ├── collection.ts
│   │   │   ├── command.ts
│   │   │   ├── commands/
│   │   │   │   ├── logic.ts
│   │   │   │   ├── query.ts
│   │   │   │   └── update.ts
│   │   │   ├── constant.ts
│   │   │   ├── document.ts
│   │   │   ├── geo/
│   │   │   │   ├── index.ts
│   │   │   │   ├── interface.ts
│   │   │   │   ├── lineString.ts
│   │   │   │   ├── multiLineString.ts
│   │   │   │   ├── multiPoint.ts
│   │   │   │   ├── multiPolygon.ts
│   │   │   │   ├── point.ts
│   │   │   │   └── polygon.ts
│   │   │   ├── helper/
│   │   │   │   └── symbol.ts
│   │   │   ├── index.ts
│   │   │   ├── interface.ts
│   │   │   ├── operator-map.ts
│   │   │   ├── query.ts
│   │   │   ├── regexp/
│   │   │   │   └── index.ts
│   │   │   ├── result-types.ts
│   │   │   ├── serializer/
│   │   │   │   ├── common.ts
│   │   │   │   ├── datatype.ts
│   │   │   │   ├── query.ts
│   │   │   │   └── update.ts
│   │   │   ├── serverDate/
│   │   │   │   └── index.ts
│   │   │   ├── util.ts
│   │   │   ├── utils/
│   │   │   │   ├── symbol.ts
│   │   │   │   ├── type.ts
│   │   │   │   └── utils.ts
│   │   │   └── validate.ts
│   │   ├── tests/
│   │   │   └── units/
│   │   │       ├── _utils.js
│   │   │       ├── aggregate/
│   │   │       │   ├── index.test.js
│   │   │       │   ├── lookup.test.js
│   │   │       │   └── match.test.js
│   │   │       ├── doc/
│   │   │       │   ├── create.test.js
│   │   │       │   ├── get.test.js
│   │   │       │   └── update.test.js
│   │   │       ├── get/
│   │   │       │   ├── field.test.js
│   │   │       │   ├── get.test.js
│   │   │       │   ├── limit.skip.test.js
│   │   │       │   ├── orderby.test.js
│   │   │       │   ├── page.test.js
│   │   │       │   └── where.test.js
│   │   │       ├── remove/
│   │   │       │   └── remove.test.js
│   │   │       └── update/
│   │   │           └── update.test.js
│   │   ├── tsconfig.esm.json
│   │   └── tsconfig.json
│   ├── eslint-config-laf/
│   │   ├── .eslintrc
│   │   ├── cli.js
│   │   ├── docs.js
│   │   ├── package.js
│   │   ├── package.json
│   │   ├── runtime.js
│   │   ├── server.js
│   │   ├── service.js
│   │   ├── test.js
│   │   └── web.js
│   ├── node-modules-utils/
│   │   ├── .eslintrc
│   │   ├── README.md
│   │   ├── copy2app.sh
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── declaration.ts
│   │   │   ├── import-parser.ts
│   │   │   ├── index.ts
│   │   │   └── package.ts
│   │   ├── tests/
│   │   │   ├── cloud-sdk.test.js
│   │   │   ├── declare.test.js
│   │   │   ├── import.test.js
│   │   │   └── parse.test.js
│   │   └── tsconfig.json
│   └── run-tests.sh
├── runtimes/
│   ├── nodejs/
│   │   ├── .dockerignore
│   │   ├── .eslintrc
│   │   ├── .gitignore
│   │   ├── Dockerfile
│   │   ├── Dockerfile.init
│   │   ├── README.md
│   │   ├── build-image.sh
│   │   ├── functions/
│   │   │   ├── global.d.ts
│   │   │   └── tsconfig.json
│   │   ├── init.sh
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── config.ts
│   │   │   ├── constants.ts
│   │   │   ├── db.ts
│   │   │   ├── handler/
│   │   │   │   ├── db-proxy.ts
│   │   │   │   ├── invoke.ts
│   │   │   │   ├── openapi.ts
│   │   │   │   ├── router.ts
│   │   │   │   └── typings.ts
│   │   │   ├── index.ts
│   │   │   ├── init.ts
│   │   │   ├── storage-server.ts
│   │   │   └── support/
│   │   │       ├── cloud-sdk.ts
│   │   │       ├── database-change-stream/
│   │   │       │   ├── conf-change-stream.ts
│   │   │       │   ├── index.ts
│   │   │       │   └── website-hosting-change-stream.ts
│   │   │       ├── engine/
│   │   │       │   ├── cache.ts
│   │   │       │   ├── console.ts
│   │   │       │   ├── executor.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── module.ts
│   │   │       │   └── types.ts
│   │   │       ├── init-hook.ts
│   │   │       ├── logger.ts
│   │   │       ├── lsp.ts
│   │   │       ├── module-hot-reload.ts
│   │   │       ├── openapi.ts
│   │   │       ├── policy.ts
│   │   │       ├── token.ts
│   │   │       ├── types.ts
│   │   │       ├── utils.ts
│   │   │       └── ws.ts
│   │   ├── start.sh
│   │   ├── tsconfig.json
│   │   └── upload-dependencies.sh
│   └── python/
│       └── TBD.md
├── server/
│   ├── .dockerignore
│   ├── .eslintrc
│   ├── .gitignore
│   ├── Dockerfile
│   ├── README.md
│   ├── build-image.sh
│   ├── nest-cli.json
│   ├── package.json
│   ├── src/
│   │   ├── account/
│   │   │   ├── account.controller.ts
│   │   │   ├── account.module.ts
│   │   │   ├── account.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-charge-order.dto.ts
│   │   │   │   ├── get-charge-order.dto.ts
│   │   │   │   ├── invite-code.dto.ts
│   │   │   │   └── use-gift-code.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── account-charge-order.ts
│   │   │   │   ├── account-charge-reward.ts
│   │   │   │   ├── account-gift-code.ts
│   │   │   │   ├── account-transaction.ts
│   │   │   │   ├── account.ts
│   │   │   │   └── payment-channel.ts
│   │   │   ├── interface/
│   │   │   │   └── account-query.interface.ts
│   │   │   └── payment/
│   │   │       ├── payment-channel.service.ts
│   │   │       ├── types.ts
│   │   │       └── wechat-pay.service.ts
│   │   ├── app.controller.ts
│   │   ├── app.interceptor.ts
│   │   ├── app.module.ts
│   │   ├── app.service.ts
│   │   ├── application/
│   │   │   ├── application-task.service.ts
│   │   │   ├── application.controller.ts
│   │   │   ├── application.module.ts
│   │   │   ├── application.service.ts
│   │   │   ├── bundle.service.ts
│   │   │   ├── configuration.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-application.dto.ts
│   │   │   │   ├── create-autoscaling.dto.ts
│   │   │   │   ├── create-env.dto.ts
│   │   │   │   ├── pod.dto.ts
│   │   │   │   └── update-application.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── application-bundle.ts
│   │   │   │   ├── application-configuration.ts
│   │   │   │   ├── application.ts
│   │   │   │   └── runtime.ts
│   │   │   ├── environment.controller.ts
│   │   │   ├── environment.service.ts
│   │   │   ├── events/
│   │   │   │   ├── application-bundle-updating.event.ts
│   │   │   │   └── application-creating.event.ts
│   │   │   ├── pod.controller.ts
│   │   │   └── pod.service.ts
│   │   ├── authentication/
│   │   │   ├── application.auth.guard.ts
│   │   │   ├── authentication.controller.ts
│   │   │   ├── authentication.module.ts
│   │   │   ├── authentication.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── email-signin.dto.ts
│   │   │   │   ├── email-verify-code.dto.ts
│   │   │   │   ├── github-bind.dto.ts
│   │   │   │   ├── github-jump-login.dto.ts
│   │   │   │   ├── github-signin.dto.ts
│   │   │   │   ├── passwd-check.dto.ts
│   │   │   │   ├── passwd-reset.dto.ts
│   │   │   │   ├── passwd-signin.dto.ts
│   │   │   │   ├── passwd-signup.dto.ts
│   │   │   │   ├── pat2token.dto.ts
│   │   │   │   ├── phone-signin.dto.ts
│   │   │   │   ├── send-email-code.dto.ts
│   │   │   │   └── send-phone-code.dto.ts
│   │   │   ├── email/
│   │   │   │   ├── email.controller.ts
│   │   │   │   ├── email.service.ts
│   │   │   │   └── mailer.service.ts
│   │   │   ├── entities/
│   │   │   │   ├── auth-provider.ts
│   │   │   │   ├── email-verify-code.ts
│   │   │   │   ├── invite-code.ts
│   │   │   │   ├── sms-verify-code.ts
│   │   │   │   └── types.ts
│   │   │   ├── github/
│   │   │   │   ├── github.controller.ts
│   │   │   │   └── github.service.ts
│   │   │   ├── jwt.auth.guard.ts
│   │   │   ├── jwt.strategy.ts
│   │   │   ├── phone/
│   │   │   │   ├── phone.controller.ts
│   │   │   │   ├── phone.service.ts
│   │   │   │   └── sms.service.ts
│   │   │   └── user-passwd/
│   │   │       ├── user-password.controller.ts
│   │   │       └── user-password.service.ts
│   │   ├── billing/
│   │   │   ├── billing-creation-task.service.ts
│   │   │   ├── billing-payment-task.service.ts
│   │   │   ├── billing.controller.ts
│   │   │   ├── billing.module.ts
│   │   │   ├── billing.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── billings.dto.ts
│   │   │   │   └── calculate-price.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── application-billing.ts
│   │   │   │   ├── network-traffic.ts
│   │   │   │   └── resource.ts
│   │   │   ├── interface/
│   │   │   │   └── billing-query.interface.ts
│   │   │   ├── resource.controller.ts
│   │   │   └── resource.service.ts
│   │   ├── constants.ts
│   │   ├── database/
│   │   │   ├── collection/
│   │   │   │   ├── collection.controller.ts
│   │   │   │   └── collection.service.ts
│   │   │   ├── database-usage-capture-task.service.ts
│   │   │   ├── database-usage-limit-task.service.ts
│   │   │   ├── database.controller.ts
│   │   │   ├── database.module.ts
│   │   │   ├── database.service.ts
│   │   │   ├── dedicated-database/
│   │   │   │   ├── dedicated-database-task.service.ts
│   │   │   │   └── dedicated-database.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-collection.dto.ts
│   │   │   │   ├── create-dedicated-database.dto.ts
│   │   │   │   ├── create-policy.dto.ts
│   │   │   │   ├── create-rule.dto.ts
│   │   │   │   ├── import-database.dto.ts
│   │   │   │   ├── update-collection.dto.ts
│   │   │   │   ├── update-dedicated-database-state.dto.ts
│   │   │   │   ├── update-dedicated-database.dto.ts
│   │   │   │   ├── update-policy.dto.ts
│   │   │   │   └── update-rule.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── collection.ts
│   │   │   │   ├── database-policy.ts
│   │   │   │   ├── database-sync-record.ts
│   │   │   │   ├── database.ts
│   │   │   │   └── dedicated-database.ts
│   │   │   ├── listeners/
│   │   │   │   └── application.listener.ts
│   │   │   ├── mongo.service.ts
│   │   │   ├── monitor/
│   │   │   │   ├── monitor.controller.ts
│   │   │   │   └── monitor.service.ts
│   │   │   └── policy/
│   │   │       ├── policy-rule.controller.ts
│   │   │       ├── policy-rule.service.ts
│   │   │       ├── policy.controller.ts
│   │   │       └── policy.service.ts
│   │   ├── dependency/
│   │   │   ├── dependency.controller.ts
│   │   │   ├── dependency.module.ts
│   │   │   ├── dependency.service.ts
│   │   │   └── dto/
│   │   │       ├── create-dependency.dto.ts
│   │   │       ├── delete-dependency.dto.ts
│   │   │       └── update-dependency.dto.ts
│   │   ├── function/
│   │   │   ├── dto/
│   │   │   │   ├── compile-function.dto.ts
│   │   │   │   ├── create-function.dto.ts
│   │   │   │   ├── update-function-debug.dto.ts
│   │   │   │   └── update-function.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── cloud-function-history.ts
│   │   │   │   └── cloud-function.ts
│   │   │   ├── function.controller.ts
│   │   │   ├── function.module.ts
│   │   │   └── function.service.ts
│   │   ├── function-template/
│   │   │   ├── dto/
│   │   │   │   ├── create-function-template.dto.ts
│   │   │   │   ├── function-template-usedBy.dto.ts
│   │   │   │   ├── function-templates.dto.ts
│   │   │   │   ├── update-function-template.dto.ts
│   │   │   │   └── use-function-template.dto.ts
│   │   │   ├── entities/
│   │   │   │   └── function-template.ts
│   │   │   ├── function-template.controller.ts
│   │   │   ├── function-template.module.ts
│   │   │   └── function-template.service.ts
│   │   ├── gateway/
│   │   │   ├── bucket-domain-task.service.ts
│   │   │   ├── bucket-domain.service.ts
│   │   │   ├── certificate.service.ts
│   │   │   ├── entities/
│   │   │   │   ├── bucket-domain.ts
│   │   │   │   └── runtime-domain.ts
│   │   │   ├── gateway.module.ts
│   │   │   ├── ingress/
│   │   │   │   ├── bucket-ingress.service.ts
│   │   │   │   ├── runtime-ingress.service.ts
│   │   │   │   └── website-ingress.service.ts
│   │   │   ├── runtime-domain-task.service.ts
│   │   │   ├── runtime-domain.service.ts
│   │   │   └── website-task.service.ts
│   │   ├── generated/
│   │   │   └── i18n.generated.ts
│   │   ├── group/
│   │   │   ├── dto/
│   │   │   │   ├── create-group.dto.ts
│   │   │   │   ├── find-group-invite-code.dto.ts
│   │   │   │   ├── find-group-member.dto.ts
│   │   │   │   ├── get-group-invite-code-detail.dto.ts
│   │   │   │   ├── update-group-invite-code.dto.ts
│   │   │   │   ├── update-group-member-role.dto.ts
│   │   │   │   └── update-group.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── group-application.ts
│   │   │   │   ├── group-invite-code.ts
│   │   │   │   ├── group-member.ts
│   │   │   │   └── group.ts
│   │   │   ├── group-application/
│   │   │   │   ├── group-application.controller.ts
│   │   │   │   └── group-application.service.ts
│   │   │   ├── group-auth.guard.ts
│   │   │   ├── group-invite/
│   │   │   │   ├── group-invite.controller.ts
│   │   │   │   └── group-invite.service.ts
│   │   │   ├── group-member/
│   │   │   │   ├── group-member.controller.ts
│   │   │   │   └── group-member.service.ts
│   │   │   ├── group-role.decorator.ts
│   │   │   ├── group.controller.ts
│   │   │   ├── group.module.ts
│   │   │   └── group.service.ts
│   │   ├── i18n/
│   │   │   ├── en/
│   │   │   │   ├── function.json
│   │   │   │   ├── notification.json
│   │   │   │   └── subscription.json
│   │   │   ├── zh/
│   │   │   │   ├── function.json
│   │   │   │   ├── notification.json
│   │   │   │   └── subscription.json
│   │   │   └── zh-CN/
│   │   │       ├── function.json
│   │   │       ├── notification.json
│   │   │       └── subscription.json
│   │   ├── initializer/
│   │   │   ├── deploy-manifest/
│   │   │   │   ├── database.yaml
│   │   │   │   ├── databaseOpsRequestHorizontalScaling.yaml
│   │   │   │   ├── databaseOpsRequestRestart.yaml
│   │   │   │   ├── databaseOpsRequestStart.yaml
│   │   │   │   ├── databaseOpsRequestStop.yaml
│   │   │   │   ├── databaseOpsRequestVerticalScaling.yaml
│   │   │   │   └── databaseOpsRequestVolumeExpansion.yaml
│   │   │   ├── initializer.module.ts
│   │   │   └── initializer.service.ts
│   │   ├── instance/
│   │   │   ├── instance-task.service.ts
│   │   │   ├── instance.module.ts
│   │   │   └── instance.service.ts
│   │   ├── interceptor/
│   │   │   ├── dto/
│   │   │   │   └── http-interceptor.dto.ts
│   │   │   ├── http-interceptor.service.ts
│   │   │   └── interceptor.module.ts
│   │   ├── log/
│   │   │   ├── entities/
│   │   │   │   └── function-log.ts
│   │   │   ├── log.controller.ts
│   │   │   └── log.module.ts
│   │   ├── main.ts
│   │   ├── monitor/
│   │   │   ├── dto/
│   │   │   │   └── query-metrics.dto.ts
│   │   │   ├── monitor.controller.ts
│   │   │   ├── monitor.module.ts
│   │   │   └── monitor.service.ts
│   │   ├── notification/
│   │   │   ├── entities/
│   │   │   │   └── notification.ts
│   │   │   ├── notification-task.service.ts
│   │   │   ├── notification-type.ts
│   │   │   ├── notification.controller.ts
│   │   │   ├── notification.module.ts
│   │   │   └── notification.service.ts
│   │   ├── recycle-bin/
│   │   │   ├── cloud-function/
│   │   │   │   ├── dto/
│   │   │   │   │   ├── delete-recycle-bin-functions.dto.ts
│   │   │   │   │   ├── get-recycle-bin-functions.dto.ts
│   │   │   │   │   └── restore-recycle-bin-functions.dto.ts
│   │   │   │   ├── function-recycle-bin.controller.ts
│   │   │   │   ├── function-recycle-bin.service.ts
│   │   │   │   └── interface/
│   │   │   │       └── function-recycle-bin-query.interface.ts
│   │   │   ├── entities/
│   │   │   │   └── recycle-bin.ts
│   │   │   └── recycle-bin.module.ts
│   │   ├── region/
│   │   │   ├── cluster/
│   │   │   │   ├── cluster.service.spec.ts
│   │   │   │   ├── cluster.service.ts
│   │   │   │   └── types.ts
│   │   │   ├── entities/
│   │   │   │   └── region.ts
│   │   │   ├── region.controller.ts
│   │   │   ├── region.module.ts
│   │   │   └── region.service.ts
│   │   ├── runtime-builtin-deps.ts
│   │   ├── setting/
│   │   │   ├── entities/
│   │   │   │   └── setting.ts
│   │   │   ├── setting.controller.ts
│   │   │   ├── setting.module.ts
│   │   │   └── setting.service.ts
│   │   ├── storage/
│   │   │   ├── bucket-task.service.ts
│   │   │   ├── bucket.controller.ts
│   │   │   ├── bucket.service.ts
│   │   │   ├── cloud-bin-bucket.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-bucket.dto.ts
│   │   │   │   └── update-bucket.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── minio.ts
│   │   │   │   ├── storage-bucket.ts
│   │   │   │   └── storage-user.ts
│   │   │   ├── minio/
│   │   │   │   ├── minio.service.ts
│   │   │   │   └── types.ts
│   │   │   ├── storage-usage-capture-task.service.ts
│   │   │   ├── storage-usage-limit-task.service.ts
│   │   │   ├── storage-user-task.service.ts
│   │   │   ├── storage.module.ts
│   │   │   └── storage.service.ts
│   │   ├── system-database.ts
│   │   ├── trigger/
│   │   │   ├── cron-job.service.ts
│   │   │   ├── dto/
│   │   │   │   ├── create-trigger.dto.ts
│   │   │   │   └── update-trigger.dto.ts
│   │   │   ├── entities/
│   │   │   │   └── cron-trigger.ts
│   │   │   ├── trigger-task.service.ts
│   │   │   ├── trigger.controller.ts
│   │   │   ├── trigger.module.ts
│   │   │   └── trigger.service.ts
│   │   ├── user/
│   │   │   ├── dto/
│   │   │   │   ├── bind-email.dto.ts
│   │   │   │   ├── bind-phone.dto.ts
│   │   │   │   ├── bind-username.dto.ts
│   │   │   │   ├── create-pat.dto.ts
│   │   │   │   └── update-avatar.dto.ts
│   │   │   ├── entities/
│   │   │   │   ├── pat.ts
│   │   │   │   ├── user-avatar.ts
│   │   │   │   ├── user-password.ts
│   │   │   │   ├── user-profile.ts
│   │   │   │   ├── user-quota.ts
│   │   │   │   └── user.ts
│   │   │   ├── pat.controller.ts
│   │   │   ├── pat.service.ts
│   │   │   ├── quota.service.ts
│   │   │   ├── user.controller.ts
│   │   │   ├── user.module.ts
│   │   │   └── user.service.ts
│   │   ├── utils/
│   │   │   ├── crypto.ts
│   │   │   ├── decorator.ts
│   │   │   ├── getter.ts
│   │   │   ├── interface.ts
│   │   │   ├── k8s-error.ts
│   │   │   ├── lang.ts
│   │   │   ├── number.ts
│   │   │   ├── p-limit.ts
│   │   │   ├── random.ts
│   │   │   └── response.ts
│   │   └── website/
│   │       ├── dto/
│   │       │   ├── create-website.dto.ts
│   │       │   └── update-website.dto.ts
│   │       ├── entities/
│   │       │   └── website.ts
│   │       ├── website.controller.ts
│   │       ├── website.module.ts
│   │       └── website.service.ts
│   ├── test/
│   │   ├── app.e2e-spec.ts
│   │   └── jest-e2e.json
│   ├── tsconfig.build.json
│   └── tsconfig.json
├── services/
│   └── runtime-exporter/
│       ├── .eslintrc
│       ├── .gitignore
│       ├── Dockerfile
│       ├── package.json
│       ├── src/
│       │   ├── config.ts
│       │   ├── handler/
│       │   │   ├── get-db-metrics.ts
│       │   │   └── get-runtime-metrics.ts
│       │   ├── helper/
│       │   │   └── cluster.service.ts
│       │   ├── index.ts
│       │   └── logger.ts
│       ├── tsconfig.dev.json
│       └── tsconfig.json
└── web/
    ├── .dockerignore
    ├── .eslintrc
    ├── .gitignore
    ├── .stylelintrc.json
    ├── .swagger.config.js
    ├── Dockerfile
    ├── README.md
    ├── index.html
    ├── nginx.conf
    ├── package.json
    ├── postcss.config.cjs
    ├── public/
    │   ├── js/
    │   │   └── monaco-editor.0.43.0/
    │   │       ├── base/
    │   │       │   ├── common/
    │   │       │   │   └── worker/
    │   │       │   │       ├── simpleWorker.nls.de.js
    │   │       │   │       ├── simpleWorker.nls.es.js
    │   │       │   │       ├── simpleWorker.nls.fr.js
    │   │       │   │       ├── simpleWorker.nls.it.js
    │   │       │   │       ├── simpleWorker.nls.ja.js
    │   │       │   │       ├── simpleWorker.nls.js
    │   │       │   │       ├── simpleWorker.nls.ko.js
    │   │       │   │       ├── simpleWorker.nls.ru.js
    │   │       │   │       ├── simpleWorker.nls.zh-cn.js
    │   │       │   │       └── simpleWorker.nls.zh-tw.js
    │   │       │   └── worker/
    │   │       │       └── workerMain.js
    │   │       ├── basic-languages/
    │   │       │   ├── abap/
    │   │       │   │   └── abap.js
    │   │       │   ├── apex/
    │   │       │   │   └── apex.js
    │   │       │   ├── azcli/
    │   │       │   │   └── azcli.js
    │   │       │   ├── bat/
    │   │       │   │   └── bat.js
    │   │       │   ├── bicep/
    │   │       │   │   └── bicep.js
    │   │       │   ├── cameligo/
    │   │       │   │   └── cameligo.js
    │   │       │   ├── clojure/
    │   │       │   │   └── clojure.js
    │   │       │   ├── coffee/
    │   │       │   │   └── coffee.js
    │   │       │   ├── cpp/
    │   │       │   │   └── cpp.js
    │   │       │   ├── csharp/
    │   │       │   │   └── csharp.js
    │   │       │   ├── csp/
    │   │       │   │   └── csp.js
    │   │       │   ├── css/
    │   │       │   │   └── css.js
    │   │       │   ├── cypher/
    │   │       │   │   └── cypher.js
    │   │       │   ├── dart/
    │   │       │   │   └── dart.js
    │   │       │   ├── dockerfile/
    │   │       │   │   └── dockerfile.js
    │   │       │   ├── ecl/
    │   │       │   │   └── ecl.js
    │   │       │   ├── elixir/
    │   │       │   │   └── elixir.js
    │   │       │   ├── flow9/
    │   │       │   │   └── flow9.js
    │   │       │   ├── freemarker2/
    │   │       │   │   └── freemarker2.js
    │   │       │   ├── fsharp/
    │   │       │   │   └── fsharp.js
    │   │       │   ├── go/
    │   │       │   │   └── go.js
    │   │       │   ├── graphql/
    │   │       │   │   └── graphql.js
    │   │       │   ├── handlebars/
    │   │       │   │   └── handlebars.js
    │   │       │   ├── hcl/
    │   │       │   │   └── hcl.js
    │   │       │   ├── html/
    │   │       │   │   └── html.js
    │   │       │   ├── ini/
    │   │       │   │   └── ini.js
    │   │       │   ├── java/
    │   │       │   │   └── java.js
    │   │       │   ├── javascript/
    │   │       │   │   └── javascript.js
    │   │       │   ├── julia/
    │   │       │   │   └── julia.js
    │   │       │   ├── kotlin/
    │   │       │   │   └── kotlin.js
    │   │       │   ├── less/
    │   │       │   │   └── less.js
    │   │       │   ├── lexon/
    │   │       │   │   └── lexon.js
    │   │       │   ├── liquid/
    │   │       │   │   └── liquid.js
    │   │       │   ├── lua/
    │   │       │   │   └── lua.js
    │   │       │   ├── m3/
    │   │       │   │   └── m3.js
    │   │       │   ├── markdown/
    │   │       │   │   └── markdown.js
    │   │       │   ├── mdx/
    │   │       │   │   └── mdx.js
    │   │       │   ├── mips/
    │   │       │   │   └── mips.js
    │   │       │   ├── msdax/
    │   │       │   │   └── msdax.js
    │   │       │   ├── mysql/
    │   │       │   │   └── mysql.js
    │   │       │   ├── objective-c/
    │   │       │   │   └── objective-c.js
    │   │       │   ├── pascal/
    │   │       │   │   └── pascal.js
    │   │       │   ├── pascaligo/
    │   │       │   │   └── pascaligo.js
    │   │       │   ├── perl/
    │   │       │   │   └── perl.js
    │   │       │   ├── pgsql/
    │   │       │   │   └── pgsql.js
    │   │       │   ├── php/
    │   │       │   │   └── php.js
    │   │       │   ├── pla/
    │   │       │   │   └── pla.js
    │   │       │   ├── postiats/
    │   │       │   │   └── postiats.js
    │   │       │   ├── powerquery/
    │   │       │   │   └── powerquery.js
    │   │       │   ├── powershell/
    │   │       │   │   └── powershell.js
    │   │       │   ├── protobuf/
    │   │       │   │   └── protobuf.js
    │   │       │   ├── pug/
    │   │       │   │   └── pug.js
    │   │       │   ├── python/
    │   │       │   │   └── python.js
    │   │       │   ├── qsharp/
    │   │       │   │   └── qsharp.js
    │   │       │   ├── r/
    │   │       │   │   └── r.js
    │   │       │   ├── razor/
    │   │       │   │   └── razor.js
    │   │       │   ├── redis/
    │   │       │   │   └── redis.js
    │   │       │   ├── redshift/
    │   │       │   │   └── redshift.js
    │   │       │   ├── restructuredtext/
    │   │       │   │   └── restructuredtext.js
    │   │       │   ├── ruby/
    │   │       │   │   └── ruby.js
    │   │       │   ├── rust/
    │   │       │   │   └── rust.js
    │   │       │   ├── sb/
    │   │       │   │   └── sb.js
    │   │       │   ├── scala/
    │   │       │   │   └── scala.js
    │   │       │   ├── scheme/
    │   │       │   │   └── scheme.js
    │   │       │   ├── scss/
    │   │       │   │   └── scss.js
    │   │       │   ├── shell/
    │   │       │   │   └── shell.js
    │   │       │   ├── solidity/
    │   │       │   │   └── solidity.js
    │   │       │   ├── sophia/
    │   │       │   │   └── sophia.js
    │   │       │   ├── sparql/
    │   │       │   │   └── sparql.js
    │   │       │   ├── sql/
    │   │       │   │   └── sql.js
    │   │       │   ├── st/
    │   │       │   │   └── st.js
    │   │       │   ├── swift/
    │   │       │   │   └── swift.js
    │   │       │   ├── systemverilog/
    │   │       │   │   └── systemverilog.js
    │   │       │   ├── tcl/
    │   │       │   │   └── tcl.js
    │   │       │   ├── twig/
    │   │       │   │   └── twig.js
    │   │       │   ├── typescript/
    │   │       │   │   └── typescript.js
    │   │       │   ├── vb/
    │   │       │   │   └── vb.js
    │   │       │   ├── wgsl/
    │   │       │   │   └── wgsl.js
    │   │       │   ├── xml/
    │   │       │   │   └── xml.js
    │   │       │   └── yaml/
    │   │       │       └── yaml.js
    │   │       ├── editor/
    │   │       │   ├── editor.main.css
    │   │       │   ├── editor.main.js
    │   │       │   ├── editor.main.nls.de.js
    │   │       │   ├── editor.main.nls.es.js
    │   │       │   ├── editor.main.nls.fr.js
    │   │       │   ├── editor.main.nls.it.js
    │   │       │   ├── editor.main.nls.ja.js
    │   │       │   ├── editor.main.nls.js
    │   │       │   ├── editor.main.nls.ko.js
    │   │       │   ├── editor.main.nls.ru.js
    │   │       │   ├── editor.main.nls.zh-cn.js
    │   │       │   └── editor.main.nls.zh-tw.js
    │   │       ├── language/
    │   │       │   ├── css/
    │   │       │   │   ├── cssMode.js
    │   │       │   │   └── cssWorker.js
    │   │       │   ├── html/
    │   │       │   │   ├── htmlMode.js
    │   │       │   │   └── htmlWorker.js
    │   │       │   ├── json/
    │   │       │   │   ├── jsonMode.js
    │   │       │   │   └── jsonWorker.js
    │   │       │   └── typescript/
    │   │       │       ├── tsMode.js
    │   │       │       └── tsWorker.js
    │   │       └── loader.js
    │   ├── locales/
    │   │   ├── en/
    │   │   │   └── translation.json
    │   │   ├── zh/
    │   │   │   └── translation.json
    │   │   └── zh-CN/
    │   │       └── translation.json
    │   └── robots.txt
    ├── src/
    │   ├── App.css
    │   ├── App.tsx
    │   ├── apis/
    │   │   ├── dependence.ts
    │   │   ├── typing.d.ts
    │   │   └── v1/
    │   │       ├── accounts.ts
    │   │       ├── api-auto.d.ts
    │   │       ├── applications.ts
    │   │       ├── apps.ts
    │   │       ├── auth.ts
    │   │       ├── billings.ts
    │   │       ├── function-templates.ts
    │   │       ├── group.ts
    │   │       ├── monitor.ts
    │   │       ├── notification.ts
    │   │       ├── pats.ts
    │   │       ├── recycle-bin.ts
    │   │       ├── regions.ts
    │   │       ├── resources.ts
    │   │       ├── runtimes.ts
    │   │       ├── settings.ts
    │   │       └── user.ts
    │   ├── chakraTheme.ts
    │   ├── chakraThemeDark.ts
    │   ├── components/
    │   │   ├── ChargeButton/
    │   │   │   └── index.tsx
    │   │   ├── ColorModeSwitch/
    │   │   │   └── index.tsx
    │   │   ├── CommonIcon/
    │   │   │   └── index.tsx
    │   │   ├── ConfirmButton/
    │   │   │   └── index.tsx
    │   │   ├── ConfirmDialog/
    │   │   │   └── index.tsx
    │   │   ├── Content/
    │   │   │   └── index.tsx
    │   │   ├── CopyText/
    │   │   │   └── index.tsx
    │   │   ├── DateRangePicker/
    │   │   │   ├── index.css
    │   │   │   └── index.tsx
    │   │   ├── DependenceList/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── DotBadge/
    │   │   │   └── index.tsx
    │   │   ├── EditableTable/
    │   │   │   ├── EditableTr/
    │   │   │   │   └── index.tsx
    │   │   │   ├── NormalTr/
    │   │   │   │   └── index.tsx
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── Editor/
    │   │   │   ├── CommonDiffEditor.tsx
    │   │   │   ├── ENVCodeEditor.tsx
    │   │   │   ├── ENVEditor.tsx
    │   │   │   ├── FunctionEditor.tsx
    │   │   │   ├── JSONEditor.tsx
    │   │   │   ├── JSONViewer.tsx
    │   │   │   ├── LanguageClient.ts
    │   │   │   ├── TSEditor.tsx
    │   │   │   ├── TextModel.tsx
    │   │   │   ├── index.css
    │   │   │   ├── index.scss
    │   │   │   ├── typesResolve/
    │   │   │   │   ├── globals.ts
    │   │   │   │   ├── index.ts
    │   │   │   │   ├── objectidType.ts
    │   │   │   │   ├── requestType.ts
    │   │   │   │   ├── responseType.ts
    │   │   │   │   ├── streamType.ts
    │   │   │   │   └── websocketType.ts
    │   │   │   └── useWorker.ts
    │   │   ├── EmptyBox/
    │   │   │   └── index.tsx
    │   │   ├── FileStatusIcon/
    │   │   │   └── index.tsx
    │   │   ├── FileTypeIcon/
    │   │   │   └── index.tsx
    │   │   ├── FileUpload/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── Grid/
    │   │   │   └── index.tsx
    │   │   ├── IconText/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── IconWrap/
    │   │   │   └── index.tsx
    │   │   ├── InputTag/
    │   │   │   └── index.tsx
    │   │   ├── LanguageSwitch/
    │   │   │   └── index.tsx
    │   │   ├── LogoIcon/
    │   │   │   └── index.tsx
    │   │   ├── Markdown/
    │   │   │   ├── codeLight.ts
    │   │   │   ├── formatLinkText.ts
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── MoreButton/
    │   │   │   └── index.tsx
    │   │   ├── Pagination/
    │   │   │   └── index.tsx
    │   │   ├── Panel/
    │   │   │   ├── Header.tsx
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── PopConfirm/
    │   │   │   └── index.tsx
    │   │   ├── Resize/
    │   │   │   └── index.tsx
    │   │   ├── SectionList/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── SendEmailCodeButton/
    │   │   │   └── index.tsx
    │   │   ├── SendSmsCodeButton/
    │   │   │   └── index.tsx
    │   │   ├── SmsCodeInput/
    │   │   │   └── index.tsx
    │   │   ├── TextButton/
    │   │   │   └── index.tsx
    │   │   └── UpgradePrompt/
    │   │       └── index.tsx
    │   ├── constants/
    │   │   ├── .gitkeep
    │   │   └── index.ts
    │   ├── hooks/
    │   │   ├── useAwsS3.ts
    │   │   ├── useCustomToast.ts
    │   │   ├── useDB.ts
    │   │   ├── useFunctionCache.ts
    │   │   ├── useHotKey.ts
    │   │   ├── useInviteCode.ts
    │   │   └── useResizable.ts
    │   ├── layouts/
    │   │   ├── Auth/
    │   │   │   ├── index.module.scss
    │   │   │   └── index.tsx
    │   │   ├── Basic/
    │   │   │   ├── RealNameWarn.tsx
    │   │   │   └── index.tsx
    │   │   ├── Function.tsx
    │   │   ├── Header/
    │   │   │   ├── UserBalance/
    │   │   │   │   └── index.tsx
    │   │   │   └── index.tsx
    │   │   └── Template.tsx
    │   ├── main.tsx
    │   ├── pages/
    │   │   ├── 403.tsx
    │   │   ├── 404.tsx
    │   │   ├── app/
    │   │   │   ├── collaboration/
    │   │   │   │   ├── CollaborateButton/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── Invited/
    │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   └── logo_invite.tsx
    │   │   │   │   └── service.ts
    │   │   │   ├── database/
    │   │   │   │   ├── BottomPanel/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── CollectionDataList/
    │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   └── mods/
    │   │   │   │   │       ├── ColPanel/
    │   │   │   │   │       │   └── index.tsx
    │   │   │   │   │       ├── DataPanel/
    │   │   │   │   │       │   ├── index.module.scss
    │   │   │   │   │       │   └── index.tsx
    │   │   │   │   │       └── IndexPanel/
    │   │   │   │   │           ├── addIndexModal/
    │   │   │   │   │           │   └── index.tsx
    │   │   │   │   │           └── index.tsx
    │   │   │   │   ├── CollectionListPanel/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── PolicyDataList/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── PolicyListPanel/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── RightComponent/
    │   │   │   │   │   ├── DeleteButton.tsx
    │   │   │   │   │   ├── EditBox.tsx
    │   │   │   │   │   └── List.tsx
    │   │   │   │   ├── index.tsx
    │   │   │   │   ├── mods/
    │   │   │   │   │   ├── AddDataModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── AddIndexModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── AddPolicyModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── AddRulesModal/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── policyTemplate.ts
    │   │   │   │   │   ├── CreateCollectionModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── DeleteCollectionModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   └── IndexModal/
    │   │   │   │   │       └── index.tsx
    │   │   │   │   ├── service.ts
    │   │   │   │   └── store.ts
    │   │   │   ├── functions/
    │   │   │   │   ├── index.tsx
    │   │   │   │   ├── mods/
    │   │   │   │   │   ├── AIChatPanel/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── BottomPanel/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── ConsolePanel/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── DebugPanel/
    │   │   │   │   │   │   ├── BodyParamsTab/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── HeaderParamsTab/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── QueryParamsTab/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── DependencePanel/
    │   │   │   │   │   │   ├── AddDependenceModal/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── DeployButton/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── EditorPanel/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── FunctionPanel/
    │   │   │   │   │   │   ├── ContextMenu/
    │   │   │   │   │   │   │   ├── index.scss
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── CreateModal/
    │   │   │   │   │   │   │   ├── functionTemplates.ts
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.css
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── HeadPanel/
    │   │   │   │   │   │   ├── FunctionDetailPopOver.tsx
    │   │   │   │   │   │   ├── index.css
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── RecycleBinModal/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── TriggerModal/
    │   │   │   │   │   │   ├── AddTriggerModal/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   └── VersionHistoryPanel/
    │   │   │   │   │       ├── FetchModal/
    │   │   │   │   │       │   └── index.tsx
    │   │   │   │   │       └── index.tsx
    │   │   │   │   ├── service.ts
    │   │   │   │   └── store.ts
    │   │   │   ├── index.tsx
    │   │   │   ├── mods/
    │   │   │   │   ├── SideBar/
    │   │   │   │   │   ├── Icons.tsx
    │   │   │   │   │   ├── index.module.scss
    │   │   │   │   │   └── index.tsx
    │   │   │   │   └── StatusBar/
    │   │   │   │       ├── LSPBar/
    │   │   │   │       │   └── index.tsx
    │   │   │   │       ├── LogsModal/
    │   │   │   │       │   ├── InitLog.tsx
    │   │   │   │       │   ├── index.scss
    │   │   │   │       │   ├── index.tsx
    │   │   │   │       │   └── initLog.scss
    │   │   │   │       ├── MonitorBar/
    │   │   │   │       │   └── index.tsx
    │   │   │   │       └── index.tsx
    │   │   │   ├── setting/
    │   │   │   │   ├── SysSetting/
    │   │   │   │   │   ├── AppEnvList/
    │   │   │   │   │   │   ├── EditTextarea/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── AppInfoList/
    │   │   │   │   │   │   ├── InfoDetail/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── AppMonitor/
    │   │   │   │   │   │   ├── AreaCard/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── PieCard/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── CommonSetting/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── CustomDomain/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── DatabaseMonitor/
    │   │   │   │   │   │   ├── AreaCard/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── PieCard/
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── UserSetting/
    │   │   │   │   │   ├── BillingDetails/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── CardRedemption/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── PATList/
    │   │   │   │   │   │   ├── DateSelector/
    │   │   │   │   │   │   │   ├── index.module.scss
    │   │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── PricingStandards/
    │   │   │   │   │   │   ├── PricingCard.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── RechargeHistory/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── Usage/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── UserInfo/
    │   │   │   │   │   │   ├── Mods/
    │   │   │   │   │   │   │   ├── AvatarEditor.tsx
    │   │   │   │   │   │   │   ├── EmailEditor.tsx
    │   │   │   │   │   │   │   ├── PasswordEditor.tsx
    │   │   │   │   │   │   │   ├── PhoneEditor.tsx
    │   │   │   │   │   │   │   └── UsernameEditor.tsx
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── UserInvite/
    │   │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   │   └── service.ts
    │   │   │   │   │   ├── index.tsx
    │   │   │   │   │   └── useTabMatch.tsx
    │   │   │   │   ├── index.css
    │   │   │   │   └── index.tsx
    │   │   │   └── storages/
    │   │   │       ├── index.tsx
    │   │   │       ├── mods/
    │   │   │       │   ├── CreateBucketModal/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── CreateFolderModal/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── CreateWebsiteModal/
    │   │   │       │   │   ├── SiteStatus.tsx
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── DeleteBucketModal/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── FileList/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── HostingDrawer/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── PathLink/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── StorageListPanel/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   ├── UploadButton/
    │   │   │       │   │   └── index.tsx
    │   │   │       │   └── index.module.scss
    │   │   │       ├── service.ts
    │   │   │       └── store.ts
    │   │   ├── auth/
    │   │   │   ├── bind/
    │   │   │   │   └── BindGitHub/
    │   │   │   │       └── index.tsx
    │   │   │   ├── reset-password/
    │   │   │   │   └── index.tsx
    │   │   │   ├── service.ts
    │   │   │   ├── signin/
    │   │   │   │   ├── index.tsx
    │   │   │   │   └── mods/
    │   │   │   │       ├── LoginByEmailPanel/
    │   │   │   │       │   └── index.tsx
    │   │   │   │       ├── LoginByPasswordPanel/
    │   │   │   │       │   └── index.tsx
    │   │   │   │       └── LoginByPhonePanel/
    │   │   │   │           └── index.tsx
    │   │   │   ├── signup/
    │   │   │   │   └── index.tsx
    │   │   │   └── store.ts
    │   │   ├── customSetting.ts
    │   │   ├── functionTemplate/
    │   │   │   ├── AllTemplateList/
    │   │   │   │   └── index.tsx
    │   │   │   ├── CreateFuncTemplate/
    │   │   │   │   ├── Mods/
    │   │   │   │   │   ├── AddDependenceModal.tsx
    │   │   │   │   │   ├── AddEnvironmentsModal.tsx
    │   │   │   │   │   └── AddFunctionModal.tsx
    │   │   │   │   └── index.tsx
    │   │   │   ├── FuncTemplateItem/
    │   │   │   │   ├── TemplateFunctionInfo.tsx
    │   │   │   │   └── index.tsx
    │   │   │   ├── Mods/
    │   │   │   │   ├── MonacoEditor/
    │   │   │   │   │   ├── FunctionPopover.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── TemplateCard/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── TemplateInfo/
    │   │   │   │   │   ├── SponsorModal/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── UseTemplate/
    │   │   │   │   │   │   ├── UseTemplateModal.tsx
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   └── TemplatePopover/
    │   │   │   │       └── TemplatePopover.tsx
    │   │   │   ├── MyTemplateList/
    │   │   │   │   └── index.tsx
    │   │   │   ├── index.tsx
    │   │   │   ├── service.ts
    │   │   │   └── store.ts
    │   │   ├── globalStore.ts
    │   │   ├── home/
    │   │   │   ├── index.tsx
    │   │   │   ├── mods/
    │   │   │   │   ├── CreateAppModal/
    │   │   │   │   │   ├── AutoscalingControl/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── BundleControl/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── BundleItem/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── DatabaseBundleControl/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   ├── RuntimeItem/
    │   │   │   │   │   │   └── index.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── DeleteAppModal/
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── Empty/
    │   │   │   │   │   ├── index.module.scss
    │   │   │   │   │   └── index.tsx
    │   │   │   │   ├── List/
    │   │   │   │   │   ├── BundleInfo.tsx
    │   │   │   │   │   └── index.tsx
    │   │   │   │   └── StatusBadge/
    │   │   │   │       ├── index.module.scss
    │   │   │   │       └── index.tsx
    │   │   │   └── service.ts
    │   │   ├── homepage/
    │   │   │   ├── ability.tsx
    │   │   │   ├── choice.tsx
    │   │   │   ├── circle.tsx
    │   │   │   ├── contact.tsx
    │   │   │   ├── footer.tsx
    │   │   │   ├── hero.tsx
    │   │   │   ├── homepage.css
    │   │   │   ├── index.tsx
    │   │   │   ├── joinus.tsx
    │   │   │   ├── navbar.tsx
    │   │   │   ├── smallcircle.tsx
    │   │   │   ├── status.module.scss
    │   │   │   ├── status.tsx
    │   │   │   └── video.tsx
    │   │   └── siteSetting.ts
    │   ├── routes/
    │   │   └── index.tsx
    │   ├── types/
    │   │   └── index.d.ts
    │   ├── utils/
    │   │   ├── .gitkeep
    │   │   ├── format.ts
    │   │   ├── getAvatarUrl.ts
    │   │   ├── getPageInfo.ts
    │   │   ├── getRegionById.ts
    │   │   ├── handleData.ts
    │   │   ├── i18n.ts
    │   │   ├── request.ts
    │   │   └── streamFetch.ts
    │   └── vite-env.d.ts
    ├── tailwind.config.cjs
    ├── tsconfig.json
    ├── tsconfig.node.json
    └── vite.config.ts
Copy disabled (too large) Download .txt
Showing preview only (73,631K chars total). Download the full file to get everything.
SYMBOL INDEX (23404 symbols across 681 files)

FILE: cli/src/action/application/index.ts
  function list (line 30) | async function list() {
  function getRegionMap (line 50) | async function getRegionMap(): Promise<Map<string, any>> {
  function init (line 59) | async function init(appid: string, options: { sync: boolean; basicMode: ...
  function initFunction (line 127) | function initFunction() {
  function initPolicy (line 160) | function initPolicy() {

FILE: cli/src/action/database/index.ts
  function exportDB (line 9) | async function exportDB(exportPath: string): Promise<void> {
  function importDB (line 19) | async function importDB(sourceAppid, importPath: string): Promise<void> {

FILE: cli/src/action/dependency/index.ts
  function add (line 16) | async function add(dependencyName: string, options: { targetVersion: str...
  function pull (line 37) | async function pull() {
  function pullOne (line 43) | async function pullOne(updateYaml = true) {
  function push (line 71) | async function push(options: { updatePackage: boolean }) {

FILE: cli/src/action/deploy/index.ts
  function deploy (line 12) | async function deploy() {

FILE: cli/src/action/environment/index.ts
  function pull (line 6) | async function pull(): Promise<void> {
  function push (line 13) | async function push(): Promise<void> {

FILE: cli/src/action/function/index.ts
  function create (line 26) | async function create(
  function list (line 48) | async function list() {
  function del (line 67) | async function del(funcName: string) {
  function pull (line 80) | async function pull(funcName: string) {
  function pullAll (line 94) | async function pullAll(options: { force: boolean }) {
  function pullOne (line 121) | async function pullOne(funcName: string) {
  function push (line 126) | async function push(funcName: string, isCreate: boolean) {
  function pushAll (line 151) | async function pushAll(options: { force: boolean }) {
  function pushOne (line 190) | async function pushOne(funcName: string) {
  function exec (line 204) | async function exec(
  function printLog (line 271) | async function printLog(appid: string, requestId: string) {
  function getLocalFuncs (line 283) | function getLocalFuncs(): string[] {
  function getLocalFunction (line 289) | function getLocalFunction(dir: string, prefix: string): string[] {
  function removeFunction (line 310) | function removeFunction(name: string) {

FILE: cli/src/action/policy/dto.ts
  type PolicyRule (line 1) | interface PolicyRule {
  type Rules (line 6) | interface Rules {

FILE: cli/src/action/policy/index.ts
  function list (line 22) | async function list() {
  function pullOne (line 34) | async function pullOne(policyName: string) {
  function pullAll (line 39) | async function pullAll() {
  function pull (line 50) | async function pull(policyName: string) {
  function pushOne (line 70) | async function pushOne(policyName: string) {
  function pushAll (line 84) | async function pushAll(options: { force: boolean }) {
  function push (line 124) | async function push(policyName: string, isCreate: boolean) {
  function getLocalPolicies (line 168) | function getLocalPolicies(): string[] {

FILE: cli/src/action/storage/index.ts
  function list (line 20) | async function list() {
  function create (line 43) | async function create(bucketName, options: { policy: string }) {
  function update (line 60) | async function update(bucketName, options: { policy: string }) {
  function del (line 76) | async function del(bucketName, options) {
  function pull (line 84) | async function pull(bucketName: string, outPath: string, options: { forc...
  function push (line 134) | async function push(bucketName: string, inPath: string, options: { force...
  function getDownloadFiles (line 196) | function getDownloadFiles(sourceFiles: { key: string; absPath: string }[...
  function getUploadFiles (line 208) | function getUploadFiles(sourceFiles: { key: string; absPath: string }[],...
  function getDeletedFiles (line 220) | function getDeletedFiles(sourceFiles: { key: string; absPath: string }[]...

FILE: cli/src/action/storage/s3.ts
  function getS3ClientV3 (line 3) | function getS3ClientV3(credentials: any): S3Client {

FILE: cli/src/action/trigger/index.ts
  function list (line 8) | async function list(): Promise<void> {
  function create (line 21) | async function create(name: string, target: string, cron: string): Promi...
  function del (line 33) | async function del(options: { id?: string; name?: string }): Promise<voi...

FILE: cli/src/action/user/index.ts
  function login (line 7) | async function login(pat: string) {
  function logout (line 32) | async function logout() {
  function list (line 42) | async function list() {
  function add (line 53) | async function add(name, options: { remote?: string }) {
  function del (line 75) | async function del(name: string) {
  function switchUser (line 87) | async function switchUser(name: string) {

FILE: cli/src/action/website/index.ts
  function list (line 13) | async function list() {
  function create (line 25) | async function create(bucketName: string, options: any) {
  function del (line 41) | async function del(bucketName: string, options: any) {
  function custom (line 58) | async function custom(bucketName: string, domain: string, options: any) {

FILE: cli/src/api/custom.ts
  function databaseControllerExport (line 3) | async function databaseControllerExport(appid: string): Promise<any> {
  function databaseControllerImport (line 11) | async function databaseControllerImport(appid: string, data: any): Promi...

FILE: cli/src/api/debug.ts
  function invokeFunction (line 4) | async function invokeFunction(

FILE: cli/src/api/pat.ts
  function pat2token (line 3) | async function pat2token(server: string, data: { pat: string }): Promise...

FILE: cli/src/api/v1/account.ts
  function accountControllerFindOne (line 20) | async function accountControllerFindOne(configParams: RequestParams = {}...
  function accountControllerGetChargeOrderAmount (line 36) | async function accountControllerGetChargeOrderAmount(
  function accountControllerGetChargeOrder (line 56) | async function accountControllerGetChargeOrder(id: string, configParams:...
  function accountControllerGetChargeRecords (line 72) | async function accountControllerGetChargeRecords(
  function accountControllerCharge (line 92) | async function accountControllerCharge(
  function accountControllerGetChargeRewardList (line 112) | async function accountControllerGetChargeRewardList(configParams: Reques...
  function accountControllerWechatNotify (line 127) | async function accountControllerWechatNotify(
  function accountControllerGiftCode (line 145) | async function accountControllerGiftCode(data: UseGiftCodeDto, configPar...
  function accountControllerInviteCode (line 162) | async function accountControllerInviteCode(configParams: RequestParams =...
  function accountControllerInviteCodeProfit (line 178) | async function accountControllerInviteCodeProfit(

FILE: cli/src/api/v1/application.ts
  function applicationControllerCreate (line 24) | async function applicationControllerCreate(
  function applicationControllerFindAll (line 44) | async function applicationControllerFindAll(configParams: RequestParams ...
  function applicationControllerFindOne (line 60) | async function applicationControllerFindOne(
  function applicationControllerDelete (line 79) | async function applicationControllerDelete(appid: string, configParams: ...
  function applicationControllerUpdateName (line 95) | async function applicationControllerUpdateName(
  function applicationControllerUpdateState (line 116) | async function applicationControllerUpdateState(
  function applicationControllerUpdateBundle (line 137) | async function applicationControllerUpdateBundle(
  function applicationControllerBindDomain (line 158) | async function applicationControllerBindDomain(
  function applicationControllerRemove (line 179) | async function applicationControllerRemove(appid: string, configParams: ...
  function applicationControllerCheckResolved (line 195) | async function applicationControllerCheckResolved(
  function environmentVariableControllerUpdateAll (line 216) | async function environmentVariableControllerUpdateAll(
  function environmentVariableControllerAdd (line 237) | async function environmentVariableControllerAdd(
  function environmentVariableControllerGet (line 258) | async function environmentVariableControllerGet(appid: string, configPar...
  function environmentVariableControllerDelete (line 274) | async function environmentVariableControllerDelete(
  function dependencyControllerAdd (line 294) | async function dependencyControllerAdd(
  function dependencyControllerUpdate (line 315) | async function dependencyControllerUpdate(
  function dependencyControllerGetDependencies (line 336) | async function dependencyControllerGetDependencies(
  function dependencyControllerRemove (line 355) | async function dependencyControllerRemove(

FILE: cli/src/api/v1/authentication.ts
  function userPasswordControllerSignup (line 22) | async function userPasswordControllerSignup(
  function userPasswordControllerSignin (line 41) | async function userPasswordControllerSignin(
  function userPasswordControllerReset (line 60) | async function userPasswordControllerReset(
  function userPasswordControllerCheck (line 79) | async function userPasswordControllerCheck(
  function phoneControllerSendCode (line 98) | async function phoneControllerSendCode(data: SendPhoneCodeDto, configPar...
  function phoneControllerSignin (line 114) | async function phoneControllerSignin(data: PhoneSigninDto, configParams:...
  function authenticationControllerGetProviders (line 130) | async function authenticationControllerGetProviders(configParams: Reques...
  function authenticationControllerPat2Token (line 145) | async function authenticationControllerPat2Token(
  function emailControllerSendCode (line 164) | async function emailControllerSendCode(data: SendEmailCodeDto, configPar...
  function patControllerCreate (line 181) | async function patControllerCreate(data: CreatePATDto, configParams: Req...
  function patControllerFindAll (line 198) | async function patControllerFindAll(configParams: RequestParams = {}): P...
  function patControllerRemove (line 214) | async function patControllerRemove(id: string, configParams: RequestPara...

FILE: cli/src/api/v1/billing.ts
  function billingControllerFindAll (line 18) | async function billingControllerFindAll(
  function billingControllerGetExpense (line 38) | async function billingControllerGetExpense(
  function billingControllerGetExpenseByDay (line 58) | async function billingControllerGetExpenseByDay(
  function resourceControllerCalculatePrice (line 77) | async function resourceControllerCalculatePrice(
  function resourceControllerGetResourceOptions (line 96) | async function resourceControllerGetResourceOptions(configParams: Reques...
  function resourceControllerGetResourceOptionsByRegionId (line 111) | async function resourceControllerGetResourceOptionsByRegionId(
  function resourceControllerGetResourceBundles (line 129) | async function resourceControllerGetResourceBundles(configParams: Reques...

FILE: cli/src/api/v1/data-contracts.ts
  type ResponseUtil (line 1) | interface ResponseUtil {
  type RuntimeImageGroup (line 6) | interface RuntimeImageGroup {
  type Runtime (line 12) | interface Runtime {
  type CloudFunction (line 22) | type CloudFunction = object
  type CreateFunctionDto (line 24) | interface CreateFunctionDto {
  type UpdateFunctionDebugDto (line 34) | interface UpdateFunctionDebugDto {
  type UpdateFunctionDto (line 38) | interface UpdateFunctionDto {
  type CompileFunctionDto (line 47) | interface CompileFunctionDto {
  type CloudFunctionHistorySource (line 52) | interface CloudFunctionHistorySource {
  type CloudFunctionHistory (line 56) | interface CloudFunctionHistory {
  type Region (line 65) | interface Region {
  type ApplicationBundleResource (line 77) | interface ApplicationBundleResource {
  type Autoscaling (line 99) | interface Autoscaling {
  type ApplicationBundle (line 107) | interface ApplicationBundle {
  type EnvironmentVariable (line 119) | interface EnvironmentVariable {
  type ApplicationConfiguration (line 124) | interface ApplicationConfiguration {
  type RuntimeDomain (line 135) | interface RuntimeDomain {
  type ApplicationWithRelations (line 148) | interface ApplicationWithRelations {
  type CreateAutoscalingDto (line 169) | interface CreateAutoscalingDto {
  type CreateApplicationDto (line 182) | interface CreateApplicationDto {
  type Application (line 199) | interface Application {
  type UpdateApplicationNameDto (line 215) | interface UpdateApplicationNameDto {
  type UpdateApplicationStateDto (line 219) | interface UpdateApplicationStateDto {
  type UpdateApplicationBundleDto (line 223) | interface UpdateApplicationBundleDto {
  type BindCustomDomainDto (line 235) | interface BindCustomDomainDto {
  type CreateEnvironmentDto (line 239) | interface CreateEnvironmentDto {
  type CreateBucketDto (line 244) | interface CreateBucketDto {
  type UpdateBucketDto (line 250) | interface UpdateBucketDto {
  type CreateCollectionDto (line 254) | interface CreateCollectionDto {
  type Collection (line 258) | interface Collection {
  type UpdateCollectionDto (line 266) | interface UpdateCollectionDto {
  type DatabasePolicyRule (line 271) | interface DatabasePolicyRule {
  type DatabasePolicyWithRules (line 283) | interface DatabasePolicyWithRules {
  type CreatePolicyDto (line 295) | interface CreatePolicyDto {
  type DatabasePolicy (line 299) | interface DatabasePolicy {
  type UpdatePolicyDto (line 310) | interface UpdatePolicyDto {
  type CreatePolicyRuleDto (line 314) | interface CreatePolicyRuleDto {
  type UpdatePolicyRuleDto (line 319) | interface UpdatePolicyRuleDto {
  type Account (line 323) | interface Account {
  type Number (line 334) | type Number = object
  type AccountChargeOrder (line 336) | interface AccountChargeOrder {
  type GetAccountChargeOrdersDto (line 352) | interface GetAccountChargeOrdersDto {
  type WeChatPaymentCreateOrderResult (line 369) | interface WeChatPaymentCreateOrderResult {
  type CreateChargeOrderOutDto (line 373) | interface CreateChargeOrderOutDto {
  type CreateChargeOrderDto (line 378) | interface CreateChargeOrderDto {
  type AccountChargeReward (line 387) | interface AccountChargeReward {
  type UseGiftCodeDto (line 398) | interface UseGiftCodeDto {
  type InviteCode (line 403) | interface InviteCode {
  type InviteCodeProfit (line 416) | interface InviteCodeProfit {
  type CreateWebsiteDto (line 427) | interface CreateWebsiteDto {
  type PasswdSignupDto (line 432) | interface PasswdSignupDto {
  type PasswdSigninDto (line 465) | interface PasswdSigninDto {
  type PasswdResetDto (line 478) | interface PasswdResetDto {
  type PasswdCheckDto (line 501) | interface PasswdCheckDto {
  type SendPhoneCodeDto (line 509) | interface SendPhoneCodeDto {
  type PhoneSigninDto (line 522) | interface PhoneSigninDto {
  type Pat2TokenDto (line 546) | interface Pat2TokenDto {
  type SendEmailCodeDto (line 554) | interface SendEmailCodeDto {
  type CreatePATDto (line 560) | interface CreatePATDto {
  type IdVerified (line 566) | interface IdVerified {
  type UserProfile (line 571) | interface UserProfile {
  type UserWithProfile (line 585) | interface UserWithProfile {
  type BindPhoneDto (line 597) | interface BindPhoneDto {
  type BindEmailDto (line 620) | interface BindEmailDto {
  type BindUsernameDto (line 629) | interface BindUsernameDto {
  type CreateTriggerDto (line 637) | interface CreateTriggerDto {
  type FunctionLog (line 643) | interface FunctionLog {
  type CreateDependencyDto (line 652) | interface CreateDependencyDto {
  type UpdateDependencyDto (line 657) | interface UpdateDependencyDto {
  type DeleteDependencyDto (line 662) | interface DeleteDependencyDto {
  type ApplicationBillingDetailItem (line 666) | interface ApplicationBillingDetailItem {
  type ApplicationBillingDetail (line 671) | interface ApplicationBillingDetail {
  type ApplicationBilling (line 679) | interface ApplicationBilling {
  type BillingsByDayDto (line 696) | interface BillingsByDayDto {
  type CalculatePriceResultDto (line 702) | interface CalculatePriceResultDto {
  type CalculatePriceDto (line 715) | interface CalculatePriceDto {
  type ResourceSpec (line 728) | interface ResourceSpec {
  type ResourceOption (line 733) | interface ResourceOption {
  type ResourceBundleSpecMap (line 745) | interface ResourceBundleSpecMap {
  type ResourceBundle (line 753) | interface ResourceBundle {
  type FunctionTemplateItemSource (line 768) | interface FunctionTemplateItemSource {
  type FunctionTemplateItems (line 773) | interface FunctionTemplateItems {
  type UserInfo (line 786) | interface UserInfo {
  type FunctionTemplatesDto (line 791) | interface FunctionTemplatesDto {
  type FunctionTemplateItemDto (line 811) | interface FunctionTemplateItemDto {
  type CreateFunctionTemplateDto (line 820) | interface CreateFunctionTemplateDto {
  type ObjectId (line 835) | type ObjectId = object
  type UpdateFunctionTemplateDto (line 837) | interface UpdateFunctionTemplateDto {
  type GetFunctionTemplateUsedByDto (line 854) | interface GetFunctionTemplateUsedByDto {
  type DeleteRecycleBinItemsDto (line 858) | interface DeleteRecycleBinItemsDto {
  type RestoreRecycleBinItemsDto (line 863) | interface RestoreRecycleBinItemsDto {
  type CloudFunctionSourceDto (line 868) | interface CloudFunctionSourceDto {
  type FunctionRecycleBinItemsDto (line 877) | interface FunctionRecycleBinItemsDto {
  type Group (line 892) | interface Group {
  type User (line 903) | interface User {
  type GetGroupInviteCodeDetailDto (line 914) | interface GetGroupInviteCodeDetailDto {
  type CreateGroupDto (line 919) | interface CreateGroupDto {
  type UpdateGroupDto (line 923) | interface UpdateGroupDto {
  type FindGroupInviteCodeDto (line 927) | interface FindGroupInviteCodeDto {
  type GroupInviteCode (line 931) | interface GroupInviteCode {
  type GenerateGroupInviteCodeDto (line 944) | interface GenerateGroupInviteCodeDto {
  type FindGroupMemberDto (line 948) | interface FindGroupMemberDto {
  type GroupMember (line 952) | interface GroupMember {
  type UpdateGroupMemberRoleDto (line 963) | interface UpdateGroupMemberRoleDto {
  type ApplicationControllerFindOneData (line 967) | type ApplicationControllerFindOneData = any
  type DatabaseControllerProxyData (line 969) | type DatabaseControllerProxyData = any
  type DatabaseControllerExportDatabaseData (line 971) | type DatabaseControllerExportDatabaseData = any
  type DatabaseControllerImportDatabaseData (line 973) | type DatabaseControllerImportDatabaseData = any
  type AccountControllerGetChargeOrderAmountParams (line 975) | interface AccountControllerGetChargeOrderAmountParams {
  type AccountControllerGetChargeRecordsParams (line 980) | interface AccountControllerGetChargeRecordsParams {
  type AccountControllerWechatNotifyData (line 990) | type AccountControllerWechatNotifyData = any
  type AccountControllerInviteCodeProfitParams (line 992) | interface AccountControllerInviteCodeProfitParams {
  type UserControllerGetAvatarData (line 997) | type UserControllerGetAvatarData = any
  type LogControllerGetLogsParams (line 999) | interface LogControllerGetLogsParams {
  type RegionControllerGetRegionsData (line 1011) | type RegionControllerGetRegionsData = any
  type SettingControllerGetSettingsData (line 1013) | type SettingControllerGetSettingsData = any
  type SettingControllerGetSettingByKeyData (line 1015) | type SettingControllerGetSettingByKeyData = any
  type BillingControllerFindAllParams (line 1017) | interface BillingControllerFindAllParams {
  type BillingControllerGetExpenseParams (line 1044) | interface BillingControllerGetExpenseParams {
  type BillingControllerGetExpenseByDayParams (line 1051) | interface BillingControllerGetExpenseByDayParams {
  type FunctionTemplateControllerGetAllFunctionTemplateParams (line 1058) | interface FunctionTemplateControllerGetAllFunctionTemplateParams {
  type FunctionTemplateControllerGetFunctionTemplateUsedByParams (line 1066) | interface FunctionTemplateControllerGetFunctionTemplateUsedByParams {
  type FunctionTemplateControllerGetMyFunctionTemplateParams (line 1073) | interface FunctionTemplateControllerGetMyFunctionTemplateParams {
  type FunctionTemplateControllerGetRecommendFunctionTemplateParams (line 1082) | interface FunctionTemplateControllerGetRecommendFunctionTemplateParams {
  type FunctionRecycleBinControllerGetRecycleBinParams (line 1090) | interface FunctionRecycleBinControllerGetRecycleBinParams {
  type MonitorControllerGetDataParams (line 1099) | interface MonitorControllerGetDataParams {

FILE: cli/src/api/v1/database.ts
  function collectionControllerCreate (line 21) | async function collectionControllerCreate(
  function collectionControllerFindAll (line 42) | async function collectionControllerFindAll(appid: string, configParams: ...
  function collectionControllerFindOne (line 58) | async function collectionControllerFindOne(
  function collectionControllerUpdate (line 78) | async function collectionControllerUpdate(
  function collectionControllerRemove (line 100) | async function collectionControllerRemove(
  function policyControllerCreate (line 120) | async function policyControllerCreate(
  function policyControllerFindAll (line 141) | async function policyControllerFindAll(appid: string, configParams: Requ...
  function policyControllerUpdate (line 157) | async function policyControllerUpdate(
  function policyControllerRemove (line 179) | async function policyControllerRemove(
  function databaseControllerProxy (line 199) | async function databaseControllerProxy(
  function policyRuleControllerCreate (line 219) | async function policyRuleControllerCreate(
  function policyRuleControllerFindAll (line 241) | async function policyRuleControllerFindAll(
  function policyRuleControllerUpdate (line 261) | async function policyRuleControllerUpdate(
  function policyRuleControllerRemove (line 284) | async function policyRuleControllerRemove(

FILE: cli/src/api/v1/function.ts
  function functionControllerCreate (line 19) | async function functionControllerCreate(
  function functionControllerFindAll (line 40) | async function functionControllerFindAll(appid: string, configParams: Re...
  function functionControllerFindOne (line 56) | async function functionControllerFindOne(
  function functionControllerUpdate (line 76) | async function functionControllerUpdate(
  function functionControllerRemove (line 98) | async function functionControllerRemove(
  function functionControllerUpdateDebug (line 118) | async function functionControllerUpdateDebug(
  function functionControllerCompile (line 140) | async function functionControllerCompile(
  function functionControllerGetHistory (line 162) | async function functionControllerGetHistory(
  function logControllerGetLogs (line 182) | async function logControllerGetLogs(

FILE: cli/src/api/v1/functiontemplate.ts
  function functionTemplateControllerCreateFunctionTemplate (line 20) | async function functionTemplateControllerCreateFunctionTemplate(
  function functionTemplateControllerGetAllFunctionTemplate (line 40) | async function functionTemplateControllerGetAllFunctionTemplate(
  function functionTemplateControllerUseFunctionTemplate (line 60) | async function functionTemplateControllerUseFunctionTemplate(
  function functionTemplateControllerUpdateFunctionTemplate (line 80) | async function functionTemplateControllerUpdateFunctionTemplate(
  function functionTemplateControllerDeleteFunctionTemplate (line 101) | async function functionTemplateControllerDeleteFunctionTemplate(
  function functionTemplateControllerGetOneFunctionTemplate (line 120) | async function functionTemplateControllerGetOneFunctionTemplate(
  function functionTemplateControllerStarFunctionTemplate (line 139) | async function functionTemplateControllerStarFunctionTemplate(
  function functionTemplateControllerGetUserFunctionTemplateStarState (line 158) | async function functionTemplateControllerGetUserFunctionTemplateStarState(
  function functionTemplateControllerGetFunctionTemplateUsedBy (line 177) | async function functionTemplateControllerGetFunctionTemplateUsedBy(
  function functionTemplateControllerGetMyFunctionTemplate (line 197) | async function functionTemplateControllerGetMyFunctionTemplate(
  function functionTemplateControllerGetRecommendFunctionTemplate (line 217) | async function functionTemplateControllerGetRecommendFunctionTemplate(

FILE: cli/src/api/v1/group.ts
  function groupControllerFindGroupByAppId (line 13) | async function groupControllerFindGroupByAppId(appid: string, configPara...
  function groupControllerFindGroupByInviteCode (line 29) | async function groupControllerFindGroupByInviteCode(
  function groupControllerFindAll (line 48) | async function groupControllerFindAll(configParams: RequestParams = {}):...
  function groupControllerCreate (line 64) | async function groupControllerCreate(data: CreateGroupDto, configParams:...
  function groupControllerDelete (line 81) | async function groupControllerDelete(groupId: string, configParams: Requ...
  function groupControllerFindOne (line 97) | async function groupControllerFindOne(groupId: string, configParams: Req...
  function groupControllerUpdateGroup (line 113) | async function groupControllerUpdateGroup(
  function groupInviteControllerGetInviteCode (line 134) | async function groupInviteControllerGetInviteCode(
  function groupInviteControllerGenerateInviteCode (line 153) | async function groupInviteControllerGenerateInviteCode(
  function groupInviteControllerDeleteInviteCode (line 174) | async function groupInviteControllerDeleteInviteCode(
  function groupMemberControllerFindMembers (line 194) | async function groupMemberControllerFindMembers(
  function groupMemberControllerAddMember (line 213) | async function groupMemberControllerAddMember(code: string, configParams...
  function groupMemberControllerRemoveMember (line 229) | async function groupMemberControllerRemoveMember(
  function groupMemberControllerUpdateMemberRole (line 249) | async function groupMemberControllerUpdateMemberRole(
  function groupMemberControllerLeaveGroup (line 271) | async function groupMemberControllerLeaveGroup(groupId: string, configPa...

FILE: cli/src/api/v1/monitor.ts
  function monitorControllerGetData (line 13) | async function monitorControllerGetData(

FILE: cli/src/api/v1/public.ts
  function appControllerGetRuntimes (line 16) | async function appControllerGetRuntimes(configParams: RequestParams = {}...
  function regionControllerGetRegions (line 31) | async function regionControllerGetRegions(
  function settingControllerGetSettings (line 48) | async function settingControllerGetSettings(
  function settingControllerGetSettingByKey (line 65) | async function settingControllerGetSettingByKey(

FILE: cli/src/api/v1/recyclebin.ts
  function functionRecycleBinControllerDeleteRecycleBinItems (line 17) | async function functionRecycleBinControllerDeleteRecycleBinItems(
  function functionRecycleBinControllerEmptyRecycleBin (line 38) | async function functionRecycleBinControllerEmptyRecycleBin(
  function functionRecycleBinControllerGetRecycleBin (line 57) | async function functionRecycleBinControllerGetRecycleBin(
  function functionRecycleBinControllerRestoreRecycleBinItems (line 77) | async function functionRecycleBinControllerRestoreRecycleBinItems(

FILE: cli/src/api/v1/storage.ts
  function bucketControllerCreate (line 13) | async function bucketControllerCreate(
  function bucketControllerFindAll (line 34) | async function bucketControllerFindAll(appid: string, configParams: Requ...
  function bucketControllerFindOne (line 50) | async function bucketControllerFindOne(
  function bucketControllerUpdate (line 70) | async function bucketControllerUpdate(
  function bucketControllerRemove (line 92) | async function bucketControllerRemove(

FILE: cli/src/api/v1/trigger.ts
  function triggerControllerCreate (line 13) | async function triggerControllerCreate(
  function triggerControllerFindAll (line 34) | async function triggerControllerFindAll(appid: string, configParams: Req...
  function triggerControllerRemove (line 50) | async function triggerControllerRemove(

FILE: cli/src/api/v1/user.ts
  function userControllerGetAvatar (line 13) | async function userControllerGetAvatar(
  function userControllerBindPhone (line 32) | async function userControllerBindPhone(data: BindPhoneDto, configParams:...
  function userControllerBindEmail (line 49) | async function userControllerBindEmail(data: BindEmailDto, configParams:...
  function userControllerBindUsername (line 66) | async function userControllerBindUsername(
  function userControllerGetProfile (line 86) | async function userControllerGetProfile(configParams: RequestParams = {}...

FILE: cli/src/api/v1/websitehosting.ts
  function websiteControllerCreate (line 13) | async function websiteControllerCreate(
  function websiteControllerFindAll (line 34) | async function websiteControllerFindAll(appid: string, configParams: Req...
  function websiteControllerFindOne (line 50) | async function websiteControllerFindOne(
  function websiteControllerBindDomain (line 70) | async function websiteControllerBindDomain(
  function websiteControllerRemove (line 92) | async function websiteControllerRemove(
  function websiteControllerCheckResolved (line 112) | async function websiteControllerCheckResolved(

FILE: cli/src/command/application/index.ts
  function command (line 4) | function command(): Command {

FILE: cli/src/command/database/index.ts
  function command (line 5) | function command(): Command {

FILE: cli/src/command/dependency/index.ts
  function command (line 5) | function command(): Command {

FILE: cli/src/command/deploy/index.ts
  function command (line 4) | function command(): Command {

FILE: cli/src/command/environment/index.ts
  function command (line 5) | function command(): Command {

FILE: cli/src/command/function/index.ts
  function command (line 5) | function command(): Command {

FILE: cli/src/command/policy/index.ts
  function command (line 5) | function command(): Command {

FILE: cli/src/command/storage/index.ts
  function command (line 5) | function command(): Command {

FILE: cli/src/command/trigger/index.ts
  function command (line 5) | function command(): Command {

FILE: cli/src/command/user/index.ts
  function loginCommand (line 4) | function loginCommand(): Command {
  function logoutCommand (line 14) | function logoutCommand(): Command {
  function command (line 24) | function command(): Command {

FILE: cli/src/command/website/index.ts
  function command (line 5) | function command(): Command {

FILE: cli/src/common/constant.ts
  constant TOKEN_EXPIRE (line 2) | const TOKEN_EXPIRE = 3600 * 24 * 7
  constant DEBUG_TOKEN_EXPIRE (line 5) | const DEBUG_TOKEN_EXPIRE = 3600 * 24 * 7
  constant STORAGE_TOKEN_EXPIRE (line 8) | const STORAGE_TOKEN_EXPIRE = 3600 * 24 * 7
  constant DEFAULT_REMOTE_SERVER (line 11) | const DEFAULT_REMOTE_SERVER = 'https://api.laf.run'
  constant TEMPLATE_DIR (line 14) | const TEMPLATE_DIR = 'template'
  constant TYPE_DIR (line 15) | const TYPE_DIR = 'types'
  constant GLOBAL_FILE (line 16) | const GLOBAL_FILE = 'global.d.ts'
  constant PACKAGE_FILE (line 17) | const PACKAGE_FILE = 'package.json'
  constant TSCONFIG_FILE (line 18) | const TSCONFIG_FILE = 'tsconfig.json'
  constant GITIGNORE_FILE (line 19) | const GITIGNORE_FILE = 'gitignore'
  constant APP_SCHEMA_NAME (line 22) | const APP_SCHEMA_NAME = '.app.yaml'
  constant PROJECT_SCHEMA_NAME (line 23) | const PROJECT_SCHEMA_NAME = 'laf.yaml'
  constant USER_SCHEMA_NAME (line 24) | const USER_SCHEMA_NAME = 'user.yaml'
  constant FUNCTION_SCHEMA_DIRECTORY (line 25) | const FUNCTION_SCHEMA_DIRECTORY = 'functions'
  constant FUNCTION_SCHEMA_SUFFIX (line 26) | const FUNCTION_SCHEMA_SUFFIX = '.yaml'
  constant DEPLOY_SCHEMA_NAME (line 27) | const DEPLOY_SCHEMA_NAME = 'deploy.yaml'
  constant ENVIRONMENT_SCHEMA_NAME (line 28) | const ENVIRONMENT_SCHEMA_NAME = '.env'
  constant IGNORE_FILE_NAME (line 30) | const IGNORE_FILE_NAME = '.gitignore'
  constant POLICIES_DIRECTORY_NAME (line 31) | const POLICIES_DIRECTORY_NAME = 'policies'
  constant DEFAULT_SERVER (line 33) | const DEFAULT_SERVER = 'https://api.laf.run'

FILE: cli/src/common/hook.ts
  function checkApplication (line 3) | function checkApplication() {
  function checkFunctionDebugToken (line 10) | async function checkFunctionDebugToken() {
  function checkStorageToken (line 19) | async function checkStorageToken() {

FILE: cli/src/common/prompts.ts
  function confirm (line 3) | async function confirm(message: string) {

FILE: cli/src/common/wait.ts
  function waitApplicationState (line 7) | async function waitApplicationState(targetState: string) {

FILE: cli/src/schema/app.ts
  class AppSchema (line 7) | class AppSchema {
    method read (line 23) | static read(): AppSchema {
    method write (line 28) | static write(schema: AppSchema): void {
    method exist (line 33) | static exist(): boolean {
    method refresh (line 38) | static async refresh() {

FILE: cli/src/schema/deploy.ts
  class DeploySchema (line 6) | class DeploySchema {
    method read (line 18) | static read(): DeploySchema {
    method exist (line 23) | static exist(): boolean {
  class BucketResource (line 29) | class BucketResource {
  class WebsiteResource (line 34) | class WebsiteResource {
  class BucketAction (line 39) | class BucketAction {

FILE: cli/src/schema/environment.ts
  class EnvironmentSchema (line 8) | class EnvironmentSchema {
    method read (line 11) | static read(): EnvironmentVariable[] {
    method write (line 28) | static write(env: EnvironmentVariable[]): void {
  type EnvironmentVariable (line 38) | interface EnvironmentVariable {

FILE: cli/src/schema/function.ts
  class FunctionSchema (line 7) | class FunctionSchema {
    method read (line 13) | static read(name: string): FunctionSchema {
    method write (line 18) | static write(name: string, schema: FunctionSchema): void {
    method exist (line 29) | static exist(name: string): boolean {
    method delete (line 34) | static delete(name: string) {

FILE: cli/src/schema/project.ts
  class ProjectSchema (line 6) | class ProjectSchema {
    method read (line 23) | static read(): ProjectSchema {
    method write (line 28) | static write(schema: ProjectSchema) {
    method exist (line 33) | static exist() {

FILE: cli/src/schema/user.ts
  class UserSchema (line 6) | class UserSchema {
    method getCurrentUser (line 16) | static getCurrentUser() {
    method refreshToken (line 21) | static async refreshToken() {
    method read (line 38) | static read(): UserSchema {
    method write (line 54) | static write(schema: UserSchema) {
    method exist (line 61) | static exist() {

FILE: cli/src/util/file.ts
  function exist (line 6) | function exist(fp: string): boolean {
  function remove (line 10) | function remove(fp: string) {
  function ensureDirectory (line 14) | function ensureDirectory(dir: string) {
  function loadYamlFile (line 22) | function loadYamlFile(filePath: string): any {
  function writeYamlFile (line 28) | function writeYamlFile(filePath: string, data: any) {
  function readDirectoryRecursive (line 33) | function readDirectoryRecursive(dir: string): string[] {
  function compareFileMD5 (line 49) | function compareFileMD5(sourceFile: string, bucketObject: any) {

FILE: cli/src/util/format.ts
  function formatDate (line 3) | function formatDate(
  function formatSize (line 10) | function formatSize(size: number) {

FILE: cli/src/util/print.ts
  function getEmoji (line 3) | function getEmoji(value: any) {

FILE: cli/src/util/request.ts
  type RequestParams (line 98) | type RequestParams = any

FILE: cli/src/util/sys.ts
  function getAppPath (line 3) | function getAppPath(): string {
  function getBaseDir (line 7) | function getBaseDir(): string {

FILE: cli/template/global.d.ts
  type FunctionContext (line 4) | interface FunctionContext {
  class IncomingMessage (line 70) | class IncomingMessage extends Readable {
  type HttpRequest (line 276) | interface HttpRequest extends IncomingMessage {
  class OutgoingMessage (line 553) | class OutgoingMessage extends Writable {
  class ServerResponse (line 684) | class ServerResponse extends OutgoingMessage {
  type HttpResponse (line 700) | interface HttpResponse extends ServerResponse {
  class WebSocket (line 1077) | class WebSocket extends EventEmitter {

FILE: docs/public/fancybox.umd.js
  function e (line 2) | function e(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){va...
  function i (line 2) | function i(t){for(var i=1;i<arguments.length;i++){var n=null!=arguments[...
  function n (line 2) | function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbo...
  function o (line 2) | function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a ...
  function a (line 2) | function a(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.en...
  function s (line 2) | function s(t,e,i){return e&&a(t.prototype,e),i&&a(t,i),Object.defineProp...
  function r (line 2) | function r(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enume...
  function l (line 2) | function l(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("S...
  function c (line 2) | function c(t){return c=Object.setPrototypeOf?Object.getPrototypeOf:funct...
  function h (line 2) | function h(t,e){return h=Object.setPrototypeOf||function(t,e){return t._...
  function d (line 2) | function d(t){if(void 0===t)throw new ReferenceError("this hasn't been i...
  function u (line 2) | function u(t,e){if(e&&("object"==typeof e||"function"==typeof e))return ...
  function f (line 2) | function f(t){var e=function(){if("undefined"==typeof Reflect||!Reflect....
  function v (line 2) | function v(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==...
  function p (line 2) | function p(){return p="undefined"!=typeof Reflect&&Reflect.get?Reflect.g...
  function g (line 2) | function g(t,e){return function(t){if(Array.isArray(t))return t}(t)||fun...
  function m (line 2) | function m(t){return function(t){if(Array.isArray(t))return b(t)}(t)||fu...
  function y (line 2) | function y(t,e){if(t){if("string"==typeof t)return b(t,e);var i=Object.p...
  function b (line 2) | function b(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Ar...
  function x (line 2) | function x(t,e){var i="undefined"!=typeof Symbol&&t[Symbol.iterator]||t[...
  function t (line 2) | function t(e){o(this,t),this.observables=[],this.boundCheck=this.check.b...
  function t (line 2) | function t(e){var i=this,n=arguments.length>1&&void 0!==arguments[1]?arg...
  function t (line 2) | function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function n (line 2) | function n(t){var i,a=arguments.length>1&&void 0!==arguments[1]?argument...
  function t (line 2) | function t(e){o(this,t),this.$container=null,this.$prev=null,this.$next=...
  function t (line 2) | function t(e){o(this,t),this.carousel=e,this.$list=null,this.events={cha...
  function t (line 2) | function t(e){o(this,t),this.carousel=e,this.selectedIndex=null,this.fri...
  function n (line 2) | function n(t){var i,a=arguments.length>1&&void 0!==arguments[1]?argument...
  method preventScroll (line 2) | get preventScroll(){return j=!0,!1}
  function t (line 2) | function t(e){o(this,t),this.fancybox=e,this.viewport=null,this.pendingU...
  function t (line 2) | function t(e){o(this,t),this.fancybox=e,this.$container=null,this.state=...
  function t (line 2) | function t(e){o(this,t),this.fancybox=e;for(var i=0,n=["onInit","onReady...
  function t (line 2) | function t(e){o(this,t),this.fancybox=e;for(var i=0,n=["onReady","onClos...
  function t (line 2) | function t(e){o(this,t),this.fancybox=e;for(var i=0,n=["onChange","onClo...
  function i (line 2) | function i(){window.addEventListener("hashchange",t.onHashChange,!1),t.s...
  function t (line 2) | function t(e){o(this,t),this.fancybox=e,this.active=!1,this.handleVisibi...
  function t (line 2) | function t(e){var i=this;o(this,t),this.fancybox=e,this.$container=null,...
  function i (line 2) | function i(t){var n,a=arguments.length>1&&void 0!==arguments[1]?argument...
  function n (line 2) | function n(){document.body.addEventListener("click",i.fromEvent,!1)}

FILE: e2e/api.ts
  function EnsureTestToken (line 12) | async function EnsureTestToken() {
  function GetTestApplication (line 32) | async function GetTestApplication() {
  function ClearTestApplications (line 51) | async function ClearTestApplications() {
  function ClearTestUser (line 68) | async function ClearTestUser(username: string) {
  function GetRegion (line 83) | async function GetRegion() {
  function GetRuntime (line 94) | async function GetRuntime() {

FILE: e2e/config.ts
  class Config (line 5) | class Config {
    method DOMAIN (line 6) | static get DOMAIN() {
    method API_ENDPOINT (line 11) | static get API_ENDPOINT() {
    method MONGO_URI (line 15) | static get MONGO_URI() {
    method TEST_USERNAME (line 20) | static get TEST_USERNAME() {
    method TEST_PASSWORD (line 24) | static get TEST_PASSWORD() {
    method TEST_APP_NAME (line 28) | static get TEST_APP_NAME() {
    method TEST_APPID (line 32) | static get TEST_APPID() {

FILE: e2e/jest-sequencer.js
  class CustomSequencer (line 4) | class CustomSequencer extends TestSequencer {
    method sort (line 5) | sort(tests) {

FILE: e2e/system-db.ts
  function getDbClient (line 4) | async function getDbClient() {
  function getDb (line 10) | async function getDb() {

FILE: packages/client-sdk/src/cloud.ts
  type GlobalObjectType (line 8) | interface GlobalObjectType {
  class Cloud (line 16) | class Cloud {
    method requestClass (line 22) | private get requestClass() {
    method constructor (line 54) | constructor(config: CloudOptions) {
    method database (line 79) | database() {
    method invokeFunction (line 93) | async invokeFunction<T = any>(functionName: string, data?: any): Promi...
    method invoke (line 106) | async invoke<T = any>(functionName: string, data?: any): Promise<T> {

FILE: packages/client-sdk/src/index.ts
  function setGlobalThis (line 5) | function setGlobalThis() {
  function init (line 43) | function init(config: CloudOptions): Cloud {

FILE: packages/client-sdk/src/request/request-taro.ts
  type GlobalObjectType (line 4) | interface GlobalObjectType {
  class TaroRequest (line 13) | class TaroRequest extends Request {
    method constructor (line 14) | constructor(config: CloudOptions) {
    method request (line 24) | async request(url: string, data: any, _options?: any) {

FILE: packages/client-sdk/src/request/request-uni.ts
  type GlobalObjectType (line 4) | interface GlobalObjectType {
  class UniRequest (line 13) | class UniRequest extends Request {
    method constructor (line 14) | constructor(config: CloudOptions) {
    method request (line 24) | async request(url: string, data: any, _options?: any) {

FILE: packages/client-sdk/src/request/request-wxmp.ts
  type GlobalObjectType (line 4) | interface GlobalObjectType {
  class WxmpRequest (line 13) | class WxmpRequest extends Request {
    method constructor (line 14) | constructor(config: CloudOptions) {
    method request (line 24) | async request(url: string, data: any, _options?: any) {

FILE: packages/client-sdk/src/request/request.ts
  class Request (line 7) | class Request implements RequestInterface {
    method constructor (line 9) | constructor(options: CloudOptions) {
    method send (line 20) | async send(action: string, data: object) {
    method request (line 46) | async request(url: string, data: any): Promise<any> {
    method getHeaders (line 67) | protected getHeaders(token: string, headers?: object) {

FILE: packages/client-sdk/src/types.ts
  type RequestInterface (line 3) | interface RequestInterface extends BaseRequestInterface {
  type EnvironmentType (line 7) | enum EnvironmentType {
  type GetAccessTokenFuncType (line 14) | type GetAccessTokenFuncType = () => string
  type CloudOptions (line 16) | interface CloudOptions {
  type UploadFileOption (line 71) | interface UploadFileOption {
  type UploadFile (line 113) | interface UploadFile {

FILE: packages/client-sdk/tests/_app.js
  function parseToken (line 67) | function parseToken(_token) {

FILE: packages/client-sdk/tests/units/cloud_test.js
  function getAccessToken (line 5) | function getAccessToken() {

FILE: packages/cloud-sdk/src/cloud.interface.ts
  type InvokeFunctionType (line 8) | type InvokeFunctionType = (
  type GetTokenFunctionType (line 12) | type GetTokenFunctionType = (payload: any, secret?: string) => string
  type ParseTokenFunctionType (line 13) | type ParseTokenFunctionType = (
  type MongoDriverObject (line 18) | interface MongoDriverObject {
  type CloudSdkInterface (line 23) | interface CloudSdkInterface {

FILE: packages/cloud-sdk/src/cloud.ts
  class Cloud (line 13) | class Cloud implements CloudSdkInterface {
    method cloud (line 22) | private get cloud(): CloudSdkInterface {
    method database (line 40) | database(): Db {
    method shared (line 60) | get shared(): Map<string, any> {
    method mongo (line 64) | get mongo(): MongoDriverObject {
    method sockets (line 68) | get sockets(): Set<WebSocket> {
    method appid (line 72) | get appid(): string {
    method env (line 79) | get env() {

FILE: packages/cloud-sdk/src/function.interface.ts
  type RequireFuncType (line 5) | type RequireFuncType = (module: string) => any
  type FunctionContext (line 10) | interface FunctionContext {
  type FunctionResult (line 33) | interface FunctionResult {
  type FunctionStatus (line 39) | enum FunctionStatus {
  type CloudFunctionSource (line 48) | type CloudFunctionSource = {
  type ICloudFunctionData (line 60) | interface ICloudFunctionData {
  type File (line 75) | interface File {

FILE: packages/cloud-sdk/src/storage.ts
  type NodeJsRuntimeStreamingBlobPayloadOutputTypes (line 20) | type NodeJsRuntimeStreamingBlobPayloadOutputTypes = SdkStream<
  type SdkStream (line 23) | type SdkStream<BaseStream> = BaseStream & SdkStreamMixin
  type SdkStreamMixin (line 25) | interface SdkStreamMixin {
  type ResponseMetadata (line 31) | interface ResponseMetadata {
  type ExtendGetObjectCommandOutput (line 60) | interface ExtendGetObjectCommandOutput extends GetObjectCommandOutput {
  type ExtendPutObjectCommandOutput (line 65) | interface ExtendPutObjectCommandOutput extends PutObjectCommandOutput {
  type ExtendDeleteObjectCommandOutput (line 69) | interface ExtendDeleteObjectCommandOutput
  type ExtendListObjectsCommandOutput (line 74) | interface ExtendListObjectsCommandOutput
  class CloudStorage (line 82) | class CloudStorage {
    method appid (line 86) | protected get appid() {
    method externalEndpoint (line 91) | public get externalEndpoint() {
    method internalEndpoint (line 99) | public get internalEndpoint() {
    method getExternalS3Client (line 113) | public getExternalS3Client() {
    method getInternalS3Client (line 142) | public getInternalS3Client() {
    method bucket (line 170) | bucket(bucketName: string): CloudStorageBucket {
  class CloudStorageBucket (line 180) | class CloudStorageBucket {
    method constructor (line 184) | constructor(storage: CloudStorage, name: string) {
    method readFile (line 199) | public async readFile(
    method writeFile (line 224) | public async writeFile(
    method deleteFile (line 250) | public async deleteFile(
    method listFiles (line 273) | public async listFiles(options?: Omit<ListObjectsCommandInput, 'Bucket...
    method externalUrl (line 291) | public externalUrl(filename: string) {
    method internalUrl (line 303) | public internalUrl(filename: string) {
    method getUploadUrl (line 315) | public async getUploadUrl(
    method getDownloadUrl (line 340) | public async getDownloadUrl(

FILE: packages/cloud-sdk/src/util.ts
  constant IS_SEALAF (line 1) | const IS_SEALAF = process.env.IS_SEALAF === 'true'

FILE: packages/database-proxy/src/accessor/accessor.ts
  type ReadResult (line 3) | interface ReadResult {
  type UpdateResult (line 10) | interface UpdateResult {
  type AddResult (line 16) | interface AddResult {
  type RemoveResult (line 21) | interface RemoveResult {
  type CountResult (line 25) | interface CountResult {
  type CreateIndexResult (line 29) | interface CreateIndexResult {
  type DropIndexResult (line 33) | interface DropIndexResult {
  type ListIndexesResult (line 37) | interface ListIndexesResult {
  type AccessorInterface (line 41) | interface AccessorInterface {

FILE: packages/database-proxy/src/accessor/mongo.ts
  class MongoAccessor (line 23) | class MongoAccessor implements AccessorInterface {
    method db (line 29) | get db() {
    method logger (line 35) | get logger() {
    method setLogger (line 42) | setLogger(logger: LoggerInterface) {
    method constructor (line 46) | constructor(client: MongoClient) {
    method emit (line 50) | emit(event: string | symbol, ...args: any[]): boolean {
    method once (line 54) | once(event: string | symbol, listener: (...args: any[]) => void): void {
    method removeAllListeners (line 58) | removeAllListeners(event?: string | symbol): void {
    method on (line 62) | on(event: string | symbol, listener: (...args: any[]) => void): void {
    method off (line 66) | off(event: string | symbol, listener: (...args: any[]) => void): void {
    method close (line 70) | async close() {
    method execute (line 75) | async execute(
    method get (line 125) | async get(collection: string, query: Filter<any>): Promise<any> {
    method emitResult (line 135) | protected emitResult(params: Params, result: any) {
    method read (line 145) | protected async read(
    method aggregate (line 196) | protected async aggregate(
    method update (line 220) | protected async update(
    method add (line 305) | protected async add(collection: string, params: Params): Promise<AddRe...
    method remove (line 347) | protected async remove(
    method count (line 380) | protected async count(
    method processOrder (line 404) | protected processOrder(order: Order[]) {
    method generateDocId (line 417) | protected generateDocId(): string {
    method serializeBson (line 428) | protected serializeBson(bsonDoc: any) {
    method deserializedEjson (line 438) | protected deserializedEjson(ejsonDoc: any) {
    method processAggregateStages (line 447) | protected processAggregateStages(stages: AggregateStage[]) {
    method createIndex (line 462) | protected async createIndex(
    method dropIndex (line 497) | protected async dropIndex(
    method listIndexes (line 527) | protected async listIndexes(

FILE: packages/database-proxy/src/accessor/mysql.ts
  class MysqlAccessor (line 26) | class MysqlAccessor implements AccessorInterface {
    method logger (line 34) | get logger() {
    method setLogger (line 41) | setLogger(logger: LoggerInterface) {
    method conn (line 45) | get conn(): Pool {
    method constructor (line 49) | constructor(options?: ConnectionOptions) {
    method emit (line 56) | emit(event: string | symbol, ...args: any[]): boolean {
    method once (line 60) | once(event: string | symbol, listener: (...args: any[]) => void): void {
    method removeAllListeners (line 64) | removeAllListeners(event?: string | symbol): void {
    method on (line 68) | on(event: string | symbol, listener: (...args: any[]) => void): void {
    method off (line 72) | off(event: string | symbol, listener: (...args: any[]) => void): void {
    method close (line 76) | async close() {
    method execute (line 81) | async execute(
    method get (line 117) | async get(collection: string, query: any): Promise<any> {
    method read (line 129) | protected async read(
    method update (line 149) | protected async update(
    method add (line 167) | protected async add(_collection: string, params: Params): Promise<AddR...
    method remove (line 185) | protected async remove(
    method count (line 200) | protected async count(

FILE: packages/database-proxy/src/accessor/sql_builder.ts
  class SqlBuilder (line 16) | class SqlBuilder {
    method constructor (line 20) | constructor(params: Params) {
    method from (line 25) | static from(params: Params): SqlBuilder {
    method table (line 29) | get table(): string {
    method query (line 33) | get query(): any {
    method projection (line 37) | get projection(): any {
    method orders (line 41) | get orders(): Order[] {
    method data (line 45) | get data(): any {
    method joins (line 49) | get joins(): JoinParam[] {
    method select (line 53) | select() {
    method update (line 68) | update() {
    method delete (line 87) | delete() {
    method insert (line 103) | insert() {
    method count (line 111) | count() {
    method addValues (line 123) | protected addValues(values: any[]) {
    method buildJoins (line 128) | protected buildJoins(): string {
    method checkJoinType (line 155) | protected checkJoinType(joinType: string): boolean {
    method buildQuery (line 166) | protected buildQuery(): string {
    method buildUpdateData (line 192) | protected buildUpdateData(): string {
    method buildInsertData (line 269) | protected buildInsertData(): string {
    method _buildData (line 287) | protected _buildData(): { fields: string[]; values: any[] } {
    method buildOrder (line 301) | protected buildOrder(): string {
    method buildLimit (line 315) | protected buildLimit(_limit?: number): string {
    method buildProjection (line 329) | protected buildProjection(): string {
    method values (line 346) | protected values(): any[] {
    method isBasicValue (line 351) | protected isBasicValue(value) {
    method checkData (line 360) | protected checkData() {
    method checkField (line 377) | protected checkField(field_name: string) {
    method checkProjection (line 382) | protected checkProjection(name: string) {
  class SqlQueryBuilder (line 392) | class SqlQueryBuilder {
    method constructor (line 396) | constructor(query: any) {
    method from (line 400) | static from(query: any) {
    method build (line 405) | build(): string | null {
    method values (line 426) | values(): any[] {
    method buildOne (line 431) | protected buildOne(key: string, value: any) {
    method processLogicOperator (line 468) | protected processLogicOperator(operator: string, value: any[]) {
    method processBasicValue (line 509) | protected processBasicValue(
    method processQueryOperator (line 541) | protected processQueryOperator(field: string, value: any) {
    method addValue (line 562) | protected addValue(value: any) {
    method isBasicValue (line 567) | protected isBasicValue(value) {
    method isLogicOperator (line 573) | protected isLogicOperator(key: string) {
    method isQueryOperator (line 579) | protected isQueryOperator(key: string) {
    method isOperator (line 585) | protected isOperator(key: string) {
    method getQueryOperators (line 591) | protected getQueryOperators(): string[] {
    method hasNestedFieldInQuery (line 601) | public hasNestedFieldInQuery() {
    method hasObjectIn (line 621) | protected hasObjectIn(object: any) {
    method mapQueryOperator (line 632) | protected mapQueryOperator(operator: string) {
    method mapLogicOperator (line 673) | protected mapLogicOperator(operator: string) {
    method checkField (line 693) | protected checkField(field_name) {
  class SecurityCheck (line 702) | class SecurityCheck {
    method checkField (line 704) | static checkField(name: string): boolean {
    method checkProjection (line 732) | static checkProjection(name: string): boolean {
    method containStrs (line 753) | static containStrs(source: string, str_list: string[]): boolean {
    method isLogicOperator (line 762) | static isLogicOperator(key: string): boolean {
    method isQueryOperator (line 768) | static isQueryOperator(key: string): boolean {
    method isOperator (line 774) | static isOperator(key: string): boolean {

FILE: packages/database-proxy/src/dbi/index.ts
  function getDb (line 5) | function getDb(accessor: AccessorInterface): Db {

FILE: packages/database-proxy/src/dbi/request.ts
  class Request (line 7) | class Request implements RequestInterface {
    method constructor (line 10) | constructor(accessor: AccessorInterface) {
    method send (line 14) | async send(action: ActionType, data: QueryParam): Promise<ResponseStru...

FILE: packages/database-proxy/src/logger.ts
  type LoggerInterface (line 1) | interface LoggerInterface {
  class DefaultLogger (line 11) | class DefaultLogger implements LoggerInterface {
    method constructor (line 13) | constructor(level?: number) {
    method trace (line 16) | trace(...params: any[]): void {
    method debug (line 19) | debug(...params: any[]): void {
    method info (line 22) | info(...params: any[]): void {
    method warn (line 25) | warn(...params: any[]): void {
    method error (line 28) | error(...params: any[]): void {
    method fatal (line 31) | fatal(...params: any[]): void {

FILE: packages/database-proxy/src/policy/interface.ts
  type PermissionRule (line 6) | interface PermissionRule {
  type ValidateError (line 11) | interface ValidateError {
  type ValidateResult (line 17) | interface ValidateResult {
  type PolicyInterface (line 25) | interface PolicyInterface {

FILE: packages/database-proxy/src/policy/policy.ts
  type PermissionTypeV1 (line 26) | enum PermissionTypeV1 {
  type PermissionType (line 34) | enum PermissionType {
  type DatabaseRule (line 45) | interface DatabaseRule {
  type CollectionRule (line 50) | type CollectionRule = {
  type ValidatorMap (line 62) | interface ValidatorMap {
  class Policy (line 66) | class Policy implements PolicyInterface {
    method logger (line 81) | private get logger() {
    method setLogger (line 88) | public setLogger(logger: LoggerInterface) {
    method accessor (line 92) | get accessor(): AccessorInterface {
    method setAccessor (line 96) | public setAccessor(accessor: AccessorInterface) {
    method collections (line 100) | get collections() {
    method constructor (line 105) | constructor(accessor?: AccessorInterface) {
    method load (line 117) | load(rules: any) {
    method add (line 135) | add(collection: string, rules: any) {
    method set (line 150) | set(collection: string, rules: any) {
    method convertPermissionConfig (line 194) | private convertPermissionConfig(rules: any): any {
    method wrapRawPermissionRuleToArray (line 229) | private wrapRawPermissionRuleToArray(permissionRules: any): any[] {
    method instantiateValidators (line 251) | private instantiateValidators(rules: any[]): PermissionRule[] {
    method validate (line 282) | async validate(params: Params, injections: object): Promise<ValidateRe...
    method register (line 371) | register(name: string, handler: Handler) {
    method loadBuiltins (line 387) | private loadBuiltins() {
    method getPermissionName (line 399) | private getPermissionName(action: ActionType): PermissionType {

FILE: packages/database-proxy/src/processor.ts
  type ProcessTypes (line 5) | enum ProcessTypes {
  type HandlerContext (line 9) | interface HandlerContext {
  type Handler (line 15) | interface Handler {
  class Processor (line 19) | class Processor {
    method constructor (line 24) | constructor(
    method run (line 39) | async run(context: HandlerContext): Promise<any> {

FILE: packages/database-proxy/src/proxy.ts
  class Proxy (line 7) | class Proxy {
    method constructor (line 12) | constructor(accessor: AccessorInterface, policy: PolicyInterface) {
    method logger (line 22) | get logger(): LoggerInterface {
    method setLogger (line 29) | setLogger(logger: LoggerInterface) {
    method accessor (line 33) | get accessor(): AccessorInterface {
    method setAccessor (line 42) | async setAccessor(accessor: AccessorInterface) {
    method policy (line 47) | get policy(): PolicyInterface {
    method setPolicy (line 56) | async setPolicy(policy: PolicyInterface) {
    method execute (line 66) | async execute(params: Params) {
    method validate (line 78) | async validate(params: Params, injections: object) {
    method parseParams (line 88) | parseParams(reqParams: any): Params {
    method parse (line 102) | static parse(actionType: ActionType, reqParams: any): Params {

FILE: packages/database-proxy/src/types.ts
  type ActionType (line 1) | enum ActionType {
  type Action (line 16) | interface Action {
  type Direction (line 21) | enum Direction {
  type Order (line 26) | interface Order {
  type JoinType (line 32) | enum JoinType {
  type JoinParam (line 39) | interface JoinParam {
  type Params (line 46) | interface Params {
  function getAction (line 142) | function getAction(actionName: ActionType): Action | null {
  constant UPDATE_COMMANDS (line 184) | const UPDATE_COMMANDS = {
  constant LOGIC_COMMANDS (line 202) | const LOGIC_COMMANDS = {
  constant QUERY_COMMANDS (line 209) | const QUERY_COMMANDS = {

FILE: packages/database-proxy/src/utils/constraint.ts
  type ConstraintTypes (line 6) | enum ConstraintTypes {
  class Constraint (line 20) | class Constraint {
    method constructor (line 40) | constructor(
    method constraintField (line 62) | async constraintField(field: string, constrains: any) {
    method checkConstraint (line 121) | async checkConstraint(
    method ignored (line 183) | private ignored(constraintName: string): boolean {
    method performCondition (line 187) | private async performCondition(
    method performIn (line 209) | private performIn(constraintOption: any[], fieldKey: string, value: an...
    method performLength (line 220) | private performLength(
    method performNumber (line 239) | private performNumber(
    method performMatch (line 259) | private performMatch(constraintOption: string, fieldKey: string, value...
    method performExists (line 275) | private async performExists(
    method performNotExists (line 291) | private async performNotExists(
    method performUnique (line 307) | private async performUnique(

FILE: packages/database-proxy/src/utils/script.ts
  type QueryResultPair (line 5) | interface QueryResultPair {
  function executeScript (line 18) | async function executeScript(
  function parseQueryURI (line 73) | function parseQueryURI(target: string): {
  function doGetQuery (line 95) | async function doGetQuery(
  function getQueries (line 108) | function getQueries(code: string, injections: any): [string, any][] {

FILE: packages/database-proxy/src/utils/security.ts
  class SecurityUtil (line 6) | class SecurityUtil {
    method checkField (line 8) | static checkField(name: string): boolean {
    method checkProjection (line 36) | static checkProjection(name: string): boolean {
    method resolveFieldFromQuery (line 62) | static resolveFieldFromQuery(query: object): string[] {
    method resolveFieldFromData (line 80) | static resolveFieldFromData(data: object): string[] {
    method isAllowedFields (line 99) | static isAllowedFields(
    method containChars (line 115) | static containChars(source: string, str_list: string[]): boolean {
    method isLogicOperator (line 124) | static isLogicOperator(key: string): boolean {
    method isQueryOperator (line 130) | static isQueryOperator(key: string): boolean {
    method isQueryOrLogicOperator (line 136) | static isQueryOrLogicOperator(key: string): boolean {
    method hasUpdateOperator (line 141) | static hasUpdateOperator(data: any): boolean {
    method isUpdateOperator (line 162) | static isUpdateOperator(key: string): boolean {
    method flattenData (line 184) | static flattenData(data: any = {}): object {

FILE: packages/database-proxy/src/validators/condition/index.ts
  type QueryResultPair (line 5) | interface QueryResultPair {
  function GetFunc (line 30) | function GetFunc(target: string, value: any) {
  function doQuery (line 49) | async function doQuery(
  function getQueries (line 63) | function getQueries(code: string, injections: any): [string, any][] {

FILE: packages/database-proxy/src/validators/data/index.ts
  function dealAddData (line 38) | async function dealAddData(config: any, context: HandlerContext) {
  function dealUpdateData (line 79) | async function dealUpdateData(config: any, context: HandlerContext) {

FILE: packages/database-proxy/src/validators/query/index.ts
  function checkWithArray (line 43) | function checkWithArray(
  function checkWithObject (line 60) | async function checkWithObject(

FILE: packages/database-proxy/tests/mongo_db/add.test.js
  constant COLL_NAME (line 6) | const COLL_NAME = 'test_add'
  function restoreTestData (line 8) | async function restoreTestData(coll) {

FILE: packages/database-proxy/tests/mongo_db/aggregate.test.js
  constant TEST_DATA (line 7) | const TEST_DATA = [

FILE: packages/database-proxy/tests/mongo_db/count.test.js
  constant TEST_DATA (line 5) | const TEST_DATA = [

FILE: packages/database-proxy/tests/mongo_db/dbi.test.js
  constant TEST_DATA (line 6) | const TEST_DATA = [

FILE: packages/database-proxy/tests/mongo_db/read.test.js
  constant TEST_DATA (line 6) | const TEST_DATA = [

FILE: packages/database-proxy/tests/mongo_db/remove.test.js
  constant COLL_NAME (line 5) | const COLL_NAME = 'test_remove'
  constant TEST_DATA (line 6) | const TEST_DATA = [
  function restoreTestData (line 12) | async function restoreTestData(coll) {

FILE: packages/database-proxy/tests/mongo_db/update.test.js
  constant COLL_NAME (line 5) | const COLL_NAME = 'test_update'
  constant TEST_DATA (line 6) | const TEST_DATA = [
  function restoreTestData (line 12) | async function restoreTestData(coll) {

FILE: packages/database-proxy/tests/mysql_db/dbi.test.ignore.js
  constant TEST_DATA (line 6) | const TEST_DATA = [

FILE: packages/database-proxy/tests/utils.js
  function compareArray (line 4) | function compareArray(arr1, arr2) {
  function strictCompareArray (line 19) | function strictCompareArray(arr1, arr2) {

FILE: packages/database-ql/src/aggregate.ts
  constant EARTH_RADIUS (line 11) | const EARTH_RADIUS = 6378100
  class Aggregation (line 13) | class Aggregation {
    method constructor (line 19) | constructor(db?: Db, collectionName?: string, rawPipeline?: any[]) {
    method end (line 37) | async end<T = any>() {
    method unwrap (line 70) | unwrap() {
    method done (line 74) | done() {
    method _pipe (line 82) | _pipe(stage: string, param: any, raw = false) {
    method addFields (line 98) | addFields(param) {
    method bucket (line 102) | bucket(param) {
    method bucketAuto (line 106) | bucketAuto(param) {
    method count (line 110) | count(param) {
    method geoNear (line 114) | geoNear(param) {
    method group (line 131) | group(param) {
    method limit (line 135) | limit(param) {
    method match (line 139) | match(param) {
    method project (line 143) | project(param) {
    method lookup (line 147) | lookup(param) {
    method replaceRoot (line 151) | replaceRoot(param) {
    method sample (line 155) | sample(param) {
    method skip (line 159) | skip(param) {
    method sort (line 163) | sort(param) {
    method sortByCount (line 167) | sortByCount(param) {
    method unwind (line 171) | unwind(param) {

FILE: packages/database-ql/src/collection.ts
  class CollectionReference (line 11) | class CollectionReference extends Query {
    method constructor (line 20) | constructor(db: Db, coll: string) {
    method name (line 27) | get name() {
    method doc (line 36) | doc(docID: string | number): DocumentReference {
    method add (line 48) | add(data: object, options?: { multi: boolean }) {
    method aggregate (line 53) | aggregate(rawPipeline: object[] = []) {
    method createIndex (line 60) | public async createIndex(
    method dropIndex (line 71) | public async dropIndex(
    method listIndexes (line 78) | public async listIndexes(): Promise<ListIndexesRes> {

FILE: packages/database-ql/src/command.ts
  type IQueryCondition (line 14) | type IQueryCondition = Record<string, any> | LogicCommand
  method eq (line 17) | eq(val: any) {
  method neq (line 21) | neq(val: any) {
  method lt (line 25) | lt(val: any) {
  method lte (line 29) | lte(val: any) {
  method gt (line 33) | gt(val: any) {
  method gte (line 37) | gte(val: any) {
  method in (line 41) | in(val: any[]) {
  method nin (line 45) | nin(val: any[]) {
  method all (line 49) | all(val: any) {
  method elemMatch (line 53) | elemMatch(val: any) {
  method exists (line 57) | exists(val: boolean) {
  method size (line 61) | size(val: number) {
  method mod (line 65) | mod(val: number[]) {
  method geoNear (line 69) | geoNear(val: IGeoNearOptions) {
  method geoWithin (line 73) | geoWithin(val: IGeoWithinOptions) {
  method geoIntersects (line 77) | geoIntersects(val: IGeoIntersectsOptions) {
  method like (line 81) | like(val: string) {
  method and (line 85) | and(...__expressions__: IQueryCondition[]) {
  method nor (line 92) | nor(...__expressions__: IQueryCondition[]) {
  method or (line 99) | or(...__expressions__: IQueryCondition[]) {
  method not (line 106) | not(...__expressions__: IQueryCondition[]) {
  method set (line 113) | set(val: any) {
  method remove (line 117) | remove() {
  method inc (line 121) | inc(val: number) {
  method mul (line 125) | mul(val: number) {
  method push (line 129) | push(...args: any[]) {
  method pull (line 148) | pull(values) {
  method pullAll (line 152) | pullAll(values) {
  method pop (line 156) | pop() {
  method shift (line 160) | shift() {
  method unshift (line 164) | unshift(...__values__: any[]) {
  method addToSet (line 169) | addToSet(values) {
  method rename (line 173) | rename(values) {
  method bit (line 177) | bit(values) {
  method max (line 181) | max(values) {
  method min (line 185) | min(values) {
  method expr (line 189) | expr(values: AggregationOperator) {
  method jsonSchema (line 195) | jsonSchema(schema) {
  method text (line 201) | text(
  method pipeline (line 226) | pipeline() {
  class AggregationOperator (line 363) | class AggregationOperator {
    method constructor (line 364) | constructor(name, param) {
  class ProjectionOperator (line 369) | class ProjectionOperator {
    method constructor (line 370) | constructor(name, param) {

FILE: packages/database-ql/src/commands/logic.ts
  constant AND (line 9) | const AND = 'and'
  constant NOT (line 11) | const NOT = 'not'
  constant NOR (line 12) | const NOR = 'nor'
  type LOGIC_COMMANDS_LITERAL (line 14) | enum LOGIC_COMMANDS_LITERAL {
  class LogicCommand (line 21) | class LogicCommand {
    method constructor (line 27) | constructor(
    method _setFieldName (line 89) | _setFieldName(fieldName: string): LogicCommand {
    method and (line 106) | and(...__expressions__: LogicCommand[]) {
    method or (line 122) | or(...__expressions__: LogicCommand[]) {
  function isLogicCommand (line 145) | function isLogicCommand(object: any): object is LogicCommand {
  function isKnownLogicCommand (line 153) | function isKnownLogicCommand(object: any): object is LogicCommand {

FILE: packages/database-ql/src/commands/query.ts
  constant NEQ (line 14) | const NEQ = 'neq'
  constant GTE (line 16) | const GTE = 'gte'
  constant LTE (line 18) | const LTE = 'lte'
  constant NIN (line 20) | const NIN = 'nin'
  constant ALL (line 21) | const ALL = 'all'
  constant ELEM_MATCH (line 22) | const ELEM_MATCH = 'elemMatch'
  constant EXISTS (line 23) | const EXISTS = 'exists'
  constant SIZE (line 24) | const SIZE = 'size'
  constant MOD (line 25) | const MOD = 'mod'
  constant LIKE (line 26) | const LIKE = 'like'
  type QUERY_COMMANDS_LITERAL (line 28) | enum QUERY_COMMANDS_LITERAL {
  class QueryCommand (line 48) | class QueryCommand extends LogicCommand {
    method constructor (line 51) | constructor(
    method toJSON (line 61) | toJSON() {
    method _setFieldName (line 75) | _setFieldName(fieldName: string): QueryCommand {
    method eq (line 80) | eq(val: any) {
    method neq (line 89) | neq(val: any) {
    method gt (line 98) | gt(val: any) {
    method gte (line 107) | gte(val: any) {
    method lt (line 116) | lt(val: any) {
    method lte (line 125) | lte(val: any) {
    method in (line 134) | in(list: any[]) {
    method nin (line 143) | nin(list: any[]) {
    method geoNear (line 152) | geoNear(val: IGeoNearOptions) {
    method geoWithin (line 176) | geoWithin(val: IGeoWithinOptions) {
    method geoIntersects (line 193) | geoIntersects(val: IGeoIntersectsOptions) {
  function isQueryCommand (line 215) | function isQueryCommand(object: any): object is QueryCommand {
  function isKnownQueryCommand (line 223) | function isKnownQueryCommand(object: any): object is QueryCommand {
  function isComparisonCommand (line 230) | function isComparisonCommand(object: any): object is QueryCommand {
  type IGeoNearOptions (line 236) | interface IGeoNearOptions {
  type IGeoWithinOptions (line 242) | interface IGeoWithinOptions {
  type IGeoIntersectsOptions (line 246) | interface IGeoIntersectsOptions {

FILE: packages/database-ql/src/commands/update.ts
  type UPDATE_COMMANDS_LITERAL (line 7) | enum UPDATE_COMMANDS_LITERAL {
  class UpdateCommand (line 25) | class UpdateCommand {
    method constructor (line 31) | constructor(
    method _setFieldName (line 48) | _setFieldName(fieldName: string): UpdateCommand {
  function isUpdateCommand (line 54) | function isUpdateCommand(object: any): object is UpdateCommand {
  function isKnownUpdateCommand (line 62) | function isKnownUpdateCommand(object: any): object is UpdateCommand {

FILE: packages/database-ql/src/constant.ts
  type ErrorCode (line 10) | enum ErrorCode {
  type OrderByDirection (line 47) | type OrderByDirection = 'desc' | 'asc'
  type WhereFilterOp (line 57) | type WhereFilterOp = '<' | '<=' | '==' | '>=' | '>'
  type Operator (line 67) | enum Operator {
  type ActionType (line 101) | enum ActionType {

FILE: packages/database-ql/src/document.ts
  class DocumentReference (line 20) | class DocumentReference {
    method constructor (line 46) | constructor(db: Db, coll: string, docID: any, query?: Query) {
    method create (line 58) | async create(data: any, options?: { multi: boolean }): Promise<AddRes> {
    method set (line 97) | async set(data: object): Promise<UpdateRes> {
    method update (line 134) | async update(data: object): Promise<UpdateRes> {
    method remove (line 148) | async remove(): Promise<RemoveRes> {
    method get (line 158) | async get<T = any>(): Promise<GetOneRes<T>> {
    method field (line 170) | field(projection: string[] | ProjectionType): DocumentReference {
    method createIndex (line 184) | async createIndex(keys: object, options?: object): Promise<CreateIndex...
    method dropIndex (line 218) | async dropIndex(index: string | object): Promise<DropIndexRes> {
    method listIndexes (line 243) | async listIndexes(options?: object): Promise<ListIndexesRes> {

FILE: packages/database-ql/src/geo/interface.ts
  type ISerializedPoint (line 1) | interface ISerializedPoint {
  type ISerializedLineString (line 6) | interface ISerializedLineString {
  type ISerializedPolygon (line 11) | interface ISerializedPolygon {
  type ISerializedMultiPoint (line 16) | interface ISerializedMultiPoint {
  type ISerializedMultiLineString (line 21) | interface ISerializedMultiLineString {
  type ISerializedMultiPolygon (line 26) | interface ISerializedMultiPolygon {

FILE: packages/database-ql/src/geo/lineString.ts
  class LineString (line 11) | class LineString {
    method constructor (line 19) | constructor(points: Point[]) {
    method parse (line 39) | parse(key) {
    method toJSON (line 48) | toJSON() {
    method validate (line 55) | static validate(lineString: ISerializedLineString) {
    method isClosed (line 67) | static isClosed(lineString: LineString) {
    method _internalType (line 79) | get _internalType() {

FILE: packages/database-ql/src/geo/multiLineString.ts
  class MultiLineString (line 11) | class MultiLineString {
    method constructor (line 19) | constructor(lines: LineString[]) {
    method parse (line 39) | parse(key) {
    method toJSON (line 50) | toJSON() {
    method validate (line 59) | static validate(multiLineString: ISerializedMultiLineString) {
    method _internalType (line 76) | get _internalType() {

FILE: packages/database-ql/src/geo/multiPoint.ts
  class MultiPoint (line 11) | class MultiPoint {
    method constructor (line 19) | constructor(points: Point[]) {
    method parse (line 39) | parse(key) {
    method toJSON (line 48) | toJSON() {
    method validate (line 55) | static validate(multiPoint: ISerializedMultiPoint) {
    method _internalType (line 67) | get _internalType() {

FILE: packages/database-ql/src/geo/multiPolygon.ts
  class MultiPolygon (line 11) | class MultiPolygon {
    method constructor (line 19) | constructor(polygons: Polygon[]) {
    method parse (line 39) | parse(key) {
    method toJSON (line 52) | toJSON() {
    method validate (line 63) | static validate(multiPolygon: ISerializedMultiPolygon) {
    method _internalType (line 82) | get _internalType() {

FILE: packages/database-ql/src/geo/point.ts
  class Point (line 11) | class Point {
    method constructor (line 30) | constructor(longitude: number, latitude: number) {
    method parse (line 38) | parse(key) {
    method toJSON (line 47) | toJSON() {
    method toReadableString (line 54) | toReadableString() {
    method validate (line 58) | static validate(point: ISerializedPoint) {
    method _internalType (line 67) | get _internalType() {

FILE: packages/database-ql/src/geo/polygon.ts
  class Polygon (line 11) | class Polygon {
    method constructor (line 19) | constructor(lines: LineString[]) {
    method parse (line 46) | parse(key) {
    method toJSON (line 57) | toJSON() {
    method validate (line 66) | static validate(polygon: ISerializedPolygon) {
    method isCloseLineString (line 83) | static isCloseLineString(lineString) {
    method _internalType (line 94) | get _internalType() {

FILE: packages/database-ql/src/helper/symbol.ts
  constant SYMBOL_UNSET_FIELD_NAME (line 4) | const SYMBOL_UNSET_FIELD_NAME = InternalSymbol.for('UNSET_FIELD_NAME')
  constant SYMBOL_UPDATE_COMMAND (line 6) | const SYMBOL_UPDATE_COMMAND = InternalSymbol.for('UPDATE_COMMAND')
  constant SYMBOL_QUERY_COMMAND (line 7) | const SYMBOL_QUERY_COMMAND = InternalSymbol.for('QUERY_COMMAND')
  constant SYMBOL_LOGIC_COMMAND (line 8) | const SYMBOL_LOGIC_COMMAND = InternalSymbol.for('LOGIC_COMMAND')
  constant SYMBOL_GEO_POINT (line 10) | const SYMBOL_GEO_POINT = InternalSymbol.for('GEO_POINT')
  constant SYMBOL_GEO_LINE_STRING (line 11) | const SYMBOL_GEO_LINE_STRING = InternalSymbol.for(
  constant SYMBOL_GEO_POLYGON (line 14) | const SYMBOL_GEO_POLYGON = InternalSymbol.for('SYMBOL_GEO_POLYGON')
  constant SYMBOL_GEO_MULTI_POINT (line 15) | const SYMBOL_GEO_MULTI_POINT = InternalSymbol.for(
  constant SYMBOL_GEO_MULTI_LINE_STRING (line 18) | const SYMBOL_GEO_MULTI_LINE_STRING = InternalSymbol.for(
  constant SYMBOL_GEO_MULTI_POLYGON (line 21) | const SYMBOL_GEO_MULTI_POLYGON = InternalSymbol.for(
  constant SYMBOL_SERVER_DATE (line 25) | const SYMBOL_SERVER_DATE = InternalSymbol.for('SERVER_DATE')
  constant SYMBOL_REGEXP (line 27) | const SYMBOL_REGEXP = InternalSymbol.for('REGEXP')

FILE: packages/database-ql/src/index.ts
  type GeoType (line 12) | interface GeoType {
  type DbConfig (line 26) | interface DbConfig {
  class Db (line 42) | class Db {
    method constructor (line 69) | constructor(config?: DbConfig) {
    method collection (line 83) | collection(collName: string): CollectionReference {
    method generateId (line 94) | generateId(): string {
    method ObjectId (line 104) | ObjectId(id?: string | number | ObjectId) {

FILE: packages/database-ql/src/interface.ts
  type ResponseStruct (line 3) | interface ResponseStruct {
  type RequestInterface (line 11) | interface RequestInterface {
  type QueryOrder (line 15) | interface QueryOrder {
  type ProjectionType (line 20) | interface ProjectionType {
  type AggregateStage (line 24) | interface AggregateStage {
  type QueryParam (line 29) | interface QueryParam {

FILE: packages/database-ql/src/operator-map.ts
  function operatorToString (line 25) | function operatorToString(operator: string): string {

FILE: packages/database-ql/src/query.ts
  type QueryOption (line 24) | interface QueryOption {
  type WithParam (line 46) | interface WithParam {
  class Query (line 76) | class Query {
    method constructor (line 119) | public constructor(
    method where (line 141) | public where(query: object) {
    method orderBy (line 174) | public orderBy(fieldPath: string, directionStr: OrderByDirection): Que...
    method with (line 199) | public with(param: WithParam): Query {
    method withOne (line 224) | public withOne(param: WithParam): Query {
    method field (line 249) | public field(projection: string[] | ProjectionType): Query {
    method limit (line 287) | public limit(limit: number): Query {
    method skip (line 308) | public skip(offset: number): Query {
    method page (line 328) | public page(options: { current: number; size: number }) {
    method clone (line 343) | public clone(): Query {
    method get (line 360) | public async get<T = any>(): Promise<GetRes<T>> {
    method getOne (line 373) | public async getOne<T = any>(): Promise<GetOneRes<T>> {
    method merge (line 405) | public async merge<T = any>(options?: {
    method count (line 415) | public async count(): Promise<CountRes> {
    method update (line 441) | public async update(
    method remove (line 488) | public async remove(options?: { multi: boolean }): Promise<RemoveRes> {
    method buildQueryParam (line 524) | protected buildQueryParam() {
    method internalGet (line 556) | protected async internalGet<T = any>(): Promise<GetRes<T>> {
    method internalMerge (line 589) | protected async internalMerge<T = any>(options?: {
    method send (line 666) | public async send(action: ActionType, param: QueryParam) {

FILE: packages/database-ql/src/regexp/index.ts
  class RegExp (line 6) | class RegExp {
    method constructor (line 9) | constructor({ regexp, options }: { regexp: string; options: string }) {
    method parse (line 17) | parse() {
    method _internalType (line 24) | get _internalType() {
  function RegExpConstructor (line 34) | function RegExpConstructor(param: { regexp: string; options: string }) {

FILE: packages/database-ql/src/result-types.ts
  type BaseResult (line 1) | interface BaseResult {
  type GetRes (line 8) | interface GetRes<T> extends BaseResult {
  type GetOneRes (line 15) | interface GetOneRes<T> extends BaseResult {
  type UpdateRes (line 19) | interface UpdateRes extends BaseResult {
  type AddRes (line 25) | interface AddRes extends BaseResult {
  type RemoveRes (line 30) | interface RemoveRes extends BaseResult {
  type CountRes (line 34) | interface CountRes extends BaseResult {
  type CreateIndexRes (line 38) | interface CreateIndexRes extends BaseResult {
  type DropIndexRes (line 42) | interface DropIndexRes extends BaseResult {
  type ListIndexesRes (line 46) | interface ListIndexesRes extends BaseResult {

FILE: packages/database-ql/src/serializer/common.ts
  type IQueryCondition (line 17) | type IQueryCondition = Record<string, any> | LogicCommand
  type AnyObject (line 19) | type AnyObject = {
  function flatten (line 23) | function flatten(
  function flattenQueryObject (line 74) | function flattenQueryObject(
  function flattenObject (line 80) | function flattenObject(object: AnyObject): AnyObject {
  function mergeConditionAfterEncode (line 84) | function mergeConditionAfterEncode(
  function isConversionRequired (line 133) | function isConversionRequired(val: any): boolean {
  function encodeInternalDataType (line 143) | function encodeInternalDataType(val: any): IQueryCondition {
  function decodeInternalDataType (line 147) | function decodeInternalDataType(object: AnyObject): any {

FILE: packages/database-ql/src/serializer/datatype.ts
  type IQueryCondition (line 24) | type IQueryCondition = Record<string, any> | LogicCommand
  type AnyObject (line 26) | type AnyObject = {
  function serialize (line 30) | function serialize(val: any): IQueryCondition {
  function serializeHelper (line 34) | function serializeHelper(val: any, visited: object[]): Record<string, an...
  function deserialize (line 75) | function deserialize(object: AnyObject): any {

FILE: packages/database-ql/src/serializer/query.ts
  type IQueryCondition (line 26) | type IQueryCondition = Record<string, any> | LogicCommand
  class QuerySerializer (line 28) | class QuerySerializer {
    method constructor (line 29) | constructor() {}
    method encode (line 31) | static encode(
  class QueryEncoder (line 39) | class QueryEncoder {
    method encodeQuery (line 40) | encodeQuery(
    method encodeRegExp (line 62) | encodeRegExp(query: RegExp) {
    method encodeLogicCommand (line 69) | encodeLogicCommand(query: LogicCommand): IQueryCondition {
    method encodeQueryCommand (line 119) | encodeQueryCommand(query: QueryCommand): IQueryCondition {
    method encodeComparisonCommand (line 128) | encodeComparisonCommand(query: QueryCommand): IQueryCondition {
    method encodeQueryObject (line 205) | encodeQueryObject(query: IQueryCondition): IQueryCondition {
    method mergeConditionAfterEncode (line 252) | mergeConditionAfterEncode(

FILE: packages/database-ql/src/serializer/update.ts
  type IQueryCondition (line 15) | type IQueryCondition = Record<string, any> | LogicCommand
  type IUpdateCondition (line 17) | interface IUpdateCondition {
  type IPushModifiers (line 21) | interface IPushModifiers {
  class UpdateSerializer (line 26) | class UpdateSerializer {
    method constructor (line 27) | private constructor() {}
    method encode (line 29) | static encode(query: IQueryCondition | UpdateCommand): IUpdateCondition {
    method encodeUpdate (line 34) | encodeUpdate(query: IQueryCondition | UpdateCommand): IUpdateCondition {
    method encodeUpdateCommand (line 44) | encodeUpdateCommand(query: UpdateCommand): IQueryCondition {
    method encodeFieldUpdateCommand (line 67) | encodeFieldUpdateCommand(query: UpdateCommand): IQueryCondition {
    method encodeArrayUpdateCommand (line 88) | encodeArrayUpdateCommand(query: UpdateCommand): IQueryCondition {
    method encodeUpdateObject (line 144) | encodeUpdateObject(query: Record<string, any>): IQueryCondition {

FILE: packages/database-ql/src/serverDate/index.ts
  class ServerDate (line 3) | class ServerDate {
    method constructor (line 6) | constructor({ offset = 0 } = {}) {
    method _internalType (line 10) | get _internalType() {
    method parse (line 14) | parse() {
  function ServerDateConstructor (line 28) | function ServerDateConstructor(opt?: { offset: number }) {

FILE: packages/database-ql/src/util.ts
  type DocumentModel (line 13) | interface DocumentModel {
  class Util (line 21) | class Util {

FILE: packages/database-ql/src/utils/symbol.ts
  class HiddenSymbol (line 4) | class HiddenSymbol {
    method constructor (line 5) | constructor(target: any) {
  class InternalSymbol (line 17) | class InternalSymbol extends HiddenSymbol {
    method constructor (line 18) | constructor(target: any, __mark__: any) {
    method for (line 28) | static for(target: any) {

FILE: packages/database-ql/src/utils/type.ts
  type AnyFn (line 18) | type AnyFn = (...args: any[]) => any

FILE: packages/database-ql/src/validate.ts
  class Validate (line 18) | class Validate {
    method isValidAggregation (line 26) | static isValidAggregation(stage: object): boolean {
    method isGeopoint (line 39) | static isGeopoint(point: 'latitude' | 'longitude', degree: number) {
    method isInteger (line 61) | static isInteger(param: string, num: number): boolean {
    method isProjection (line 68) | static isProjection(param: string, value: object): boolean {
    method isOrder (line 91) | static isOrder(param: string, value: Record<string, any>): boolean {
    method isFieldOrder (line 110) | static isFieldOrder(direction: OrderByDirection): boolean {
    method isFieldPath (line 124) | static isFieldPath(path: string): boolean {
    method isOperator (line 136) | static isOperator(op: WhereFilterOp): boolean {
    method isCollName (line 152) | static isCollName(name: string): boolean {

FILE: packages/database-ql/tests/units/_utils.js
  class MockRequest (line 11) | class MockRequest {
    method send (line 21) | async send(action, params) {
  function getDb (line 59) | function getDb() {

FILE: packages/node-modules-utils/src/declaration.ts
  type DeclarationType (line 6) | interface DeclarationType {
  class PackageDeclaration (line 16) | class PackageDeclaration extends PackageInfo {
    method declarations (line 19) | get declarations(): DeclarationType[] {
    method load (line 32) | async load() {
    method loadFromTypesPackage (line 50) | async loadFromTypesPackage(typePkgName: string): Promise<DeclarationTy...
    method loadFromSelfPackage (line 87) | async loadFromSelfPackage() {
    method resolveTypingsEntryPath (line 105) | async resolveTypingsEntryPath() {
    method readTypings (line 138) | protected async readTypings(
    method resolveImportPath (line 193) | protected async resolveImportPath(importPath: string, sourcePath: stri...
    method tryResolveImportPath (line 204) | protected async tryResolveImportPath(
    method fixTypingFilePath (line 236) | protected fixTypingFilePath(filepath: string) {
    method loadTypingFile (line 250) | protected async loadTypingFile(filepath: string) {
  class NodePackageDeclarations (line 258) | class NodePackageDeclarations {
    method constructor (line 302) | constructor(nodeModulesRoot: string) {
    method getNodeBuiltinPackage (line 310) | async getNodeBuiltinPackage(packageName: string): Promise<DeclarationT...

FILE: packages/node-modules-utils/src/import-parser.ts
  type ImportResourcePathPackage (line 2) | interface ImportResourcePathPackage {
  type ImportResourcePathRelative (line 8) | interface ImportResourcePathRelative {
  type ImportResourcePathRelativeInPackage (line 14) | interface ImportResourcePathRelativeInPackage {
  type ImportResourcePath (line 21) | type ImportResourcePath =
  class ImportParser (line 26) | class ImportParser {
    method parseDependencies (line 31) | public parseDependencies(
    method resolvePath (line 45) | private resolvePath(

FILE: packages/node-modules-utils/src/package.ts
  class PackageInfo (line 3) | class PackageInfo {
    method name (line 34) | get name(): string {
    method version (line 38) | get version(): string {
    method dependencies (line 42) | get dependencies(): object {
    method dependencyNames (line 46) | get dependencyNames(): string[] {
    method main (line 54) | get main(): string {
    method module (line 61) | get module(): string {
    method constructor (line 70) | constructor(importPath: string, nodeModulesRoot: string) {
    method parse (line 80) | async parse(onlyInfo = false) {
    method parsePackageInfo (line 91) | async parsePackageInfo() {
    method parsePackageEntry (line 114) | async parsePackageEntry() {
    method readPackageJson (line 142) | async readPackageJson(file_path: string) {
    method abs_path (line 157) | abs_path(pathInPackage: string) {
    method relative_path (line 166) | relative_path(absPath: string) {
    method exists (line 174) | async exists(p: string) {

FILE: runtimes/nodejs/functions/global.d.ts
  type FunctionContext (line 4) | interface FunctionContext {
  type IModule (line 67) | interface IModule {
  type IProcess (line 71) | interface IProcess {

FILE: runtimes/nodejs/src/config.ts
  class Config (line 11) | class Config {
    method DB_URI (line 15) | static get DB_URI() {
    method SERVER_SECRET (line 25) | static get SERVER_SECRET(): string {
    method LOG_LEVEL (line 36) | static get LOG_LEVEL(): 'debug' | 'info' | 'warn' | 'error' {
    method DISPLAY_LINE_LOG_LEVEL (line 43) | static get DISPLAY_LINE_LOG_LEVEL(): 'debug' | 'info' | 'warn' | 'erro...
    method LOG_DEPTH (line 50) | static get LOG_DEPTH(): number {
    method PORT (line 61) | static get PORT(): number {
    method STORAGE_PORT (line 65) | static get STORAGE_PORT(): number {
    method KEEP_ALIVE_TIMEOUT (line 70) | static get KEEP_ALIVE_TIMEOUT(): number {
    method isProd (line 86) | static get isProd(): boolean {
    method RUNTIME_IMAGE (line 90) | static get RUNTIME_IMAGE(): string {
    method RUNTIME_VERSION (line 94) | static get RUNTIME_VERSION(): string {
    method APPID (line 98) | static get APPID(): string {
    method NPM_INSTALL_FLAGS (line 102) | static get NPM_INSTALL_FLAGS(): string {
    method REQUEST_LIMIT_SIZE (line 106) | static get REQUEST_LIMIT_SIZE(): string {
    method LOG_SERVER_URL (line 110) | static get LOG_SERVER_URL(): string {
    method LOG_SERVER_TOKEN (line 114) | static get LOG_SERVER_TOKEN(): string {
    method CHANGE_STREAM_RECONNECT_INTERVAL (line 118) | static get CHANGE_STREAM_RECONNECT_INTERVAL(): number {
    method OSS_INTERNAL_ENDPOINT (line 122) | static get OSS_INTERNAL_ENDPOINT(): string {
    method OSS_EXTERNAL_ENDPOINT (line 126) | static get OSS_EXTERNAL_ENDPOINT(): string {
    method DISABLE_MODULE_CACHE (line 130) | static get DISABLE_MODULE_CACHE(): boolean {
    method CUSTOM_DEPENDENCY_BASE_PATH (line 134) | static get CUSTOM_DEPENDENCY_BASE_PATH(): string {

FILE: runtimes/nodejs/src/constants.ts
  constant CLOUD_FUNCTION_COLLECTION (line 4) | const CLOUD_FUNCTION_COLLECTION = '__functions__'
  constant POLICY_COLLECTION (line 5) | const POLICY_COLLECTION = '__policies__'
  constant CONFIG_COLLECTION (line 6) | const CONFIG_COLLECTION = '__conf__'
  constant WEBSITE_HOSTING_COLLECTION (line 7) | const WEBSITE_HOSTING_COLLECTION = '__website_hosting__'
  constant WEBSOCKET_FUNCTION_NAME (line 9) | const WEBSOCKET_FUNCTION_NAME = '__websocket__'
  constant INTERCEPTOR_FUNCTION_NAME (line 10) | const INTERCEPTOR_FUNCTION_NAME = '__interceptor__'
  constant DEFAULT_FUNCTION_NAME (line 11) | const DEFAULT_FUNCTION_NAME = '__default__'
  constant INIT_FUNCTION_NAME (line 12) | const INIT_FUNCTION_NAME = '__init__'

FILE: runtimes/nodejs/src/db.ts
  class DatabaseAgent (line 14) | class DatabaseAgent {
    method client (line 22) | static get client() {
    method db (line 29) | static get db() {
    method initialize (line 33) | static async initialize() {
    method accessor (line 59) | static get accessor() {

FILE: runtimes/nodejs/src/handler/db-proxy.ts
  function handleDatabaseProxy (line 9) | async function handleDatabaseProxy(req: IRequest, res: Response) {

FILE: runtimes/nodejs/src/handler/invoke.ts
  function handleInvokeFunction (line 17) | async function handleInvokeFunction(req: IRequest, res: Response) {
  function invokeFunction (line 48) | async function invokeFunction(
  function invokeDebug (line 110) | async function invokeDebug(

FILE: runtimes/nodejs/src/handler/openapi.ts
  function handleOpenAPIDefinition (line 7) | async function handleOpenAPIDefinition(req: IRequest, res: Response) {

FILE: runtimes/nodejs/src/handler/router.ts
  method fileFilter (line 29) | fileFilter(_req, file, callback) {

FILE: runtimes/nodejs/src/handler/typings.ts
  function handlePackageTypings (line 23) | async function handlePackageTypings(req: IRequest, res: Response) {
  function getThreePartyPackageTypings (line 89) | async function getThreePartyPackageTypings(

FILE: runtimes/nodejs/src/index.ts
  function gracefullyExit (line 127) | async function gracefullyExit() {

FILE: runtimes/nodejs/src/init.ts
  function main (line 6) | async function main() {
  function installPackages (line 31) | function installPackages() {
  function moduleExists (line 48) | function moduleExists(mod: string) {

FILE: runtimes/nodejs/src/support/cloud-sdk.ts
  function createCloudSdk (line 24) | function createCloudSdk() {
  function invokeInFunction (line 60) | async function invokeInFunction(name: string, ctx?: FunctionContext) {

FILE: runtimes/nodejs/src/support/database-change-stream/conf-change-stream.ts
  class ConfChangeStream (line 9) | class ConfChangeStream {
    method initialize (line 12) | static initialize() {
    method updateConfig (line 20) | private static async updateConfig(init = false) {

FILE: runtimes/nodejs/src/support/database-change-stream/index.ts
  class DatabaseChangeStream (line 29) | class DatabaseChangeStream extends EventEmitter {
    method constructor (line 32) | private constructor() {
    method getInstance (line 36) | static getInstance() {
    method initializeForCollection (line 43) | initializeForCollection(collectionName: string) {
    method initialize (line 63) | static initialize() {
    method onStreamChange (line 72) | static onStreamChange(
    method removeAllListeners (line 80) | static removeAllListeners() {

FILE: runtimes/nodejs/src/support/database-change-stream/website-hosting-change-stream.ts
  class WebsiteHostingChangeStream (line 5) | class WebsiteHostingChangeStream {
    method initialize (line 8) | static initialize() {
    method onStreamChange (line 17) | static async onStreamChange() {

FILE: runtimes/nodejs/src/support/engine/cache.ts
  class FunctionCache (line 10) | class FunctionCache {
    method initialize (line 13) | static async initialize(): Promise<void> {
    method streamChange (line 39) | private static async streamChange(
    method get (line 60) | static get(name: string): ICloudFunctionData {
    method getAll (line 64) | static getAll(): ICloudFunctionData[] {

FILE: runtimes/nodejs/src/support/engine/console.ts
  type LogLevel (line 6) | enum LogLevel {
  class Console (line 13) | class Console {
    method constructor (line 16) | constructor(category: string) {
    method _format (line 20) | protected _format(level: LogLevel, ...params: any[]): string {
    method debug (line 69) | debug(...params: any[]) {
    method info (line 75) | info(...params: any[]) {
    method log (line 81) | log(...params: any[]) {
    method warn (line 87) | warn(...params: any[]) {
    method error (line 93) | error(...params: any[]) {
    method _colorize (line 99) | protected _colorize(level: LogLevel, data: any) {
    method _shouldLog (line 118) | protected _shouldLog(level: LogLevel) {
    method _shouldDisplayLine (line 130) | protected _shouldDisplayLine(level: LogLevel) {
  class DebugConsole (line 143) | class DebugConsole extends Console {
    method constructor (line 144) | constructor(category: string) {
    method _format (line 150) | protected _format(level: LogLevel, ...params: any[]): string {
    method getLogs (line 156) | getLogs() {

FILE: runtimes/nodejs/src/support/engine/executor.ts
  class FunctionExecutor (line 9) | class FunctionExecutor {
    method constructor (line 14) | constructor(data: ICloudFunctionData) {
    method invoke (line 19) | async invoke(
    method invokeWithInterceptor (line 64) | protected async invokeWithInterceptor(
    method getModule (line 99) | protected getModule() {
  class FunctionDebugExecutor (line 105) | class FunctionDebugExecutor extends FunctionExecutor {
    method constructor (line 108) | constructor(data: ICloudFunctionData, consoleInstance: DebugConsole) {
    method getModule (line 115) | protected getModule() {

FILE: runtimes/nodejs/src/support/engine/module.ts
  constant CUSTOM_DEPENDENCY_NODE_MODULES_PATH (line 10) | const CUSTOM_DEPENDENCY_NODE_MODULES_PATH = `${Config.CUSTOM_DEPENDENCY_...
  class FunctionModule (line 12) | class FunctionModule {
    method get (line 17) | static get(functionName: string): any {
    method require (line 22) | static require(moduleName: string, fromModule: string[], filename = ''...
    method compile (line 77) | static compile(
    method deleteCache (line 102) | static deleteCache(): void {
    method wrap (line 106) | protected static wrap(code: string): string {
    method createScript (line 118) | protected static createScript(
    method buildSandbox (line 145) | protected static buildSandbox(

FILE: runtimes/nodejs/src/support/engine/types.ts
  type RequireFuncType (line 6) | type RequireFuncType = (
  type FunctionModuleGlobalContext (line 15) | interface FunctionModuleGlobalContext {
  type FunctionContext (line 41) | interface FunctionContext {
  type FunctionResult (line 60) | interface FunctionResult {
  type FunctionStatus (line 66) | enum FunctionStatus {
  type CloudFunctionSource (line 75) | type CloudFunctionSource = {
  type ICloudFunctionData (line 87) | interface ICloudFunctionData {
  type File (line 102) | interface File {

FILE: runtimes/nodejs/src/support/init-hook.ts
  class InitHook (line 8) | class InitHook {
    method invoke (line 9) | static async invoke() {

FILE: runtimes/nodejs/src/support/lsp.ts
  constant WORKSPACE_PATH (line 13) | const WORKSPACE_PATH = path.join(__dirname, '../../functions')
  class LspWebSocket (line 15) | class LspWebSocket {
    method handleUpgrade (line 21) | static handleUpgrade(
    method launchLsp (line 63) | static launchLsp(socket: rpc.IWebSocket, uid: string) {

FILE: runtimes/nodejs/src/support/module-hot-reload.ts
  function clearModuleCache (line 53) | function clearModuleCache(moduleId: string) {
  function installDependency (line 91) | function installDependency(packageName: string) {
  function installDependencies (line 120) | function installDependencies(packageName: string[]) {
  function uninstallDependency (line 130) | function uninstallDependency(packageName: string) {
  function uninstallDependencies (line 159) | function uninstallDependencies(packageName: string[]) {

FILE: runtimes/nodejs/src/support/openapi.ts
  function extractOpenAPIParams (line 10) | function extractOpenAPIParams(func: ICloudFunctionData) {
  function buildOpenAPIDefinition (line 100) | function buildOpenAPIDefinition(apiConfig: {

FILE: runtimes/nodejs/src/support/policy.ts
  type InjectionGetter (line 16) | type InjectionGetter = (payload: any, params: Params) => Promise<any>
  type PolicyComposition (line 21) | interface PolicyComposition {
  type PolicyDataStruct (line 31) | interface PolicyDataStruct {
  class PolicyAgent (line 46) | class PolicyAgent {
    method set (line 49) | public static async set(name: string, data: PolicyDataStruct) {
    method get (line 62) | public static async get(name: string) {
    method clear (line 86) | public static clear() {
    method getInjector (line 90) | private static async getInjector(
    method loadPolicies (line 124) | public static async loadPolicies() {
    method loadPolicy (line 139) | public static async loadPolicy(name: string) {
    method applyPolicies (line 151) | public static async applyPolicies() {
  function defaultInjectionGetter (line 165) | async function defaultInjectionGetter(auth: any, _params: Params) {

FILE: runtimes/nodejs/src/support/token.ts
  function getToken (line 17) | function getToken(payload: any, secret?: string): string {
  function parseToken (line 26) | function parseToken(token: string, secret?: string): any | null {
  function splitBearerToken (line 41) | function splitBearerToken(bearer: string): string | null {

FILE: runtimes/nodejs/src/support/types.ts
  type IRequest (line 3) | interface IRequest extends Request {

FILE: runtimes/nodejs/src/support/utils.ts
  function generateUUID (line 8) | function generateUUID() {
  function generatePassword (line 19) | function generatePassword(
  function generateRandString (line 34) | function generateRandString(
  function hashPassword (line 54) | function hashPassword(content: string) {
  function deepFreeze (line 63) | function deepFreeze(object: object) {
  function nanosecond2ms (line 85) | function nanosecond2ms(nanoseconds: bigint): number {
  function sleep (line 98) | function sleep(ms: number) {
  function md5 (line 107) | function md5(content: string) {
  function uint8ArrayToBase64 (line 111) | function uint8ArrayToBase64(buffer: Uint8Array) {
  function base64ToUint8Array (line 115) | function base64ToUint8Array(base64: string) {
  function GetClientIPFromRequest (line 120) | function GetClientIPFromRequest(req: IRequest) {

FILE: runtimes/nodejs/src/support/ws.ts
  class WebSocketAgent (line 9) | class WebSocketAgent {
    method server (line 12) | static get server(): WebSocketServer {
    method clients (line 24) | static get clients() {
  function handleSocketConnection (line 34) | function handleSocketConnection(socket: WebSocket, request: IncomingMess...
  function handleWebSocketEvent (line 64) | async function handleWebSocketEvent(

FILE: server/src/account/account.controller.ts
  class AccountController (line 52) | class AccountController {
    method constructor (line 55) | constructor(
    method findOne (line 67) | async findOne(@Req() req: IRequest) {
    method getChargeOrderAmount (line 81) | async getChargeOrderAmount(
    method getChargeOrder (line 104) | async getChargeOrder(@Req() req: IRequest, @Param('id') id: string) {
    method getChargeRecords (line 120) | async getChargeRecords(
    method charge (line 174) | async charge(@Req() req: IRequest, @Body() dto: CreateChargeOrderDto) {
    method getChargeRewardList (line 208) | async getChargeRewardList() {
    method wechatNotify (line 217) | async wechatNotify(@Req() req: IRequest, @Res() res: IResponse) {
    method giftCode (line 322) | async giftCode(@Req() req: IRequest, @Body() dto: UseGiftCodeDto) {
    method inviteCode (line 344) | async inviteCode(@Req() req: IRequest) {
    method inviteCodeProfit (line 360) | async inviteCodeProfit(

FILE: server/src/account/account.module.ts
  class AccountModule (line 14) | class AccountModule {}

FILE: server/src/account/account.service.ts
  class AccountService (line 28) | class AccountService {
    method constructor (line 32) | constructor(
    method create (line 37) | async create(userid: ObjectId): Promise<Account> {
    method findOne (line 57) | async findOne(userid: ObjectId) {
    method chargeWithTransaction (line 69) | async chargeWithTransaction(
    method createChargeOrder (line 131) | async createChargeOrder(
    method findOneChargeOrder (line 158) | async findOneChargeOrder(userid: ObjectId, id: ObjectId) {
    method pay (line 169) | async pay(
    method findAllChargeRewards (line 196) | async findAllChargeRewards() {
    method getAllChargeOrders (line 212) | async getAllChargeOrders(
    method getUserRecharge (line 284) | async getUserRecharge(userid: ObjectId, condition: AccountChargeOrderQ...
    method useGiftCode (line 320) | async useGiftCode(userid: ObjectId, code: string) {
    method findOneGiftCode (line 384) | async findOneGiftCode(code: string): Promise<GiftCode | null> {
    method generateInviteCode (line 392) | async generateInviteCode(uid: ObjectId): Promise<InviteCode | null> {
    method findOneInviteCode (line 420) | async findOneInviteCode(uid: ObjectId): Promise<InviteCode | null> {
    method getInviteProfit (line 430) | async getInviteProfit(uid: ObjectId, page: number, pageSize: number) {

FILE: server/src/account/dto/create-charge-order.dto.ts
  class CreateChargeOrderDto (line 9) | class CreateChargeOrderDto {
  class WeChatPaymentCreateOrderResult (line 28) | class WeChatPaymentCreateOrderResult {
  class CreateChargeOrderOutDto (line 33) | class CreateChargeOrderOutDto {

FILE: server/src/account/dto/get-charge-order.dto.ts
  type Currency (line 4) | enum Currency {
  type AccountChargePhase (line 9) | enum AccountChargePhase {
  type PaymentChannelType (line 15) | enum PaymentChannelType {
  class GetAccountChargeOrdersDto (line 24) | class GetAccountChargeOrdersDto<R = any> {

FILE: server/src/account/dto/invite-code.dto.ts
  class InviteCodeProfit (line 4) | class InviteCodeProfit {

FILE: server/src/account/dto/use-gift-code.dto.ts
  class UseGiftCodeDto (line 4) | class UseGiftCodeDto {

FILE: server/src/account/entities/account-charge-order.ts
  type Currency (line 4) | enum Currency {
  type AccountChargePhase (line 9) | enum AccountChargePhase {
  type PaymentChannelType (line 15) | enum PaymentChannelType {
  class AccountChargeOrder (line 26) | class AccountChargeOrder<R = any> {
    method constructor (line 62) | constructor(partial: Partial<AccountChargeOrder<R>>) {

FILE: server/src/account/entities/account-charge-reward.ts
  class AccountChargeReward (line 4) | class AccountChargeReward {

FILE: server/src/account/entities/account-gift-code.ts
  class GiftCode (line 3) | class GiftCode {

FILE: server/src/account/entities/account-transaction.ts
  class AccountTransaction (line 4) | class AccountTransaction {
    method constructor (line 32) | constructor(partial: Partial<AccountTransaction>) {

FILE: server/src/account/entities/account.ts
  type BaseState (line 4) | enum BaseState {
  class Account (line 9) | class Account {
    method constructor (line 35) | constructor(partial: Partial<Account>) {

FILE: server/src/account/entities/payment-channel.ts
  class PaymentChannel (line 6) | class PaymentChannel<S = any> {
    method constructor (line 28) | constructor(partial: Partial<PaymentChannel<S>>) {

FILE: server/src/account/interface/account-query.interface.ts
  type AccountChargeOrderQuery (line 3) | interface AccountChargeOrderQuery {

FILE: server/src/account/payment/payment-channel.service.ts
  class PaymentChannelService (line 9) | class PaymentChannelService {
    method findAll (line 17) | async findAll() {
    method getWeChatPaySpec (line 35) | async getWeChatPaySpec() {

FILE: server/src/account/payment/types.ts
  type WeChatPaySpec (line 3) | interface WeChatPaySpec {
  type WeChatPayOrder (line 12) | interface WeChatPayOrder {
  type WeChatPayOrderResponse (line 24) | interface WeChatPayOrderResponse {
  type WeChatPayTradeState (line 39) | enum WeChatPayTradeState {
  type WeChatPayDecryptedResult (line 49) | interface WeChatPayDecryptedResult {
  type WeChatPayChargeOrder (line 69) | type WeChatPayChargeOrder = AccountChargeOrder<WeChatPayDecryptedResult>

FILE: server/src/account/payment/wechat-pay.service.ts
  class WeChatPayService (line 16) | class WeChatPayService {
    method constructor (line 19) | constructor(private readonly httpService: HttpService) {}
    method send (line 21) | async send(spec: WeChatPaySpec, order: WeChatPayOrder) {
    method createSign (line 47) | private createSign(
    method getClient (line 66) | getClient(spec: WeChatPaySpec) {
    method getWeChatPayNotifyResult (line 79) | async getWeChatPayNotifyResult(
    method verifyNotify (line 105) | async verifyNotify(
    method decryptNotify (line 119) | decryptNotify(
    method getNotifyUrl (line 129) | getNotifyUrl() {

FILE: server/src/app.controller.ts
  class AppController (line 9) | class AppController {
    method getRuntimes (line 20) | async getRuntimes() {

FILE: server/src/app.interceptor.ts
  class AppInterceptor (line 18) | class AppInterceptor implements NestInterceptor {
    method constructor (line 19) | constructor(private httpInterceptorService: HttpInterceptorService) {}
    method intercept (line 21) | intercept(context: ExecutionContext, next: CallHandler): Observable<an...
    method handleDenyAction (line 60) | handleDenyAction(

FILE: server/src/app.module.ts
  class AppModule (line 91) | class AppModule {}

FILE: server/src/app.service.ts
  class AppService (line 4) | class AppService {}

FILE: server/src/application/application-task.service.ts
  class ApplicationTaskService (line 31) | class ApplicationTaskService {
    method constructor (line 35) | constructor(
    method tick (line 52) | async tick() {
    method handleCreatingPhase (line 81) | async handleCreatingPhase() {
    method handleDeletingPhase (line 184) | async handleDeletingPhase() {
    method handleDeletedState (line 319) | async handleDeletedState() {
    method unlock (line 350) | async unlock(appid: string) {

FILE: server/src/application/application.controller.ts
  class ApplicationController (line 68) | class ApplicationController {
    method constructor (line 71) | constructor(
    method create (line 91) | async create(@Body() dto: CreateApplicationDto, @InjectUser() user: Us...
    method findAll (line 172) | async findAll(@InjectUser() user: User) {
    method findOne (line 185) | async findOne(@Param('appid') appid: string) {
    method updateName (line 238) | async updateName(
    method updateState (line 253) | async updateState(
    method updateBundle (line 342) | async updateBundle(
    method bindDomain (line 516) | async bindDomain(
    method checkResolved (line 551) | async checkResolved(
    method remove (line 571) | async remove(@Param('appid') appid: string) {
    method delete (line 593) | async delete(
    method checkResourceSpecification (line 609) | private async checkResourceSpecification(

FILE: server/src/application/application.module.ts
  class ApplicationModule (line 64) | class ApplicationModule {}

FILE: server/src/application/application.service.ts
  class ApplicationService (line 33) | class ApplicationService {
    method constructor (line 36) | constructor(
    method create (line 48) | async create(
    method findAllByUser (line 137) | async findAllByUser(userid: ObjectId) {
    method findOne (line 198) | async findOne(appid: string) {
    method findOneUnsafe (line 244) | async findOneUnsafe(appid: string) {
    method findTrialApplications (line 291) | async findTrialApplications(userid: ObjectId) {
    method countByUser (line 311) | async countByUser(userid: ObjectId) {
    method updateName (line 321) | async updateName(appid: string, name: string) {
    method updateState (line 334) | async updateState(appid: string, state: ApplicationState) {
    method updateBundle (line 347) | async updateBundle(
    method remove (line 394) | async remove(appid: string) {
    method tryGenerateUniqueAppid (line 411) | async tryGenerateUniqueAppid() {
    method generateAppID (line 426) | private generateAppID(len: number) {
    method buildBundleResource (line 437) | private buildBundleResource(region: Region, dto: UpdateApplicationBund...
    method buildAutoscalingConfig (line 492) | private buildAutoscalingConfig(dto: UpdateApplicationBundleDto) {
    method getHourTime (line 504) | private getHourTime() {

FILE: server/src/application/bundle.service.ts
  class BundleService (line 6) | class BundleService {
    method findOne (line 10) | async findOne(appid: string) {
    method deleteOne (line 18) | async deleteOne(appid: string) {

FILE: server/src/application/configuration.service.ts
  class ApplicationConfigurationService (line 9) | class ApplicationConfigurationService {
    method constructor (line 13) | constructor(
    method count (line 18) | async count(appid: string) {
    method remove (line 24) | async remove(appid: string) {
    method publish (line 30) | async publish(conf: ApplicationConfiguration) {

FILE: server/src/application/dto/create-application.dto.ts
  constant STATES (line 6) | const STATES = [ApplicationState.Running]
  class CreateApplicationDto (line 8) | class CreateApplicationDto extends UpdateApplicationBundleDto {
    method validate (line 31) | validate() {

FILE: server/src/application/dto/create-autoscaling.dto.ts
  class CreateAutoscalingDto (line 12) | class CreateAutoscalingDto {
    method validate (line 50) | validate() {

FILE: server/src/application/dto/create-env.dto.ts
  class CreateEnvironmentDto (line 4) | class CreateEnvironmentDto {

FILE: server/src/application/dto/pod.dto.ts
  class PodNameListDto (line 4) | class PodNameListDto {
  class ContainerNameListDto (line 15) | class ContainerNameListDto {

FILE: server/src/application/dto/update-application.dto.ts
  constant STATES (line 17) | const STATES = [
  class UpdateApplicationDto (line 26) | class UpdateApplicationDto {
    method validate (line 38) | validate() {
  class UpdateApplicationNameDto (line 43) | class UpdateApplicationNameDto {
  class UpdateApplicationStateDto (line 51) | class UpdateApplicationStateDto {
  class UpdateApplicationBundleDto (line 67) | class UpdateApplicationBundleDto {
    method validate (line 100) | validate() {

FILE: server/src/application/entities/application-bundle.ts
  class ApplicationBundleResource (line 6) | class ApplicationBundleResource {
    method constructor (line 46) | constructor(partial: Partial<ApplicationBundleResource>) {
  class ApplicationBundle (line 51) | class ApplicationBundle {
    method constructor (line 73) | constructor(partial: Partial<ApplicationBundle>) {

FILE: server/src/application/entities/application-configuration.ts
  class EnvironmentVariable (line 4) | class EnvironmentVariable {
  class Autoscaling (line 12) | class Autoscaling {
  class ApplicationConfiguration (line 29) | class ApplicationConfiguration {

FILE: server/src/application/entities/application.ts
  type ApplicationPhase (line 9) | enum ApplicationPhase {
  type ApplicationState (line 20) | enum ApplicationState {
  class Application (line 27) | class Application {
    method constructor (line 67) | constructor(partial: Partial<Application>) {
  class ApplicationWithRelations (line 72) | class ApplicationWithRelations extends Application {

FILE: server/src/application/entities/runtime.ts
  class RuntimeImageGroup (line 4) | class RuntimeImageGroup {
  class Runtime (line 15) | class Runtime {
    method constructor (line 37) | constructor(partial: Partial<Runtime>) {

FILE: server/src/application/environment.controller.ts
  class EnvironmentVariableController (line 30) | class EnvironmentVariableController {
    method constructor (line 33) | constructor(private readonly confService: EnvironmentVariableService) {}
    method updateAll (line 49) | async updateAll(
    method add (line 74) | async add(@Param('appid') appid: string, @Body() dto: CreateEnvironmen...
    method get (line 93) | async get(@Param('appid') appid: string) {
    method delete (line 108) | async delete(@Param('appid') appid: string, @Param('name') name: strin...

FILE: server/src/application/environment.service.ts
  class EnvironmentVariableService (line 9) | class EnvironmentVariableService {
    method constructor (line 13) | constructor(private readonly confService: ApplicationConfigurationServ...
    method updateAll (line 15) | async updateAll(appid: string, dto: CreateEnvironmentDto[]) {
    method setOne (line 34) | async setOne(appid: string, dto: CreateEnvironmentDto) {
    method findAll (line 57) | async findAll(appid: string) {
    method deleteOne (line 65) | async deleteOne(appid: string, name: string) {

FILE: server/src/application/events/application-bundle-updating.event.ts
  class ApplicationBundleUpdatingEvent (line 5) | class ApplicationBundleUpdatingEvent {
    method constructor (line 11) | constructor(partial: Partial<ApplicationBundleUpdatingEvent>) {
    method eventName (line 15) | static get eventName() {

FILE: server/src/application/events/application-creating.event.ts
  class ApplicationCreatingEvent (line 5) | class ApplicationCreatingEvent {
    method constructor (line 11) | constructor(partial: Partial<ApplicationCreatingEvent>) {
    method eventName (line 15) | static get eventName() {

FILE: server/src/application/pod.controller.ts
  class PodController (line 19) | class PodController {
    method constructor (line 22) | constructor(private readonly podService: PodService) {}
    method getPodNameList (line 33) | async getPodNameList(@Param('appid') appid: string) {
    method getContainerNameList (line 48) | async getContainerNameList(

FILE: server/src/application/pod.service.ts
  type PodStatus (line 10) | type PodStatus = {
  class PodService (line 19) | class PodService {
    method constructor (line 22) | constructor(
    method getPodNameListByAppid (line 26) | async getPodNameListByAppid(appid: string) {
    method getContainerNameListByPodName (line 46) | async getContainerNameListByPodName(appid: string, podName: string) {
    method getPodStatusListByAppid (line 65) | async getPodStatusListByAppid(appid: string): Promise<PodStatus> {

FILE: server/src/authentication/application.auth.guard.ts
  class ApplicationAuthGuard (line 15) | class ApplicationAuthGuard implements CanActivate {
    method constructor (line 17) | constructor(
    method canActivate (line 22) | async canActivate(context: ExecutionContext) {
    method checkGroupAuth (line 48) | async checkGroupAuth(appid: string, user: User, context: ExecutionCont...

FILE: server/src/authentication/authentication.controller.ts
  class AuthenticationController (line 10) | class AuthenticationController {
    method constructor (line 11) | constructor(private readonly authService: AuthenticationService) {}
    method getProviders (line 19) | async getProviders() {
    method pat2token (line 32) | async pat2token(@Body() dto: Pat2TokenDto) {

FILE: server/src/authentication/authentication.module.ts
  class AuthenticationModule (line 57) | class AuthenticationModule {}

FILE: server/src/authentication/authentication.service.ts
  class AuthenticationService (line 15) | class AuthenticationService {
    method constructor (line 19) | constructor(
    method getProviders (line 28) | async getProviders() {
    method getPhoneProvider (line 38) | async getPhoneProvider() {
    method getPasswdProvider (line 42) | async getPasswdProvider() {
    method getGithubProvider (line 46) | async getGithubProvider() {
    method getEmailProvider (line 50) | async getEmailProvider() {
    method getProvider (line 55) | async getProvider(name: string) {
    method pat2token (line 67) | async pat2token(token: string): Promise<string> {
    method getAccessTokenByUser (line 82) | getAccessTokenByUser(user: User): string {

FILE: server/src/authentication/dto/email-signin.dto.ts
  class EmailSigninDto (line 11) | class EmailSigninDto {

FILE: server/src/authentication/dto/email-verify-code.dto.ts
  type EmailVerifyCodeType (line 3) | enum EmailVerifyCodeType {
  type EmailVerifyCodeState (line 8) | enum EmailVerifyCodeState {
  class EmailVerifyCode (line 13) | class EmailVerifyCode {

FILE: server/src/authentication/dto/github-bind.dto.ts
  class GithubBind (line 4) | class GithubBind {

FILE: server/src/authentication/dto/github-jump-login.dto.ts
  class GithubJumpLoginDto (line 4) | class GithubJumpLoginDto {

FILE: server/src/authentication/dto/github-signin.dto.ts
  class GithubSigninDto (line 4) | class GithubSigninDto {

FILE: server/src/authentication/dto/passwd-check.dto.ts
  class PasswdCheckDto (line 4) | class PasswdCheckDto {

FILE: server/src/authentication/dto/passwd-reset.dto.ts
  class PasswdResetDto (line 11) | class PasswdResetDto {

FILE: server/src/authentication/dto/passwd-signin.dto.ts
  class PasswdSigninDto (line 4) | class PasswdSigninDto {

FILE: server/src/authentication/dto/passwd-signup.dto.ts
  class PasswdSignupDto (line 11) | class PasswdSignupDto {

FILE: server/src/authentication/dto/pat2token.dto.ts
  class Pat2TokenDto (line 4) | class Pat2TokenDto {

FILE: server/src/authentication/dto/phone-signin.dto.ts
  class PhoneSigninDto (line 10) | class PhoneSigninDto {

FILE: server/src/authentication/dto/send-email-code.dto.ts
  class SendEmailCodeDto (line 5) | class SendEmailCodeDto {

FILE: server/src/authentication/dto/send-phone-code.dto.ts
  class SendPhoneCodeDto (line 5) | class SendPhoneCodeDto {

FILE: server/src/authentication/email/email.controller.ts
  class EmailController (line 16) | class EmailController {
    method constructor (line 19) | constructor(
    method sendCode (line 32) | async sendCode(@Req() req: IRequest, @Body() dto: SendEmailCodeDto) {
    method signin (line 49) | async signin(@Body() dto: EmailSigninDto) {

FILE: server/src/authentication/email/email.service.ts
  class EmailService (line 43) | class EmailService {
    method constructor (line 44) | constructor(
    method sendCode (line 52) | async sendCode(email: string, type: EmailVerifyCodeType, ip: string) {
    method saveCode (line 65) | async saveCode(
    method validateCode (line 83) | async validateCode(email: string, code: string, type: EmailVerifyCodeT...
    method disableCode (line 102) | async disableCode(email: string, code: string, type: EmailVerifyCodeTy...
    method disableSameTypeCode (line 112) | async disableSameTypeCode(email: string, type: EmailVerifyCodeType) {
    method checkSendable (line 122) | async checkSendable(email: string, ip: string) {
    method signup (line 160) | async signup(dto: EmailSigninDto, withUsername = false) {
    method signin (line 280) | signin(user: User) {
    method ifBindPassword (line 286) | async ifBindPassword(user: User) {

FILE: server/src/authentication/email/mailer.service.ts
  class MailerService (line 7) | class MailerService {
    method constructor (line 10) | constructor(private readonly authService: AuthenticationService) {}
    method sendEmailCode (line 12) | async sendEmailCode(email: string, code: string) {
    method sendEmailCodeBySmtp (line 24) | async sendEmailCodeBySmtp(email: string, code: string) {
    method loadEmailConfig (line 41) | private async loadEmailConfig() {

FILE: server/src/authentication/entities/auth-provider.ts
  type AuthProviderState (line 3) | enum AuthProviderState {
  class AuthProvider (line 8) | class AuthProvider {

FILE: server/src/authentication/entities/email-verify-code.ts
  type EmailVerifyCodeType (line 3) | enum EmailVerifyCodeType {
  type EmailVerifyCodeState (line 11) | enum EmailVerifyCodeState {
  class EmailVerifyCode (line 16) | class EmailVerifyCode {

FILE: server/src/authentication/entities/invite-code.ts
  type InviteCodeState (line 4) | enum InviteCodeState {
  class InviteCode (line 9) | class InviteCode {
  class InviteRelation (line 35) | class InviteRelation {

FILE: server/src/authentication/entities/sms-verify-code.ts
  type SmsVerifyCodeType (line 3) | enum SmsVerifyCodeType {
  type SmsVerifyCodeState (line 12) | enum SmsVerifyCodeState {
  class SmsVerifyCode (line 17) | class SmsVerifyCode {

FILE: server/src/authentication/entities/types.ts
  type AuthBindingType (line 1) | enum AuthBindingType {
  type AuthProviderBinding (line 7) | interface AuthProviderBinding {
  type AlismsConfig (line 15) | interface AlismsConfig {

FILE: server/src/authentication/github/github.controller.ts
  class GithubAuthController (line 28) | class GithubAuthController {
    method constructor (line 29) | constructor(
    method jumpLogin (line 37) | async jumpLogin(
    method signin (line 56) | async signin(@Body() dto: GithubSigninDto) {
    method bind (line 112) | async bind(@Body() dto: GithubBind, @InjectUser() user: User) {
    method unbind (line 143) | async unbind(@InjectUser() user: User) {

FILE: server/src/authentication/github/github.service.ts
  type GithubProfile (line 8) | interface GithubProfile {
  class GithubService (line 15) | class GithubService {
    method constructor (line 16) | constructor(
    method bindGithub (line 21) | async bindGithub(gid: number, user: User) {
    method signGithubTemporaryToken (line 33) | signGithubTemporaryToken(githubProfile: GithubProfile) {
    method verifyGithubTemporaryToken (line 41) | verifyGithubTemporaryToken(token: string): [boolean, GithubProfile | n...

FILE: server/src/authentication/jwt.auth.guard.ts
  class JwtAuthGuard (line 5) | class JwtAuthGuard extends AuthGuard('jwt') {}

FILE: server/src/authentication/jwt.strategy.ts
  class JwtStrategy (line 9) | class JwtStrategy extends PassportStrategy(Strategy) {
    method constructor (line 10) | constructor(private readonly userService: UserService) {
    method validate (line 23) | async validate(payload: any) {

FILE: server/src/authentication/phone/phone.controller.ts
  class PhoneController (line 17) | class PhoneController {
    method constructor (line 20) | constructor(
    method sendCode (line 33) | async sendCode(@Req() req: IRequest, @Body() dto: SendPhoneCodeDto) {
    method signin (line 50) | async signin(@Body() dto: PhoneSigninDto) {

FILE: server/src/authentication/phone/phone.service.ts
  class PhoneService (line 32) | class PhoneService {
    method constructor (line 36) | constructor(
    method sendCode (line 50) | async sendCode(phone: string, type: SmsVerifyCodeType, ip: string) {
    method signup (line 78) | async signup(dto: PhoneSigninDto, withUsername = false) {
    method signin (line 198) | signin(user: User) {
    method ifBindPassword (line 204) | async ifBindPassword(user: User) {

FILE: server/src/authentication/phone/sms.service.ts
  class SmsService (line 21) | class SmsService {
    method constructor (line 25) | constructor(private readonly authService: AuthenticationService) {}
    method sendPhoneCode (line 32) | async sendPhoneCode(phone: string, code: string) {
    method checkSendable (line 48) | async checkSendable(phone: string, ip: string) {
    method saveCode (line 81) | async saveCode(
    method validateCode (line 98) | async validateCode(phone: string, code: string, type: SmsVerifyCodeTyp...
    method disableCode (line 117) | async disableCode(phone: string, code: string, type: SmsVerifyCodeType) {
    method disableSameTypeCode (line 127) | async disableSameTypeCode(phone: string, type: SmsVerifyCodeType) {
    method sendAlismsCode (line 137) | private async sendAlismsCode(phone: string, code: string) {
    method loadAlismsConfig (line 160) | private async loadAlismsConfig() {

FILE: server/src/authentication/user-passwd/user-password.controller.ts
  class UserPasswordController (line 19) | class UserPasswordController {
    method constructor (line 21) | constructor(
    method signup (line 35) | async signup(@Body() dto: PasswdSignupDto) {
    method signin (line 107) | async signin(@Body() dto: PasswdSigninDto) {
    method reset (line 139) | async reset(@Body() dto: PasswdResetDto) {
    method check (line 187) | async check(@Body() dto: PasswdCheckDto) {

FILE: server/src/authentication/user-passwd/user-password.service.ts
  class UserPasswordService (line 29) | class UserPasswordService {
    method constructor (line 33) | constructor(
    method signup (line 40) | async signup(
    method signin (line 158) | signin(user: User) {
    method validatePassword (line 163) | async validatePassword(uid: ObjectId, password: string) {
    method resetPassword (line 180) | async resetPassword(uid: ObjectId, password: string) {
    method hasPassword (line 216) | async hasPassword(uid: ObjectId) {

FILE: server/src/billing/billing-creation-task.service.ts
  class BillingCreationTaskService (line 19) | class BillingCreationTaskService {
    method constructor (line 25) | constructor(
    method tick (line 31) | async tick() {
    method handleApplicationBillingCreating (line 52) | private async handleApplicationBillingCreating() {
    method createApplicationBilling (line 95) | private async createApplicationBilling(app: Application): Promise<Date> {
    method buildCalculatePriceInput (line 254) | private buildCalculatePriceInput(

FILE: server/src/billing/billing-payment-task.service.ts
  class BillingPaymentTaskService (line 27) | class BillingPaymentTaskService {
    method constructor (line 32) | constructor(private readonly notificationService: NotificationService) {}
    method tick (line 35) | async tick() {
    method handlePendingApplicationBilling (line 58) | private async handlePendingApplicationBilling() {

FILE: server/src/billing/billing.controller.ts
  class BillingController (line 21) | class BillingController {
    method constructor (line 24) | constructor(private readonly billing: BillingService) {}
    method findAll (line 74) | async findAll(
    method getExpense (line 119) | async getExpense(
    method getExpenseByDay (line 148) | async getExpenseByDay(

FILE: server/src/billing/billing.module.ts
  class BillingModule (line 24) | class BillingModule {}

FILE: server/src/billing/billing.service.ts
  class BillingService (line 21) | class BillingService {
    method constructor (line 25) | constructor(
    method query (line 30) | async query(userId: ObjectId, condition?: BillingQuery) {
    method findOne (line 77) | async findOne(appid: string, id: ObjectId) {
    method getExpenseByDay (line 85) | async getExpenseByDay(userId: ObjectId, condition?: BillingQuery) {
    method getExpense (line 149) | async getExpense(userId: ObjectId, condition?: BillingQuery) {
    method calculatePrice (line 188) | async calculatePrice(dto: CalculatePriceDto) {
    method getMeteringData (line 299) | async getMeteringData(app: Application, startAt: Date, endAt: Date) {
    method getAppTrafficUsage (line 329) | async getAppTrafficUsage(

FILE: server/src/billing/dto/billings.dto.ts
  class BillingsByDayDto (line 3) | class BillingsByDayDto {

FILE: server/src/billing/dto/calculate-price.dto.ts
  class CalculatePriceDto (line 5) | class CalculatePriceDto extends OmitType(UpdateApplicationBundleDto, [
  class CalculatePriceResultDto (line 19) | class CalculatePriceResultDto {

FILE: server/src/billing/entities/application-billing.ts
  type ApplicationBillingState (line 5) | enum ApplicationBillingState {
  class ApplicationBillingDetailItem (line 10) | class ApplicationBillingDetailItem {
  class ApplicationBillingDetail (line 18) | class ApplicationBillingDetail {
  class ApplicationBilling (line 44) | class ApplicationBilling {

FILE: server/src/billing/entities/network-traffic.ts
  class Traffic (line 3) | class Traffic {
  class TrafficMeta (line 15) | class TrafficMeta {

FILE: server/src/billing/entities/resource.ts
  type ResourceType (line 4) | enum ResourceType {
  class ResourceSpec (line 16) | class ResourceSpec {
  class ResourceOption (line 24) | class ResourceOption {
  class ResourceBundleSpecMap (line 47) | class ResourceBundleSpecMap {
  class ResourceBundle (line 76) | class ResourceBundle {

FILE: server/src/billing/interface/billing-query.interface.ts
  type BillingQuery (line 1) | interface BillingQuery {

FILE: server/src/billing/resource.controller.ts
  class ResourceController (line 20) | class ResourceController {
    method constructor (line 21) | constructor(
    method calculatePrice (line 34) | async calculatePrice(@Body() dto: CalculatePriceDto) {
    method getResourceOptions (line 61) | async getResourceOptions() {
    method getResourceOptionsByRegionId (line 72) | async getResourceOptionsByRegionId(@Param('regionId') regionId: string) {
    method getResourceBundles (line 84) | async getResourceBundles() {

FILE: server/src/billing/resource.service.ts
  class ResourceService (line 12) | class ResourceService {
    method findAll (line 15) | async findAll() {
    method findOne (line 24) | async findOne(id: ObjectId) {
    method findOneByType (line 31) | async findOneByType(type: ResourceType) {
    method findAllByRegionId (line 38) | async findAllByRegionId(regionId: ObjectId) {
    method groupByType (line 48) | groupByType(options: ResourceOption[]) {
    method findAllBundles (line 61) | async findAllBundles() {
    method findAllBundlesByRegionId (line 71) | async findAllBundlesByRegionId(regionId: ObjectId) {
    method findTrialBundle (line 81) | async findTrialBundle(regionId: ObjectId) {
    method isTrialBundle (line 90) | async isTrialBundle(input: CalculatePriceDto) {

FILE: server/src/constants.ts
  class ServerConfig (line 5) | class ServerConfig {
    method DEFAULT_LANGUAGE (line 6) | static get DEFAULT_LANGUAGE() {
    method DATABASE_URL (line 10) | static get DATABASE_URL() {
    method TRAFFIC_DATABASE_URL (line 17) | static get TRAFFIC_DATABASE_URL() {
    method NOTIFICATION_CENTER_URL (line 24) | static get NOTIFICATION_CENTER_URL() {
    method NOTIFICATION_CENTER_TOKEN (line 28) | static get NOTIFICATION_CENTER_TOKEN() {
    method JWT_SECRET (line 32) | static get JWT_SECRET() {
    method JWT_EXPIRES_IN (line 39) | static get JWT_EXPIRES_IN() {
    method DISABLED_INSTANCE_TASK (line 45) | static get DISABLED_INSTANCE_TASK() {
    method DISABLED_APPLICATION_TASK (line 49) | static get DISABLED_APPLICATION_TASK() {
    method DISABLED_GATEWAY_TASK (line 53) | static get DISABLED_GATEWAY_TASK() {
    method DISABLED_TRIGGER_TASK (line 57) | static get DISABLED_TRIGGER_TASK() {
    method DISABLED_STORAGE_TASK (line 61) | static get DISABLED_STORAGE_TASK() {
    method DISABLED_STORAGE_USER_TASK (line 65) | static get DISABLED_STORAGE_USER_TASK() {
    method DISABLED_BILLING_CREATION_TASK (line 69) | static get DISABLED_BILLING_CREATION_TASK() {
    method DISABLED_BILLING_PAYMENT_TASK (line 73) | static get DISABLED_BILLING_PAYMENT_TASK() {
    method DISABLED_DATABASE_USAGE_CAPTURE_TASK (line 77) | static get DISABLED_DATABASE_USAGE_CAPTURE_TASK() {
    method DISABLED_DATABASE_USAGE_LIMIT_TASK (line 81) | static get DISABLED_DATABASE_USAGE_LIMIT_TASK() {
    method DISABLED_STORAGE_USAGE_CAPTURE_TASK (line 85) | static get DISABLED_STORAGE_USAGE_CAPTURE_TASK() {
    method DISABLED_STORAGE_USAGE_LIMIT_TASK (line 89) | static get DISABLED_STORAGE_USAGE_LIMIT_TASK() {
    method DISABLE_NOTIFICATION_TASK (line 93) | static get DISABLE_NOTIFICATION_TASK() {
    method APPID_LENGTH (line 100) | static get APPID_LENGTH(): number {
    method RUNTIME_CUSTOM_DEPENDENCY_BASE_PATH (line 104) | static get RUNTIME_CUSTOM_DEPENDENCY_BASE_PATH() {
    method DEFAULT_RUNTIME_IMAGE (line 111) | static get DEFAULT_RUNTIME_IMAGE() {
    method SITE_NAME (line 128) | static get SITE_NAME() {
    method API_SERVER_URL (line 132) | static get API_SERVER_URL() {
    method DEFAULT_REGION_NAMESPACE (line 137) | static get DEFAULT_REGION_NAMESPACE() {
    method DEFAULT_REGION_DATABASE_URL (line 141) | static get DEFAULT_REGION_DATABASE_URL() {
    method DEFAULT_REGION_RUNTIME_DOMAIN (line 145) | static get DEFAULT_REGION_RUNTIME_DOMAIN() {
    method DEFAULT_REGION_WEBSITE_DOMAIN (line 152) | static get DEFAULT_REGION_WEBSITE_DOMAIN() {
    method DEFAULT_REGION_TLS_ENABLED (line 159) | static get DEFAULT_REGION_TLS_ENABLED() {
    method DEFAULT_REGION_TLS_WILDCARD_CERTIFICATE_SECRET_NAME (line 163) | static get DEFAULT_REGION_TLS_WILDCARD_CERTIFICATE_SECRET_NAME() {
    method DEFAULT_REGION_MINIO_DOMAIN (line 167) | static get DEFAULT_REGION_MINIO_DOMAIN() {
    method DEFAULT_REGION_MINIO_EXTERNAL_ENDPOINT (line 171) | static get DEFAULT_REGION_MINIO_EXTERNAL_ENDPOINT() {
    method DEFAULT_REGION_MINIO_INTERNAL_ENDPOINT (line 175) | static get DEFAULT_REGION_MINIO_INTERNAL_ENDPOINT() {
    method DEFAULT_REGION_MINIO_ROOT_ACCESS_KEY (line 179) | static get DEFAULT_REGION_MINIO_ROOT_ACCESS_KEY() {
    method DEFAULT_REGION_MINIO_ROOT_SECRET_KEY (line 183) | static get DEFAULT_REGION_MINIO_ROOT_SECRET_KEY() {
    method DEFAULT_REGION_PROMETHEUS_URL (line 187) | static get DEFAULT_REGION_PROMETHEUS_URL() {
    method HTTP_INTERCEPTOR_URL (line 192) | static get HTTP_INTERCEPTOR_URL() {
    method KUBEBLOCK_V5_UPGRADE_URL (line 196) | static get KUBEBLOCK_V5_UPGRADE_URL() {
  constant LABEL_KEY_USER_ID (line 201) | const LABEL_KEY_USER_ID = 'laf.dev/user.id'
  constant LABEL_KEY_APP_ID (line 202) | const LABEL_KEY_APP_ID = 'laf.dev/appid'
  constant LABEL_KEY_NAMESPACE_TYPE (line 203) | const LABEL_KEY_NAMESPACE_TYPE = 'laf.dev/namespace.type'
  constant LABEL_KEY_NODE_TYPE (line 204) | const LABEL_KEY_NODE_TYPE = 'laf.dev/node.type'
  type NodeType (line 205) | enum NodeType {
  constant HTTP_METHODS (line 212) | const HTTP_METHODS = ['HEAD', 'GET', 'POST', 'PUT', 'DELETE', 'PATCH']
  constant CN_PUBLISHED_FUNCTIONS (line 214) | const CN_PUBLISHED_FUNCTIONS = '__functions__'
  constant CN_PUBLISHED_POLICIES (line 215) | const CN_PUBLISHED_POLICIES = '__policies__'
  constant CN_PUBLISHED_CONF (line 216) | const CN_PUBLISHED_CONF = '__conf__'
  constant CN_PUBLISHED_WEBSITE_HOSTING (line 217) | const CN_PUBLISHED_WEBSITE_HOSTING = '__website_hosting__'
  constant X_LAF_TRIGGER_TOKEN_KEY (line 219) | const X_LAF_TRIGGER_TOKEN_KEY = 'x-laf-trigger-token'
  constant X_LAF_DEVELOP_TOKEN_KEY (line 220) | const X_LAF_DEVELOP_TOKEN_KEY = 'x-laf-develop-token'
  constant APPLICATION_SECRET_KEY (line 221) | const APPLICATION_SECRET_KEY = 'SERVER_SECRET'
  constant MINIO_COMMON_USER_GROUP (line 224) | const MINIO_COMMON_USER_GROUP = 'laf_owner_by_prefix_group'
  constant MINIO_COMMON_USER_POLICY (line 225) | const MINIO_COMMON_USER_POLICY = 'laf_owner_by_prefix'
  constant MINIO_READONLY_USER_GROUP (line 226) | const MINIO_READONLY_USER_GROUP = 'laf_owner_readonly_by_prefix_group'
  constant MINIO_READONLY_USER_POLICY (line 227) | const MINIO_READONLY_USER_POLICY = 'laf_owner_readonly_by_prefix'
  constant ONE_DAY_IN_SECONDS (line 229) | const ONE_DAY_IN_SECONDS = 60 * 60 * 24 // 1 day in seconds
  constant SEVEN_DAYS_IN_SECONDS (line 230) | const SEVEN_DAYS_IN_SECONDS = 60 * 60 * 24 * 7 // 7 days in seconds
  constant ONE_MONTH_IN_SECONDS (line 231) | const ONE_MONTH_IN_SECONDS = 60 * 60 * 24 * 31 // 31 days in seconds
  constant FOREVER_IN_SECONDS (line 232) | const FOREVER_IN_SECONDS = 60 * 60 * 24 * 365 * 1000 // 1000 years in se...
  constant TASK_LOCK_INIT_TIME (line 233) | const TASK_LOCK_INIT_TIME = new Date(0) // 1970-01-01 00:00:00
  constant MILLISECONDS_PER_DAY (line 234) | const MILLISECONDS_PER_DAY = 60 * 60 * 24 * 1000 // 1 day in milliseconds
  constant MILLISECONDS_PER_MINUTE (line 235) | const MILLISECONDS_PER_MINUTE = 60 * 1000 // 1 minute in milliseconds
  constant CPU_UNIT (line 238) | const CPU_UNIT = 1000
  constant PHONE_AUTH_PROVIDER_NAME (line 243) | const PHONE_AUTH_PROVIDER_NAME = 'phone'
  constant PASSWORD_AUTH_PROVIDER_NAME (line 244) | const PASSWORD_AUTH_PROVIDER_NAME = 'user-password'
  constant EMAIL_AUTH_PROVIDER_NAME (line 245) | const EMAIL_AUTH_PROVIDER_NAME = 'email'
  constant GITHUB_AUTH_PROVIDER_NAME (line 246) | const GITHUB_AUTH_PROVIDER_NAME = 'github'
  constant ALISMS_KEY (line 249) | const ALISMS_KEY = 'alisms'
  constant LIMIT_CODE_FREQUENCY (line 250) | const LIMIT_CODE_FREQUENCY = 60 * 1000 // 60 seconds (in milliseconds)
  constant LIMIT_CODE_PER_IP_PER_DAY (line 251) | const LIMIT_CODE_PER_IP_PER_DAY = 30 // 30 times
  constant CODE_VALIDITY (line 252) | const CODE_VALIDITY = 10 * 60 * 1000 // 10 minutes (in milliseconds)
  constant GITHUB_SIGNIN_TOKEN_VALIDITY (line 255) | const GITHUB_SIGNIN_TOKEN_VALIDITY = 5 * 60 * 1000
  constant STORAGE_LIMIT (line 258) | const STORAGE_LIMIT = 1000 // 1000 items
  constant HTTP_INTERCEPTOR_TIMEOUT (line 261) | const HTTP_INTERCEPTOR_TIMEOUT = 3000 // 3s
  constant KUBEBLOCK_V5_UPGRADE_API_TIMEOUT (line 264) | const KUBEBLOCK_V5_UPGRADE_API_TIMEOUT = 3000 // 3s

FILE: server/src/database/collection/collection.controller.ts
  class CollectionController (line 29) | class CollectionController {
    method constructor (line 31) | constructor(private readonly collectionService: CollectionService) {}
    method create (line 43) | async create(
    method findAll (line 68) | async findAll(@Param('appid') appid: string) {
    method findOne (line 86) | async findOne(@Param('appid') appid: string, @Param('name') name: stri...
    method update (line 105) | async update(
    method remove (line 128) | async remove(@Param('appid') appid: string, @Param('name') name: strin...

FILE: server/src/database/collection/collection.service.ts
  class CollectionService (line 9) | class CollectionService {
    method constructor (line 11) | constructor(
    method create (line 22) | async create(appid: string, dto: CreateCollectionDto) {
    method findAll (line 43) | async findAll(appid: string) {
    method findOne (line 66) | async findOne(appid: string, name: string) {
    method update (line 77) | async update(appid: string, name: string, dto: UpdateCollectionDto) {
    method remove (line 117) | async remove(appid: string, name: string) {

FILE: server/src/database/database-usage-capture-task.service.ts
  class DatabaseUsageCaptureTaskService (line 10) | class DatabaseUsageCaptureTaskService {
    method constructor (line 11) | constructor(private readonly databaseService: DatabaseService) {}
    method getLockTime (line 18) | private getLockTime() {
    method tick (line 31) | async tick() {
    method handleCaptureDatabaseUsage (line 61) | async handleCaptureDatabaseUsage() {
    method captureDatabaseUsage (line 81) | async captureDatabaseUsage(appid: string) {

FILE: server/src/database/database-usage-limit-task.service.ts
  class DatabaseUsageLimitTaskService (line 12) | class DatabaseUsageLimitTaskService {
    method constructor (line 13) | constructor(
    method getLockTime (line 24) | private getLockTime() {
    method tick (line 37) | async tick() {
    method handleLimitDatabaseUsage (line 67) | async handleLimitDatabaseUsage() {
    method limitDatabaseUsage (line 87) | async limitDatabaseUsage(appid: string) {

FILE: server/src/database/database.controller.ts
  class DatabaseController (line 43) | class DatabaseController {
    method constructor (line 46) | constructor(
    method proxy (line 60) | async proxy(@Param('appid') appid: string, @Req() req: IRequest) {
    method exportDatabase (line 101) | async exportDatabase(
    method importDatabase (line 149) | async importDatabase(

FILE: server/src/database/database.module.ts
  class DatabaseModule (line 59) | class DatabaseModule {}

FILE: server/src/database/database.service.ts
  class DatabaseService (line 33) | class DatabaseService {
    method constructor (line 37) | constructor(
    method create (line 43) | async create(appid: string) {
    method findOne (line 80) | async findOne(appid: string) {
    method delete (line 88) | async delete(database: Database) {
    method getInternalConnectionUri (line 104) | getInternalConnectionUri(region: Region, database: Database) {
    method getControlConnectionUri (line 116) | getControlConnectionUri(region: Region, database: Database) {
    method getDatabaseAccessor (line 130) | async getDatabaseAccessor(appid: string) {
    method findAndConnect (line 139) | async findAndConnect(appid: string) {
    method revokeWritePermission (line 154) | async revokeWritePermission(name: string, username: string, region: Re...
    method grantWritePermission (line 181) | async grantWritePermission(name: string, username: string, region: Reg...
    method getUserPermission (line 208) | async getUserPermission(name: string, username: string, region: Region) {
    method exportDatabase (line 236) | async exportDatabase(appid: string, filePath: string, uid: ObjectId) {
    method importDatabase (line 277) | async importDatabase(
    method recoverFunctionsToSystemDatabase (line 327) | async recoverFunctionsToSystemDatabase(appid: string, uid: ObjectId) {

FILE: server/src/database/dedicated-database/dedicated-database-task.service.ts
  class DedicatedDatabaseTaskService (line 15) | class DedicatedDatabaseTaskService {
    method constructor (line 20) | constructor(
    method tick (line 26) | async tick() {
    method handleStartingPhase (line 57) | async handleStartingPhase() {
    method handleDeletingPhase (line 165) | async handleDeletingPhase() {
    method handleStoppingPhase (line 207) | async handleStoppingPhase() {
    method handleDeletedState (line 307) | async handleDeletedState() {
    method handleStoppedState (line 331) | async handleStoppedState() {
    method handleRunningState (line 350) | async handleRunningState() {
    method handleRestartingState (line 369) | async handleRestartingState() {
    method handleUpdatingState (line 489) | async handleUpdatingState() {
    method relock (line 591) | async relock(appid: string, lockedTime = 0) {
    method getHourTime (line 607) | private getHourTime() {

FILE: server/src/database/dedicated-database/dedicated-database.service.ts
  class DedicatedDatabaseService (line 28) | class DedicatedDatabaseService {
    method constructor (line 30) | constructor(
    method create (line 36) | async create(appid: string, session?: ClientSession) {
    method applyDeployManifest (line 53) | async applyDeployManifest(
    method updateDeployManifest (line 67) | async updateDeployManifest(region: Region, appid: string) {
    method getDedicatedDatabaseSpec (line 213) | async getDedicatedDatabaseSpec(
    method findOne (line 225) | async findOne(appid: string) {
    method deleteDeployManifest (line 237) | async deleteDeployManifest(region: Region, appid: string) {
    method getDeployManifest (line 246) | async getDeployManifest(region: Region, appid: string) {
    method makeDeployManifest (line 264) | makeDeployManifest(
    method isDeployManifestChanged (line 301) | async isDeployManifestChanged(
    method applyKubeBlockOpsRequestManifest (line 344) | async applyKubeBlockOpsRequestManifest(
    method applyKubeBlockOpsRequestManifestForSpec (line 354) | async applyKubeBlockOpsRequestManifestForSpec(
    method deleteKubeBlockOpsManifest (line 370) | async deleteKubeBlockOpsManifest(
    method deleteKubeBlockOpsManifestForSpec (line 387) | async deleteKubeBlockOpsManifestForSpec(
    method getKubeBlockOpsRequestManifest (line 404) | async getKubeBlockOpsRequestManifest(
    method getKubeBlockOpsRequestManifestForSpec (line 429) | async getKubeBlockOpsRequestManifestForSpec(
    method makeKubeBlockOpsRequestManifest (line 456) | makeKubeBlockOpsRequestManifest(
    method makeKubeBlockOpsRequestManifestForSpec (line 494) | makeKubeBlockOpsRequestManifestForSpec(
    method updateState (line 546) | async updateState(appid: string, state: DedicatedDatabaseState) {
    method getDatabaseNamespace (line 559) | getDatabaseNamespace(region: Region, appid: string) {
    method getConnectionUri (line 571) | async getConnectionUri(region: Region, database: DedicatedDatabase) {
    method findAndConnect (line 631) | async findAndConnect(appid: string) {
    method getDatabaseAccessor (line 649) | async getDatabaseAccessor(appid: string) {
    method remove (line 659) | async remove(appid: string) {
    method databaseConnectionIsOk (line 678) | async databaseConnectionIsOk(appid: string): Promise<boolean> {
    method handleKubeBlockV5Upgrade (line 720) | private async handleKubeBlockV5Upgrade(
    method isKubeBlockV5MongoDb (line 751) | private isKubeBlockV5MongoDb(
    method callKubeBlockV5UpgradeAPI (line 763) | private async callKubeBlockV5UpgradeAPI(
    method parseKubeBlockV5Response (line 816) | private async parseKubeBlockV5Response(response: Response): Promise<an...

FILE: server/src/database/dto/create-collection.dto.ts
  class CreateCollectionDto (line 4) | class CreateCollectionDto {
    method validate (line 10) | async validate() {

FILE: server/src/database/dto/create-dedicated-database.dto.ts
  class CreateDedicatedDatabaseDto (line 4) | class CreateDedicatedDatabaseDto {

FILE: server/src/database/dto/create-policy.dto.ts
  class CreatePolicyDto (line 4) | class CreatePolicyDto {

FILE: server/src/database/dto/create-rule.dto.ts
  class CreatePolicyRuleDto (line 4) | class CreatePolicyRuleDto {

FILE: server/src/database/dto/import-database.dto.ts
  class ImportDatabaseDto (line 3) | class ImportDatabaseDto {

FILE: server/src/database/dto/update-collection.dto.ts
  class UpdateCollectionDto (line 4) | class UpdateCollectionDto {

FILE: server/src/database/dto/update-dedicated-database-state.dto.ts
  class UpdateDedicatedDatabaseStateDto (line 5) | class UpdateDedicatedDatabaseStateDto {

FILE: server/src/database/dto/update-dedicated-database.dto.ts
  class UpdateDedicatedDatabaseDto (line 3) | class UpdateDedicatedDatabaseDto extends CreateDedicatedDatabaseDto {}

FILE: server/src/database/dto/update-policy.dto.ts
  class UpdatePolicyDto (line 3) | class UpdatePolicyDto {

FILE: server/src/database/dto/update-rule.dto.ts
  class UpdatePolicyRuleDto (line 4) | class UpdatePolicyRuleDto {

FILE: server/src/database/entities/collection.ts
  class Collection (line 4) | class Collection implements CollectionInfo {

FILE: server/src/database/entities/database-policy.ts
  class DatabasePolicy (line 4) | class DatabasePolicy {
    method constructor (line 23) | constructor(partial: Partial<DatabasePolicy>) {
  class DatabasePolicyRule (line 28) | class DatabasePolicyRule {
    method constructor (line 50) | constructor(partial: Partial<DatabasePolicyRule>) {
  class DatabasePolicyWithRules (line 55) | class DatabasePolicyWithRules extends DatabasePolicy {

FILE: server/src/database/entities/database-sync-record.ts
  class DatabaseSyncRecord (line 3) | class DatabaseSyncRecord {

FILE: server/src/database/entities/database.ts
  type DatabasePhase (line 4) | enum DatabasePhase {
  type DatabaseState (line 11) | enum DatabaseState {
  type DatabasePermission (line 17) | enum DatabasePermission {
  class Database (line 22) | class Database {
    method constructor (line 57) | constructor(partial: Partial<Database>) {

FILE: server/src/database/entities/dedicated-database.ts
  type DedicatedDatabasePhase (line 4) | enum DedicatedDatabasePhase {
  type DedicatedDatabaseState (line 13) | enum DedicatedDatabaseState {
  class DedicatedDatabaseSpec (line 21) | class DedicatedDatabaseSpec {
  class DedicatedDatabase (line 39) | class DedicatedDatabase {

FILE: server/src/database/listeners/application.listener.ts
  class ApplicationListener (line 7) | class ApplicationListener {
    method constructor (line 8) | constructor(
    method handleApplicationCreatedEvent (line 16) | handleApplicationCreatedEvent(event: ApplicationCreatingEvent) {

FILE: server/src/database/mongo.service.ts
  class MongoService (line 8) | class MongoService {
    method createDatabase (line 19) | async createDatabase(
    method deleteDatabase (line 52) | async deleteDatabase(region: Region, name: string) {
    method connectDatabase (line 68) | async connectDatabase(connectionUri: string, dbName?: string) {

FILE: server/src/database/monitor/monitor.controller.ts
  class DedicatedDatabaseMonitorController (line 19) | class DedicatedDatabaseMonitorController {
    method constructor (line 20) | constructor(
    method getResource (line 31) | async getResource(@InjectApplication() app: ApplicationWithRelations) {
    method getConnection (line 41) | async getConnection(@InjectApplication() app: ApplicationWithRelations) {
    method getPerformance (line 51) | async getPerformance(@InjectApplication() app: ApplicationWithRelation...

FILE: server/src/database/monitor/monitor.service.ts
  class DedicatedDatabaseMonitorService (line 12) | class DedicatedDatabaseMonitorService {
    method constructor (line 15) | constructor(private readonly httpService: HttpService) {}
    method getResource (line 17) | async getResource(appid: string, region: Region) {
    method getConnection (line 49) | async getConnection(appid: string, region: Region) {
    method getPerformance (line 59) | async getPerformance(appid: string, region: Region) {
    method getDBName (line 84) | getDBName(appid: string) {
    method query (line 88) | private async query(
    method queryRange (line 100) | private async queryRange(
    method queryInternal (line 129) | private async queryInternal(

FILE: server/src/database/policy/policy-rule.controller.ts
  class PolicyRuleController (line 27) | class PolicyRuleController {
    method constructor (line 28) | constructor(private readonly ruleService: PolicyRuleService) {}
    method create (line 34) | async create(
    method findAll (line 64) | async findAll(
    method update (line 76) | async update(
    method remove (line 105) | async remove(

FILE: server/src/database/policy/policy-rule.service.ts
  class PolicyRuleService (line 9) | class PolicyRuleService {
    method constructor (line 11) | constructor(private readonly policyService: PolicyService) {}
    method create (line 13) | async create(appid: string, policyName: string, dto: CreatePolicyRuleD...
    method count (line 29) | async count(appid: string, policyName: string) {
    method findAll (line 37) | async findAll(appid: string, policyName: string) {
    method findOne (line 46) | async findOne(appid: string, policyName: string, collectionName: strin...
    method updateOne (line 54) | async updateOne(
    method removeOne (line 72) | async removeOne(appid: string, policyName: string, collectionName: str...

FILE: server/src/database/policy/policy.controller.ts
  class PolicyController (line 32) | class PolicyController {
    method constructor (line 33) | constructor(
    method create (line 42) | async create(@Param('appid') appid: string, @Body() dto: CreatePolicyD...
    method findAll (line 64) | async findAll(@Param('appid') appid: string) {
    method update (line 73) | async update(
    method remove (line 91) | async remove(@Param('appid') appid: string, @Param('name') name: strin...

FILE: server/src/database/policy/policy.service.ts
  class PolicyService (line 16) | class PolicyService {
    method constructor (line 20) | constructor(
    method create (line 25) | async create(appid: string, dto: CreatePolicyDto) {
    method count (line 36) | async count(appid: string) {
    method findAll (line 44) | async findAll(appid: string) {
    method findOne (line 71) | async findOne(appid: string, name: string) {
    method updateOne (line 91) | async updateOne(appid: string, name: string, dto: UpdatePolicyDto) {
    method removeOne (line 104) | async removeOne(appid: string, name: string) {
    method removeAll (line 125) | async removeAll(appid: string) {
    method publish (line 144) | async publish(appid: string, name: string) {
    method unpublish (line 173) | async unpublish(appid: string, name: string) {

FILE: server/src/dependency/dependency.controller.ts
  class DependencyController (line 31) | class DependencyController {
    method constructor (line 34) | constructor(private readonly depsService: DependencyService) {}
    method add (line 47) | async add(
    method update (line 67) | async update(
    method getDependencies (line 85) | async getDependencies(@Param('appid') appid: string) {
    method remove (line 101) | async remove(

FILE: server/src/dependency/dependency.module.ts
  class DependencyModule (line 12) | class DependencyModule {}

FILE: server/src/dependency/dependency.service.ts
  class Dependency (line 10) | class Dependency {
  class DependencyService (line 18) | class DependencyService {
    method constructor (line 22) | constructor(private readonly confService: ApplicationConfigurationServ...
    method getMergedObjects (line 29) | async getMergedObjects(appid: string): Promise<Dependency[]> {
    method add (line 47) | async add(appid: string, dto: CreateDependencyDto[]) {
    method update (line 71) | async update(appid: string, dto: UpdateDependencyDto[]) {
    method removeOne (line 99) | async removeOne(appid: string, name: string) {
    method getExtras (line 123) | async getExtras(appid: string) {
    method getBuiltins (line 136) | getBuiltins() {
    method validate (line 141) | validate(dto: CreateDependencyDto) {

FILE: server/src/dependency/dto/create-dependency.dto.ts
  class CreateDependencyDto (line 4) | class CreateDependencyDto {

FILE: server/src/dependency/dto/delete-dependency.dto.ts
  class DeleteDependencyDto (line 4) | class DeleteDependencyDto {

FILE: server/src/dependency/dto/update-dependency.dto.ts
  class UpdateDependencyDto (line 4) | class UpdateDependencyDto {

FILE: server/src/function-template/dto/create-function-template.dto.ts
  class FunctionTemplateItemDto (line 19) | class FunctionTemplateItemDto {
    method validate (line 41) | validate() {
  class CreateFunctionTemplateDto (line 46) | class CreateFunctionTemplateDto {

FILE: server/src/function-template/dto/function-template-usedBy.dto.ts
  class GetFunctionTemplateUsedByDto (line 4) | class GetFunctionTemplateUsedByDto {

FILE: server/src/function-template/dto/function-templates.dto.ts
  class FunctionTemplateItemSource (line 7) | class FunctionTemplateItemSource {
  class UserInfo (line 12) | class UserInfo {
  class FunctionTemplateItems (line 19) | class FunctionTemplateItems {
  class FunctionTemplatesDto (line 44) | class FunctionTemplatesDto {
  class GetMyStaredFunctionTemplatesDto (line 91) | class GetMyStaredFunctionTemplatesDto {
  class GetMyRecentUseFunctionTemplatesDto (line 114) | class GetMyRecentUseFunctionTemplatesDto {

FILE: server/src/function-template/dto/update-function-template.dto.ts
  class UpdateFunctionTemplateDto (line 18) | class UpdateFunctionTemplateDto {

FILE: server/src/function-template/dto/use-function-template.dto.ts
  class UseFunctionTemplateDto (line 5) | class UseFunctionTemplateDto {

FILE: server/src/function-template/entities/function-template.ts
  type RelationState (line 9) | enum RelationState {
  class FunctionTemplate (line 14) | class FunctionTemplate {
  class FunctionTemplateItem (line 55) | class FunctionTemplateItem {
  class FunctionTemplateStarRelation (line 79) | class FunctionTemplateStarRelation {
  class FunctionTemplateUseRelation (line 94) | class FunctionTemplateUseRelation {

FILE: server/src/function-template/function-template.controller.ts
  class FunctionTemplateController (line 36) | class FunctionTemplateController {
    method constructor (line 37) | constructor(
    method createFunctionTemplate (line 53) | async createFunctionTemplate(
    method useFunctionTemplate (line 85) | async useFunctionTemplate(
    method updateFunctionTemplate (line 141) | async updateFunctionTemplate(
    method deleteFunctionTemplate (line 173) | async deleteFunctionTemplate(
    method starFunctionTemplate (line 202) | async starFunctionTemplate(
    method getUserFunctionTemplateStarState (line 230) | async getUserFunctionTemplateStarState(
    method getFunctionTemplateUsedBy (line 250) | async getFunctionTemplateUsedBy(
    method getMyFunctionTemplate (line 290) | async getMyFunctionTemplate(
    method getRecommendFunctionTemplate (line 446) | async getRecommendFunctionTemplate(
    method getOneFunctionTemplate (line 482) | async getOneFunctionTemplate(
    method getAllFunctionTemplate (line 514) | async getAllFunctionTemplate(

FILE: server/src/function-template/function-template.module.ts
  class FunctionTemplateModule (line 19) | class FunctionTemplateModule {}

FILE: server/src/function-template/function-template.service.ts
  type FindFunctionTemplatesParams (line 26) | interface FindFunctionTemplatesParams {
  class FunctionTemplateService (line 35) | class FunctionTemplateService {
    method constructor (line 36) | constructor(
    method createFunctionTemplate (line 49) | async createFunctionTemplate(
    method updateFunctionTemplate (line 120) | async updateFunctionTemplate(
    method useFunctionTemplate (line 260) | async useFunctionTemplate(
    method deleteFunctionTemplate (line 448) | async deleteFunctionTemplate(templateId: ObjectId, userid: ObjectId) {
    method starFunctionTemplate (line 501) | async starFunctionTemplate(templateId: ObjectId, userid: ObjectId) {
    method functionTemplateUserStarState (line 564) | async functionTemplateUserStarState(templateId: ObjectId, userid: Obje...
    method functionTemplateUsedBy (line 575) | async functionTemplateUsedBy(
    method findOne (line 607) | async findOne(templateId: ObjectId) {
    method findFunctionTemplates (line 647) | async findFunctionTemplates(
    method findFunctionTemplatesByName (line 763) | async findFunctionTemplatesByName(
    method findRecommendFunctionTemplates (line 888) | async findRecommendFunctionTemplates(
    method findMyFunctionTemplates (line 1062) | async findMyFunctionTemplates(
    method findMyStaredFunctionTemplates (line 1235) | async findMyStaredFunctionTemplates(
    method findMyRecentUseFunctionTemplates (line 1405) | async findMyRecentUseFunctionTemplates(
    method findOneFunctionTemplate (line 1567) | async findOneFunctionTemplate(templateId: ObjectId, userid?: ObjectId) {
    method findFunctionTemplateItems (line 1584) | async findFunctionTemplateItems(templateId: ObjectId) {
    method getCountOfFunctionTemplates (line 1593) | async getCountOfFunctionTemplates(uid: ObjectId) {
    method applicationAuthGuard (line 1602) | async applicationAuthGuard(appid, userid) {
    method generateLookup (line 1616) | generateLookup(
    method projectFields (line 1632) | projectFields() {
    method fieldsForAuthorInfo (line 1655) | fieldsForAuthorInfo() {
    method fieldForUserStarRelation (line 1693) | fieldForUserStarRelation(functionTemplateId: string, userid: ObjectId) {

FILE: server/src/function/dto/compile-function.dto.ts
  class CompileFunctionDto (line 4) | class CompileFunctionDto {

FILE: server/src/function/dto/create-function.dto.ts
  class CreateFunctionDto (line 13) | class CreateFunctionDto {
    method validate (line 42) | validate() {

FILE: server/src/function/dto/update-function-debug.dto.ts
  class UpdateFunctionDebugDto (line 4) | class UpdateFunctionDebugDto {
    method validate (line 9) | validate() {

FILE: server/src/function/dto/update-function.dto.ts
  class UpdateFunctionDto (line 14) | class UpdateFunctionDto {
    method validate (line 48) | validate() {

FILE: server/src/function/entities/cloud-function-history.ts
  class CloudFunctionHistorySource (line 4) | class CloudFunctionHistorySource {
  class CloudFunctionHistory (line 9) | class CloudFunctionHistory {

FILE: server/src/function/entities/cloud-function.ts
  class CloudFunctionSource (line 4) | class CloudFunctionSource {
  type HttpMethod (line 24) | enum HttpMethod {
  class CloudFunction (line 33) | class CloudFunction {

FILE: server/src/function/function.controller.ts
  class FunctionController (line 39) | class FunctionController {
    method constructor (line 40) | constructor(
    method create (line 56) | async create(
    method findAll (line 102) | async findAll(@Param('appid') appid: string) {
    method findOne (line 116) | async findOne(
    method updateDebug (line 142) | async updateDebug(
    method update (line 174) | async update(
    method remove (line 208) | async remove(
    method compile (line 244) | async compile(
    method getHistory (line 273) | async getHistory(

FILE: server/src/function/function.module.ts
  class FunctionModule (line 22) | class FunctionModule {}

FILE: server/src/function/function.service.ts
  class FunctionService (line 30) | class FunctionService {
    method constructor (line 34) | constructor(
    method create (line 43) | async create(appid: string, userid: ObjectId, dto: CreateFunctionDto) {
    method findAll (line 67) | async findAll(appid: string) {
    method count (line 76) | async count(appid: string) {
    method findOne (line 84) | async findOne(appid: string, name: string) {
    method updateOne (line 92) | async updateOne(func: CloudFunction, dto: UpdateFunctionDto) {
    method updateOneDebug (line 185) | async updateOneDebug(func: CloudFunction, dto: UpdateFunctionDebugDto) {
    method removeOne (line 199) | async removeOne(func: CloudFunction) {
    method removeAll (line 229) | async removeAll(appid: string) {
    method publish (line 239) | async publish(func: CloudFunction, oldFuncName?: string) {
    method publishMany (line 260) | async publishMany(funcs: CloudFunction[]) {
    method publishFunctionTemplateItems (line 279) | async publishFunctionTemplateItems(funcs: CloudFunction[]) {
    method unpublish (line 297) | async unpublish(appid: string, name: string) {
    method compile (line 309) | async compile(func: CloudFunction, dto: CompileFunctionDto) {
    method generateRuntimeToken (line 323) | async generateRuntimeToken(
    method getInClusterRuntimeUrl (line 358) | getInClusterRuntimeUrl(region: Region, appid: string) {
    method getLogs (line 367) | async getLogs(
    method getHistory (line 399) | async getHistory(func: CloudFunction) {
    method addOneHistoryRecord (line 418) | async addOneHistoryRecord(func: CloudFunction, changelog = '') {
    method deleteHistory (line 432) | async deleteHistory(func: CloudFunction, session?: ClientSession) {
    method deleteHistoryAll (line 444) | async deleteHistoryAll(appid: string) {

FILE: server/src/gateway/bucket-domain-task.service.ts
  class BucketDomainTaskService (line 12) | class BucketDomainTaskService {
    method constructor (line 16) | constructor(
    method tick (line 22) | async tick() {
    method handleCreatingPhase (line 56) | async handleCreatingPhase() {
    method handleDeletingPhase (line 99) | async handleDeletingPhase() {
    method handleActiveState (line 142) | async handleActiveState() {
    method handleInactiveState (line 161) | async handleInactiveState() {
    method handleDeletedState (line 181) | async handleDeletedState() {

FILE: server/src/gateway/bucket-domain.service.ts
  class BucketDomainService (line 11) | class BucketDomainService {
    method constructor (line 15) | constructor(private readonly regionService: RegionService) {}
    method create (line 20) | async create(bucket: StorageBucket) {
    method findOne (line 43) | async findOne(bucket: StorageBucket) {
    method count (line 52) | async count(appid: string) {
    method deleteOne (line 64) | async deleteOne(bucket: StorageBucket) {
    method deleteAll (line 76) | async deleteAll(appid: string) {

FILE: server/src/gateway/certificate.service.ts
  class CertificateService (line 11) | class CertificateService {
    method constructor (line 13) | constructor(private readonly clusterService: ClusterService) {}
    method getRuntimeCertificateName (line 15) | getRuntimeCertificateName(domain: RuntimeDomain) {
    method getWebsiteCertificateName (line 19) | getWebsiteCertificateName(website: WebsiteHosting) {
    method getWebsiteCertificate (line 24) | async getWebsiteCertificate(region: Region, website: WebsiteHosting) {
    method createWebsiteCertificate (line 31) | async createWebsiteCertificate(region: Region, website: WebsiteHosting) {
    method deleteWebsiteCertificate (line 42) | async deleteWebsiteCertificate(region: Region, website: WebsiteHosting) {
    method getRuntimeCertificate (line 49) | async getRuntimeCertificate(region: Region, runtimeDomain: RuntimeDoma...
    method createRuntimeCertificate (line 56) | async createRuntimeCertificate(region: Region, runtimeDomain: RuntimeD...
    method deleteRuntimeCertificate (line 72) | async deleteRuntimeCertificate(region: Region, runtimeDomain: RuntimeD...
    method read (line 78) | private async read(region: Region, name: string, namespace: string) {
    method create (line 98) | private async create(
    method remove (line 125) | private async remove(region: Region, name: string, namespace: string) {

FILE: server/src/gateway/entities/bucket-domain.ts
  class BucketDomain (line 4) | class BucketDomain {
    method constructor (line 15) | constructor(partial: Partial<BucketDomain>) {

FILE: server/src/gateway/entities/runtime-domain.ts
  type DomainPhase (line 4) | enum DomainPhase {
  type DomainState (line 11) | enum DomainState {
  class RuntimeDomain (line 17) | class RuntimeDomain {
    method constructor (line 44) | constructor(partial: Partial<RuntimeDomain>) {

FILE: server/src/gateway/gateway.module.ts
  class GatewayModule (line 29) | class GatewayModule {}

FILE: server/src/gateway/ingress/bucket-ingress.service.ts
  class BucketGatewayService (line 10) | class BucketGatewayService {
    method constructor (line 12) | constructor(private readonly clusterService: ClusterService) {}
    method getIngressName (line 14) | getIngressName(bucketDomain: BucketDomain) {
    method getIngress (line 18) | async getIngress(region: Region, domain: BucketDomain) {
    method createIngress (line 31) | async createIngress(region: Region, domain: BucketDomain) {
    method deleteIngress (line 95) | async deleteIngress(region: Region, domain: BucketDomain) {

FILE: server/src/gateway/ingress/runtime-ingress.service.ts
  class RuntimeGatewayService (line 11) | class RuntimeGatewayService {
    method constructor (line 13) | constructor(
    method getIngressName (line 18) | getIngressName(domain: RuntimeDomain) {
    method getIngress (line 22) | async getIngress(region: Region, domain: RuntimeDomain) {
    method createIngress (line 37) | async createIngress(region: Region, runtimeDomain: RuntimeDomain) {
    method deleteIngress (line 105) | async deleteIngress(region: Region, domain: RuntimeDomain) {

FILE: server/src/gateway/ingress/website-ingress.service.ts
  class WebsiteHostingGatewayService (line 11) | class WebsiteHostingGatewayService {
    method constructor (line 14) | constructor(
    method getIngressName (line 19) | getIngressName(websiteHosting: WebsiteHosting) {
    method getIngress (line 23) | async getIngress(region: Region, website: WebsiteHosting) {
    method createIngress (line 36) | async createIngress(region: Region, website: WebsiteHosting) {
    method deleteIngress (line 84) | async deleteIngress(region: Region, website: WebsiteHosting) {

FILE: server/src/gateway/runtime-domain-task.service.ts
  class RuntimeDomainTaskService (line 17) | class RuntimeDomainTaskService {
    method constructor (line 21) | constructor(
    method tick (line 28) | async tick() {
    method handleCreatingPhase (line 67) | async handleCreatingPhase() {
    method handleDeletingPhase (line 144) | async handleDeletingPhase() {
    method handleActiveState (line 211) | async handleActiveState() {
    method handleInactiveState (line 234) | async handleInactiveState() {
    method handleDeletedState (line 258) | async handleDeletedState() {
    method relock (line 285) | async relock(appid: string, lockedTime = 0) {

FILE: server/src/gateway/runtime-domain.service.ts
  class RuntimeDomainService (line 14) | class RuntimeDomainService {
    method constructor (line 18) | constructor(private readonly regionService: RegionService) {}
    method create (line 23) | async create(appid: string) {
    method checkResolved (line 42) | async checkResolved(appid: string, customDomain: string) {
    method bindCustomDomain (line 62) | async bindCustomDomain(appid: string, customDomain: string) {
    method removeCustomDomain (line 82) | async removeCustomDomain(appid: string) {
    method findOne (line 105) | async findOne(appid: string) {
    method deleteOne (line 117) | async deleteOne(appid: string) {

FILE: server/src/gateway/website-task.service.ts
  class WebsiteTaskService (line 22) | class WebsiteTaskService {
    method constructor (line 26) | constructor(
    method tick (line 35) | async tick() {
    method handleCreatingPhase (line 69) | async handleCreatingPhase() {
    method handleDeletingPhase (line 155) | async handleDeletingPhase() {
    method handleInactiveState (line 224) | async handleInactiveState() {
    method handleActiveState (line 247) | async handleActiveState() {
    method handleDeletedState (line 271) | async handleDeletedState() {
    method relock (line 298) | async relock(id: ObjectId, lockedTime = 0) {
    method publish (line 314) | async publish(website: WebsiteHosting) {
    method unpublish (line 333) | async unpublish(website: WebsiteHosting) {

FILE: server/src/generated/i18n.generated.ts
  type I18nTranslations (line 4) | type I18nTranslations = {
  type I18nPath (line 32) | type I18nPath = Path<I18nTranslations>;

FILE: server/src/group/dto/create-group.dto.ts
  class CreateGroupDto (line 4) | class CreateGroupDto {

FILE: server/src/group/dto/find-group-invite-code.dto.ts
  class FindGroupInviteCodeDto (line 6) | class FindGroupInviteCodeDto extends OmitType(GroupInviteCode, [

FILE: server/src/group/dto/find-group-member.dto.ts
  class FindGroupMemberDto (line 5) | class FindGroupMemberDto extends OmitType(GroupMember, [

FILE: server/src/group/dto/get-group-invite-code-detail.dto.ts
  class GetGroupInviteCodeDetailDto (line 7) | class GetGroupInviteCodeDetailDto extends OmitType(GroupInviteCode, [

FILE: server/src/group/dto/update-group-invite-code.dto.ts
  class GenerateGroupInviteCodeDto (line 6) | class GenerateGroupInviteCodeDto {

FILE: server/src/group/dto/update-group-member-role.dto.ts
  class UpdateGroupMemberRoleDto (line 5) | class UpdateGroupMemberRoleDto {

FILE: server/src/group/dto/update-group.dto.ts
  class UpdateGroupDto (line 4) | class UpdateGroupDto {

FILE: server/src/group/entities/group-application.ts
  class GroupApplication (line 4) | class GroupApplication {

FILE: server/src/group/entities/group-invite-code.ts
  class GroupInviteCode (line 5) | class GroupInviteCode {

FILE: server/src/group/entities/group-member.ts
  type GroupRole (line 4) | enum GroupRole {
  class GroupMember (line 20) | class GroupMember {

FILE: server/src/group/entities/group.ts
  class Group (line 5) | class Group {
  class GroupWithRole (line 25) | class GroupWithRole extends Group {

FILE: server/src/group/group-application/group-application.controller.ts
  class GroupApplicationController (line 33) | class GroupApplicationController {
    method constructor (line 34) | constructor(
    method append (line 43) | async append(
    method find (line 70) | async find(@Param('groupId') groupId: string) {
    method remove (line 80) | async remove(

FILE: server/src/group/group-application/group-application.service.ts
  class GroupApplicationService (line 7) | class GroupApplicationService {
    method find (line 10) | async find(groupId: ObjectId) {
    method findOne (line 34) | async findOne(groupId: ObjectId, appid: string) {
    method append (line 59) | async append(groupId: ObjectId, appid: string, session?: ClientSession) {
    method remove (line 83) | async remove(groupId: ObjectId, appid: string) {
    method removeAll (line 94) | async removeAll(groupId: ObjectId, session: ClientSession) {

FILE: server/src/group/group-auth.guard.ts
  class GroupAuthGuard (line 11) | class GroupAuthGuard implements CanActivate {
    method constructor (line 12) | constructor(
    method canActivate (line 18) | async canActivate(context: ExecutionContext) {

FILE: server/src/group/group-invite/group-invite.controller.ts
  class GroupInviteController (line 33) | class GroupInviteController {
    method constructor (line 34) | constructor(private readonly inviteService: GroupInviteService) {}
    method getInviteCode (line 41) | async getInviteCode(@Param('groupId') groupId: string) {
    method generateInviteCode (line 51) | async generateInviteCode(
    method deleteInviteCode (line 71) | async deleteInviteCode(@Param('code') code: string) {

FILE: server/src/group/group-invite/group-invite.service.ts
  class GroupInviteService (line 13) | class GroupInviteService {
    method constructor (line 17) | constructor(private readonly memberService: GroupMemberService) {}
    method useInviteCode (line 19) | async useInviteCode(inviteCode: GroupInviteCode, user: User) {
    method getInviteCode (line 55) | async getInviteCode(groupId: ObjectId) {
    method generateInviteCode (line 80) | async generateInviteCode(groupId: ObjectId, dto: GenerateGroupInviteCo...
    method tryGenerateInviteCode (line 96) | async tryGenerateInviteCode() {
    method generateInviteCodeInternal (line 109) | private generateInviteCodeInternal(len = 10) {
    method findOneByCode (line 116) | async findOneByCode(code: string) {
    method findOneByCodeDetail (line 123) | async findOneByCodeDetail(code: string) {
    method deleteInviteCode (line 174) | async deleteInviteCode(inviteCode: GroupInviteCode, session?: ClientSe...
    method deleteManyInviteCode (line 181) | async deleteManyInviteCode(groupId: ObjectId, session?: ClientSession) {

FILE: server/src/group/group-member/group-member.controller.ts
  class GroupMemberController (line 36) | class GroupMemberController {
    method constructor (line 37) | constructor(
    method findMembers (line 47) | async findMembers(@Param('groupId') groupId: string) {
    method addMember (line 56) | async addMember(@Param('code') code: string, @InjectUser() user: User) {
    method removeMember (line 86) | async removeMember(
    method updateMemberRole (line 119) | async updateMemberRole(
    method leaveGroup (line 143) | async leaveGroup(

FILE: server/src/group/group-member/group-member.service.ts
  class GroupMemberService (line 9) | class GroupMemberService {
    method updateRole (line 13) | async updateRole(groupId: ObjectId, uid: ObjectId, role: GroupRole) {
    method findOne (line 29) | async findOne(groupId: ObjectId, uid: ObjectId, session?: ClientSessio...
    method find (line 42) | async find(groupId: ObjectId) {
    method addOne (line 67) | async addOne(
    method removeOne (line 88) | async removeOne(groupId: ObjectId, uid: ObjectId) {
    method removeAll (line 97) | async removeAll(groupId: ObjectId, session?: ClientSession) {
    method leaveGroup (line 107) | async leaveGroup(groupId: ObjectId, uid: ObjectId) {

FILE: server/src/group/group.controller.ts
  class GroupController (line 38) | class GroupController {
    method constructor (line 39) | constructor(
    method findGroupByAppId (line 48) | async findGroupByAppId(
    method findGroupByInviteCode (line 63) | async findGroupByInviteCode(@Param('code') code: string) {
    method findAll (line 75) | async findAll(@InjectUser() user: User) {
    method create (line 84) | async create(@Body() dto: CreateGroupDto, @InjectUser() user: User) {
    method delete (line 98) | async delete(
    method findOne (line 117) | async findOne(@Param('groupId') groupId: string) {
    method updateGroup (line 127) | async updateGroup(

FILE: server/src/group/group.module.ts
  class GroupModule (line 28) | class GroupModule {}

FILE: server/src/group/group.service.ts
  class GroupService (line 13) | class GroupService {
    method constructor (line 17) | constructor(
    method findGroupByAppid (line 23) | async findGroupByAppid(appid: string) {
    method findAll (line 28) | async findAll(uid: ObjectId) {
    method countGroups (line 73) | async countGroups(uid: ObjectId) {
    method findGroupsByAppidAndUid (line 81) | async findGroupsByAppidAndUid(appid: string, uid: ObjectId) {
    method update (line 119) | async update(groupId: ObjectId, dto: Partial<Group>) {
    method findOne (line 133) | async findOne(groupId: ObjectId, session?: ClientSession) {
    method findOneWithRole (line 140) | async findOneWithRole(groupId: ObjectId, uid: ObjectId) {
    method create (line 162) | async create(name: string, createdBy: ObjectId, appid?: string) {
    method delete (line 205) | async delete(groupId: ObjectId, session?: ClientSession) {

FILE: server/src/initializer/initializer.module.ts
  class InitializerModule (line 9) | class InitializerModule {}

FILE: server/src/initializer/initializer.service.ts
  class InitializerService (line 20) | class InitializerService {
    method init (line 24) | async init() {
    method createDefaultRegion (line 34) | async createDefaultRegion() {
    method createDefaultRuntime (line 124) | async createDefaultRuntime() {
    method createDefaultAuthProvider (line 151) | async createDefaultAuthProvider() {
    method createDefaultResourceOptions (line 198) | async createDefaultResourceOptions() {
    method createDefaultResourceBundles (line 337) | async createDefaultResourceBundles() {
    method createDefaultSettings (line 436) | async createDefaultSettings() {
    method createNecessarySettings (line 552) | async createNecessarySettings() {

FILE: server/src/instance/instance-task.service.ts
  class InstanceTaskService (line 25) | class InstanceTaskService {
    method constructor (line 29) | constructor(
    method tick (line 35) | async tick() {
    method handleRunningState (line 75) | async handleRunningState() {
    method handleStartingPhase (line 99) | async handleStartingPhase() {
    method handleStoppedState (line 257) | async handleStoppedState() {
    method handleStoppingPhase (line 281) | async handleStoppingPhase() {
    method handleRestartingState (line 379) | async handleRestartingState() {
    method relock (line 419) | async relock(appid: string, lockedTime = 0) {
    method getHourTime (line 435) | private getHourTime() {

FILE: server/src/instance/instance.module.ts
  class InstanceModule (line 13) | class InstanceModule {}

FILE: server/src/instance/instance.service.ts
  class InstanceService (line 21) | class InstanceService {
    method constructor (line 24) | constructor(
    method create (line 33) | public async create(appid: string) {
    method remove (line 53) | public async remove(appid: string) {
    method get (line 86) | public async get(appid: string) {
    method restart (line 100) | public async restart(appid: string) {
    method createDeployment (line 146) | private async createDeployment(
    method createService (line 169) | private async createService(
    method getDeployment (line 188) | private async getDeployment(app: ApplicationWithRelations) {
    method getService (line 204) | private async getService(app: ApplicationWithRelations) {
    method makeServiceSpec (line 221) | private makeServiceSpec(labels: Record<string, string>) {
    method makeDeploymentSpec (line 233) | private async makeDeploymentSpec(
    method createHorizontalPodAutoscaler (line 449) | private async createHorizontalPodAutoscaler(
    method getHorizontalPodAutoscaler (line 477) | private async getHorizontalPodAutoscaler(app: ApplicationWithRelations) {
    method makeHorizontalPodAutoscalerSpec (line 498) | private makeHorizontalPodAutoscalerSpec(app: ApplicationWithRelations) {
    method reapplyHorizontalPodAutoscaler (line 567) | public async reapplyHorizontalPodAutoscaler(
    method getRuntimeLabel (line 603) | private getRuntimeLabel(appid: string) {

FILE: server/src/interceptor/dto/http-interceptor.dto.ts
  type HttpInterceptorAction (line 1) | enum HttpInterceptorAction {
  class HttpInterceptorRewrite (line 5) | class HttpInterceptorRewrite {
  class HttpInterceptorRedirect (line 9) | class HttpInterceptorRedirect {
  class HttpInterceptorResponseDto (line 13) | class HttpInterceptorResponseDto {

FILE: server/src/interceptor/http-interceptor.service.ts
  class HttpInterceptorService (line 9) | class HttpInterceptorService {
    method constructor (line 10) | constructor(private httpService: HttpService) {}
    method processPreInterceptor (line 16) | async processPreInterceptor(context: ExecutionContext, requestId: stri...
    method processPostInterceptor (line 21) | async processPostInterceptor(
    method buildRequestData (line 31) | buildRequestData(context: ExecutionContext, requestId: string) {
    method buildResponseData (line 47) | buildResponseData(response: Response, requestId: string, data: any): a...
    method sendRequestToInterceptor (line 56) | async sendRequestToInterceptor(data: any) {

FILE: server/src/interceptor/interceptor.module.ts
  class InterceptorModule (line 10) | class InterceptorModule {}

FILE: server/src/log/entities/function-log.ts
  class FunctionLog (line 4) | class FunctionLog {

FILE: server/src/log/log.controller.ts
  class LogController (line 28) | class LogController {
    method constructor (line 31) | constructor(
    method getLogs (line 73) | async getLogs(
    method streamLogs (line 103) | async streamLogs(

FILE: server/src/log/log.module.ts
  class LogModule (line 13) | class LogModule {}

FILE: server/src/main.ts
  function bootstrap (line 12) | async function bootstrap() {

FILE: server/src/monitor/dto/query-metrics.dto.ts
  class QueryMetricsDto (line 14) | class QueryMetricsDto {

FILE: server/src/monitor/monitor.controller.ts
  class MonitorController (line 17) | class MonitorController {
    method constructor (line 18) | constructor(private readonly monitorService: MonitorService) {}
    method getData (line 24) | async getData(@Param('appid') appid: string, @Query() dto: QueryMetric...

FILE: server/src/monitor/monitor.module.ts
  class MonitorModule (line 13) | class MonitorModule {}

FILE: server/src/monitor/monitor.service.ts
  type MonitorMetric (line 50) | enum MonitorMetric {
  class MonitorService (line 60) | class MonitorService {
    method constructor (line 61) | constructor(
    method getData (line 67) | async getData(
    method query (line 102) | private async query(conf: PrometheusConf, query: string) {
    method queryRange (line 108) | private async queryRange(
    method queryInternal (line 134) | private async queryInternal(

FILE: server/src/notification/entities/notification.ts
  type NotificationState (line 5) | enum NotificationState {
  class Notification (line 10) | class Notification {

FILE: server/src/notification/notification-task.service.ts
  class NotificationTaskService (line 10) | class NotificationTaskService {
    method constructor (line 14) | constructor(
    method tick (line 20) | tick() {
    method handlePendingNotifications (line 26) | async handlePendingNotifications() {
    method sendNotification (line 64) | async sendNotification(data: Notification) {

FILE: server/src/notification/notification-type.ts
  type NotificationType (line 1) | enum NotificationType {

FILE: server/src/notification/notification.controller.ts
  class NotificationController (line 11) | class NotificationController {
    method constructor (line 12) | constructor(private readonly notificationService: NotificationService) {}
    method findAll (line 18) | async findAll(

FILE: server/src/notification/notification.module.ts
  class NotificationModule (line 15) | class NotificationModule {}

FILE: server/src/notification/notification.service.ts
  class NotificationService (line 11) | class NotificationService {
    method constructor (line 12) | constructor(private readonly i18n: I18nService) {}
    method notify (line 14) | async notify(params: {
    method getNotificationTitle (line 34) | getNotificationTitle(type: NotificationType, payload?: object) {
    method genNotificationContent (line 41) | genNotificationContent(type: NotificationType, payload?: object) {
    method findAll (line 48) | async findAll(user: User, page: number, pageSize: number) {

FILE: server/src/recycle-bin/cloud-function/dto/delete-recycle-bin-functions.dto.ts
  class DeleteRecycleBinItemsDto (line 4) | class DeleteRecycleBinItemsDto {

FILE: server/src/recycle-bin/cloud-function/dto/get-recycle-bin-functions.dto.ts
  class CloudFunctionSourceDto (line 13) | class CloudFunctionSourceDto {
  class FunctionRecycleBinItemsDto (line 33) | class FunctionRecycleBinItemsDto {

FILE: server/src/recycle-bin/cloud-function/dto/restore-recycle-bin-functions.dto.ts
  class RestoreRecycleBinItemsDto (line 4) | class RestoreRecycleBinItemsDto {

FILE: server/src/recycle-bin/cloud-function/function-recycle-bin.controller.ts
  class FunctionRecycleBinController (line 29) | class FunctionRecycleBinController {
    method constructor (line 30) | constructor(
    method deleteRecycleBinItems (line 41) | async deleteRecycleBinItems(
    method emptyRecycleBin (line 60) | async emptyRecycleBin(@Param('appid') appid: string) {
    method restoreRecycleBinItems (line 75) | async restoreRecycleBinItems(
    method getRecycleBin (line 95) | async getRecycleBin(

FILE: server/src/recycle-bin/cloud-function/function-recycle-bin.service.ts
  class FunctionRecycleBinService (line 10) | class FunctionRecycleBinService {
    method constructor (line 14) | constructor(
    method addToRecycleBin (line 19) | async addToRecycleBin(func: CloudFunction, session?: ClientSession) {
    method getRecycleBinStorage (line 29) | async getRecycleBinStorage(appid: string) {
    method getRecycleBin (line 36) | async getRecycleBin(appid: string, condition: CloudFunctionRecycleBinQ...
    method emptyRecycleBin (line 86) | async emptyRecycleBin(appid: string) {
    method deleteFromRecycleBin (line 93) | async deleteFromRecycleBin(appid: string, ids: ObjectId[]) {
    method restoreDeletedCloudFunctions (line 102) | async restoreDeletedCloudFunctions(appid: string, ids: ObjectId[]) {

FILE: server/src/recycle-bin/cloud-function/interface/function-recycle-bin-query.interface.ts
  type CloudFunctionRecycleBinQuery (line 1) | interface CloudFunctionRecycleBinQuery {

FILE: server/src/recycle-bin/entities/recycle-bin.ts
  type DataType (line 1) | enum DataType {
  class RecycleBin (line 5) | class RecycleBin {

FILE: server/src/recycle-bin/recycle-bin.module.ts
  class RecycleBinModule (line 30) | class RecycleBinModule {}

FILE: server/src/region/cluster/cluster.service.ts
  class ClusterService (line 15) | class ClusterService {
    method loadKubeConfig (line 23) | loadKubeConfig(region: Region) {
    method createAppNamespace (line 39) | async createAppNamespace(region: Region, appid: string, userid: string) {
    method getAppNamespace (line 61) | async getAppNamespace(region: Region, appid: string) {
    method removeAppNamespace (line 76) | async removeAppNamespace(region: Region, appid: string) {
    method applyYamlString (line 91) | async applyYamlString(region: Region, specString: string) {
    method deleteYamlString (line 139) | async deleteYamlString(region: Region, specString: string) {
    method patchCustomObject (line 160) | async patchCustomObject(region: Region, spec: KubernetesObject) {
    method deleteCustomObject (line 199) | async deleteCustomObject(region: Region, spec: KubernetesObject) {
    method getIngress (line 214) | async getIngress(region: Region, name: string, namespace: string) {
    method createIngress (line 232) | async createIngress(region: Region, body: V1Ingress) {
    method deleteIngress (line 240) | async deleteIngress(region: Region, name: string, namespace: string) {
    method makeCoreV1Api (line 246) | makeCoreV1Api(region: Region) {
    method makeAppsV1Api (line 251) | makeAppsV1Api(region: Region) {
    method makeBatchV1Api (line 256) | makeBatchV1Api(region: Region) {
    method makeObjectApi (line 261) | makeObjectApi(region: Region) {
    method makeCustomObjectApi (line 266) | makeCustomObjectApi(region: Region) {
    method makeHorizontalPodAutoscalingV2Api (line 271) | makeHorizontalPodAutoscalingV2Api(region: Region) {
    method makeNetworkingApi (line 276) | makeNetworkingApi(region: Region) {

FILE: server/src/region/cluster/types.ts
  type ConditionStatus (line 5) | enum ConditionStatus {
  class ObjectMeta (line 11) | class ObjectMeta implements V1ObjectMeta {
    method constructor (line 35) | constructor(name?: string, namespace?: string) {
  class Condition (line 41) | class Condition {
  class GroupVersionKind (line 57) | class GroupVersionKind {
    method constructor (line 66) | constructor(group: string, version: string, kind: string, plural?: str...
    method fromKubernetesObject (line 80) | static fromKubernetesObject(obj: KubernetesObject): GroupVersionKind {
    method apiVersion (line 91) | get apiVersion(): string {

FILE: server/src/region/entities/region.ts
  type ApplicationNamespaceMode (line 4) | enum ApplicationNamespaceMode {
  type RegionNamespaceConf (line 9) | type RegionNamespaceConf = {
  type RegionClusterConf (line 15) | type RegionClusterConf = {
  type RegionResourceBundleConf (line 22) | type RegionResourceBundleConf = {
  type RegionDatabaseConf (line 27) | type RegionDatabaseConf = {
  type TLSConf (line 36) | type TLSConf = {
  type RegionGatewayConf (line 45) | type RegionGatewayConf = {
  type RegionStorageConf (line 53) | type RegionStorageConf = {
  type LogServerConf (line 63) | type LogServerConf = {
  type PrometheusConf (line 69) | type PrometheusConf = {
  type DeployManifest (line 73) | type DeployManifest = {
  class Region (line 77) | class Region {
    method constructor (line 107) | constructor(partial: Partial<Region>) {

FILE: server/src/region/region.controller.ts
  class RegionController (line 8) | class RegionController {
    method constructor (line 10) | constructor(private readonly regionService: RegionService) {}
    method getRegions (line 18) | async getRegions() {

FILE: server/src/region/region.module.ts
  class RegionModule (line 12) | class RegionModule {}

FILE: server/src/region/region.service.ts
  class RegionService (line 9) | class RegionService {
    method findByAppId (line 12) | async findByAppId(appid: string) {
    method findOne (line 25) | async findOne(id: ObjectId) {
    method findAll (line 30) | async findAll() {
    method findOneDesensitized (line 35) | async findOneDesensitized(id: ObjectId) {
    method findAllDesensitized (line 51) | async findAllDesensitized() {

FILE: server/src/runtime-builtin-deps.ts
  constant RUNTIME_BUILTIN_DEPENDENCIES (line 1) | const RUNTIME_BUILTIN_DEPENDENCIES = {

FILE: server/src/setting/entities/setting.ts
  type SettingKey (line 4) | enum SettingKey {
  class Setting (line 33) | class Setting {

FILE: server/src/setting/setting.controller.ts
  class SettingController (line 8) | class SettingController {
    method constructor (line 11) | constructor(private readonly settingService: SettingService) {}
    method getSettings (line 18) | async getSettings() {
    method getSettingByKey (line 28) | async getSettingByKey(@Param('key') key: string) {

FILE: server/src/setting/setting.module.ts
  class SettingModule (line 9) | class SettingModule {}

FILE: server/src/setting/setting.service.ts
  class SettingService (line 6) | class SettingService {
    method findAllPublic (line 10) | async findAllPublic() {
    method findOnePublic (line 17) | async findOnePublic(key: string) {
    method findAll (line 21) | async findAll() {
    method findOne (line 25) | async findOne(key: string) {

FILE: server/src/storage/bucket-task.service.ts
  class BucketTaskService (line 15) | class BucketTaskService {
    method constructor (line 19) | constructor(
    method tick (line 26) | async tick() {
    method handleCreatingPhase (line 62) | async handleCreatingPhase() {
    method handleDeletingPhase (line 132) | async handleDeletingPhase() {
    method handleActiveState (line 201) | async handleActiveState() {
    method handleInactiveState (line 220) | async handleInactiveState() {
    method handleDeletedState (line 240) | async handleDeletedState() {

FILE: server/src/storage/bucket.controller.ts
  class BucketController (line 33) | class BucketController {
    method constructor (line 36) | constructor(
    method create (line 51) | async create(
    method findAll (line 92) | async findAll(@Param('appid') appid: string) {
    method findOne (line 107) | async findOne(@Param('appid') appid: string, @Param('name') name: stri...
    method update (line 126) | async update(
    method remove (line 153) | async remove(@Param('appid') appid: string, @Param('name') name: strin...
    method getSTSPolicy (line 173) | async getSTSPolicy() {

FILE: server/src/storage/bucket.service.ts
  class BucketService (line 12) | class BucketService {
    method constructor (line 16) | constructor(
    method create (line 21) | async create(appid: string, dto: CreateBucketDto) {
    method count (line 40) | async count(appid: string) {
    method findOne (line 48) | async findOne(appid: string, name: string) {
    method findAll (line 78) | async findAll(appid: string) {
    method updateOne (line 108) | async updateOne(bucket: StorageBucket, dto: UpdateBucketDto) {
    method deleteOne (line 133) | async deleteOne(bucket: StorageBucket) {

FILE: server/src/storage/cloud-bin-bucket.service.ts
  class CloudBinBucketService (line 12) | class CloudBinBucketService {
    method constructor (line 16) | constructor(
    method ensureCloudBinBucket (line 23) | async ensureCloudBinBucket(appid: string) {
    method createPullUrl (line 41) | async createPullUrl(appid: string, filename: string) {
    method createPushUrl (line 56) | async createPushUrl(appid: string, filename: string) {
    method getS3Client (line 70) | async getS3Client(appid: string) {
    method getNodeModulesCachePullUrl (line 90) | async getNodeModulesCachePullUrl
Copy disabled (too large) Download .json
Condensed preview — 1545 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (21,238K chars).
[
  {
    "path": ".editorconfig",
    "chars": 146,
    "preview": "root = true\n\n[!{node_modules}/**]\nend_of_line = lf\ncharset = utf-8\ninsert_final_newline = true\n\n[{*.js,*.ts}]\nindent_sty"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 812,
    "preview": "# These are supported funding model platforms\n\ngithub: [maslow] # Replace with up to 4 GitHub Sponsors-enabled usernames"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 3041,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 298,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Join Our Discord\n    url: https://discord.gg/uWZqAwwdvy\n    about: "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 2703,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/question.yml",
    "chars": 2218,
    "preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE"
  },
  {
    "path": ".github/actions/build-docs/action.yml",
    "chars": 656,
    "preview": "name: Build Laf Docs\ndescription: Build Laf Docs, to reuse in other workflows\n\ninputs:\n  docs-path:\n    description: 'Pa"
  },
  {
    "path": ".github/gh-bot.yml",
    "chars": 684,
    "preview": "version: v1\ndebug: true\naction:\n  printConfig: false\n  release:\n    retry: 15s\n    actionName: Release\n    allowOps:\n   "
  },
  {
    "path": ".github/no-response.yml",
    "chars": 697,
    "preview": "# Configuration for probot-no-response - https://github.com/probot/no-response\n\n# Number of days of inactivity before an"
  },
  {
    "path": ".github/stale.yml",
    "chars": 676,
    "preview": "\n\n# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 15\n# Number of days of inactivity before "
  },
  {
    "path": ".github/workflows/build-scripts-updated.yml",
    "chars": 717,
    "preview": "name: build-scripts-updated\n\non:\n  workflow_dispatch:\n  push:\n    branches:\n      - main\n    paths:\n      - \"build/**\"\n "
  },
  {
    "path": ".github/workflows/build-sealos-cluster-image.yml",
    "chars": 5280,
    "preview": "name: build-sealos-cluster-image\n\non:\n  # Triggered when dockerize-web, dockerize-server, or build-scripts-updated workf"
  },
  {
    "path": ".github/workflows/deploy-doc.yml",
    "chars": 961,
    "preview": "name: deploy docs\n\non:\n  workflow_dispatch:\n  push:\n    branches: [main]\n    paths:\n      - \"docs/**\"\n      - \".github/w"
  },
  {
    "path": ".github/workflows/doc-deploy.yml",
    "chars": 1039,
    "preview": "name: Deploy Documentation\n\non:\n  push:\n    branches: [main]\n    paths:\n      - \"docs/**\"\n      - \".github/workflows/doc"
  },
  {
    "path": ".github/workflows/doc-preview.yml",
    "chars": 1304,
    "preview": "name: Laf Doc Preview\n\n# todo: When the requirements are mature enough, refactor using TypeScript, create a generic GitH"
  },
  {
    "path": ".github/workflows/dockerize-runtime-exporter.yml",
    "chars": 9298,
    "preview": "name: dockerize-runtime-exporter\n\non:\n  workflow_dispatch:\n  pull_request:\n    branches: [main]\n    types: [opened, sync"
  },
  {
    "path": ".github/workflows/dockerize-runtime-nodejs.yml",
    "chars": 16671,
    "preview": "name: dockerize-runtime-nodejs\n\non:\n  workflow_dispatch:\n  pull_request:\n    branches: [main]\n    types: [opened, synchr"
  },
  {
    "path": ".github/workflows/dockerize-server.yml",
    "chars": 8888,
    "preview": "name: dockerize-server\n\non:\n  workflow_dispatch:\n  pull_request:\n    branches: [main]\n    types: [opened, synchronize, r"
  },
  {
    "path": ".github/workflows/dockerize-web.yml",
    "chars": 9963,
    "preview": "name: dockerize-web\n\non:\n  workflow_dispatch:\n  pull_request:\n    branches: [main]\n    types: [opened, synchronize, reop"
  },
  {
    "path": ".github/workflows/e2e.yml",
    "chars": 866,
    "preview": "name: e2e\n\non:\n  repository_dispatch:\n    types: [cluster_image_build_success, dockerize_runtime_success]\n  workflow_dis"
  },
  {
    "path": ".github/workflows/link-pr.yml",
    "chars": 1415,
    "preview": "name: links when pr\n\non:\n  pull_request:\n    branches: [main]\n    paths:\n      - \"**.md\"\n      - \"docs/**\"\n      - \".lyc"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 5346,
    "preview": "name: release\n\non:\n  workflow_dispatch:\n  push:\n    tags:\n      - v*.*.*\n\npermissions:\n  contents: read\n  packages: writ"
  },
  {
    "path": ".github/workflows/sync-upstream.yml",
    "chars": 1064,
    "preview": "name: Upstream Sync\n\npermissions:\n  contents: write\n\non:\n  schedule:\n    - cron: \"0 0 * * *\" # every day\n  workflow_disp"
  },
  {
    "path": ".gitignore",
    "chars": 399,
    "preview": "node_modules\ndist\n\nupload\ndata/*\ntmp\n\necosystem.config.js\n.DS_Store\n.idea\n\ncoverage\n.nyc_output\n\nkubernetes-dev/mongo-da"
  },
  {
    "path": ".husky/pre-commit",
    "chars": 73,
    "preview": "#!/usr/bin/env sh\n. \"$(dirname -- \"$0\")/_/husky.sh\"\n\nnpm run lint-staged\n"
  },
  {
    "path": ".lycheeignore",
    "chars": 350,
    "preview": ".*appid.*\n.*xx.*\nhttps://beian.miit.gov.cn/\n.*127-0-0-1.*\nhttps://oss.laf.run\nhttps://github.com/labring/laf/edit/main/d"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 307,
    "preview": "{\n  \"recommendations\": [\n    \"dbaeumer.vscode-eslint\",\n    \"christian-kohler.npm-intellisense\",\n    \"streetsidesoftware."
  },
  {
    "path": ".vscode/settings.json",
    "chars": 3009,
    "preview": "{\n  // editor\n  \"editor.formatOnSave\": true,\n  \"editor.formatOnType\": true,\n  \"editor.tabSize\": 2,\n  \"editor.suggestSele"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 217077,
    "preview": "# [1.0.0-beta.4](https://github.com/labring/laf/compare/v1.0.0...v1.0.0-beta.4) (2024-04-01)\n\n\n\n# [1.0.0](https://github"
  },
  {
    "path": "CLAUDE.md",
    "chars": 9512,
    "preview": "# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## "
  },
  {
    "path": "LICENSE",
    "chars": 13316,
    "preview": "\n                                 Apache License\n                                 Version 2.0, January 2004\n            "
  },
  {
    "path": "README.md",
    "chars": 2769,
    "preview": "![laf](https://socialify.git.ci/labring/laf/image?description=1&descriptionEditable=%E5%83%8F%E5%86%99%E5%8D%9A%E5%AE%A2"
  },
  {
    "path": "README_en.md",
    "chars": 4795,
    "preview": "![laf](https://socialify.git.ci/labring/laf/image?description=1&descriptionEditable=Write%20code%20like%20writing%20a%20"
  },
  {
    "path": "SECURITY.md",
    "chars": 1790,
    "preview": "# Security Policy\n\n## Supported Versions\n\nWhich versions are currently being supported with security updates.\n\n| Version"
  },
  {
    "path": "build/Kubefile",
    "chars": 735,
    "preview": "FROM scratch\n\nUSER 65532:65532\nCOPY charts  ./charts\n# COPY manifests ./manifests\nCOPY registry ./registry\nCOPY start.sh"
  },
  {
    "path": "build/README.md",
    "chars": 220,
    "preview": "\n## Intro\n\n- charts/* - Helm charts for laf cluster.\n- start.sh - Install laf cluster use helm manually. (should install"
  },
  {
    "path": "build/charts/kube-prometheus-stack/.helmignore",
    "chars": 398,
    "preview": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation"
  },
  {
    "path": "build/charts/kube-prometheus-stack/CONTRIBUTING.md",
    "chars": 656,
    "preview": "# Contributing Guidelines\n\n## How to contribute to this chart\n\n1. Fork this repository, develop and test your Chart.\n1. "
  },
  {
    "path": "build/charts/kube-prometheus-stack/Chart.yaml",
    "chars": 2073,
    "preview": "annotations:\n  artifacthub.io/license: Apache-2.0\n  artifacthub.io/links: |\n    - name: Chart Source\n      url: https://"
  },
  {
    "path": "build/charts/kube-prometheus-stack/README.md",
    "chars": 60748,
    "preview": "# kube-prometheus-stack\n\nInstalls the [kube-prometheus stack](https://github.com/prometheus-operator/kube-prometheus), a"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/Chart.yaml",
    "chars": 41,
    "preview": "apiVersion: v2\nname: crds\nversion: 0.0.0\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/README.md",
    "chars": 153,
    "preview": "# crds subchart\n\nSee: [https://github.com/prometheus-community/helm-charts/issues/3548](https://github.com/prometheus-co"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagerconfigs.yaml",
    "chars": 270245,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-alertmanagers.yaml",
    "chars": 450555,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-podmonitors.yaml",
    "chars": 35699,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-probes.yaml",
    "chars": 37240,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusagents.yaml",
    "chars": 505821,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheuses.yaml",
    "chars": 580493,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-prometheusrules.yaml",
    "chars": 6415,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-scrapeconfigs.yaml",
    "chars": 18091,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-servicemonitors.yaml",
    "chars": 37516,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/crds/crds/crd-thanosrulers.yaml",
    "chars": 424068,
    "preview": "# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.66.0/example/prometheus-operator-crd/moni"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/.helmignore",
    "chars": 348,
    "preview": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/Chart.yaml",
    "chars": 919,
    "preview": "annotations:\n  artifacthub.io/license: AGPL-3.0-only\n  artifacthub.io/links: |\n    - name: Chart Source\n      url: https"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/README.md",
    "chars": 53546,
    "preview": "# Grafana Helm Chart\n\n* Installs the web dashboarding system [Grafana](http://grafana.org/)\n\n## Get Repo Info\n\n```consol"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/ci/default-values.yaml",
    "chars": 104,
    "preview": "# Leave this file empty to ensure that CI runs builds against the default configuration in values.yaml.\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/ci/with-affinity-values.yaml",
    "chars": 579,
    "preview": "affinity:\n  podAntiAffinity:\n    preferredDuringSchedulingIgnoredDuringExecution:\n      - podAffinityTerm:\n          lab"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/ci/with-dashboard-json-values.yaml",
    "chars": 1337,
    "preview": "dashboards:\n  my-provider:\n    my-awesome-dashboard:\n      # An empty but valid dashboard\n      json: |\n        {\n      "
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/ci/with-dashboard-values.yaml",
    "chars": 425,
    "preview": "dashboards:\n  my-provider:\n    my-awesome-dashboard:\n      gnetId: 10000\n      revision: 1\n      datasource: Prometheus\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/ci/with-extraconfigmapmounts-values.yaml",
    "chars": 371,
    "preview": "extraConfigmapMounts:\n  - name: '{{ include \"grafana.fullname\" . }}'\n    configMap: '{{ include \"grafana.fullname\" . }}'"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/ci/with-image-renderer-values.yaml",
    "chars": 369,
    "preview": "podLabels:\n  customLableA: Aaaaa\nimageRenderer:\n  enabled: true\n  env:\n    RENDERING_ARGS: --disable-gpu,--window-size=1"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/ci/with-persistence.yaml",
    "chars": 41,
    "preview": "persistence:\n  type: pvc\n  enabled: true\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/dashboards/custom-dashboard.json",
    "chars": 2,
    "preview": "{}"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/NOTES.txt",
    "chars": 2991,
    "preview": "1. Get your '{{ .Values.adminUser }}' user password by running:\n\n   kubectl get secret --namespace {{ include \"grafana.n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/_helpers.tpl",
    "chars": 6238,
    "preview": "{{/* vim: set filetype=mustache: */}}\n{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"grafana.name\" -}}\n{{- default "
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/_pod.tpl",
    "chars": 44288,
    "preview": "{{- define \"grafana.pod\" -}}\n{{- $sts := list \"sts\" \"StatefulSet\" \"statefulset\" -}}\n{{- $root := . -}}\n{{- with .Values."
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/clusterrole.yaml",
    "chars": 1031,
    "preview": "{{- if and .Values.rbac.create (or (not .Values.rbac.namespaced) .Values.rbac.extraClusterRoleRules) (not .Values.rbac.u"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/clusterrolebinding.yaml",
    "chars": 781,
    "preview": "{{- if and .Values.rbac.create (or (not .Values.rbac.namespaced) .Values.rbac.extraClusterRoleRules) }}\nkind: ClusterRol"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/configmap-dashboard-provider.yaml",
    "chars": 1341,
    "preview": "{{- if and .Values.sidecar.dashboards.enabled .Values.sidecar.dashboards.SCProvider }}\napiVersion: v1\nkind: ConfigMap\nme"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/configmap.yaml",
    "chars": 4314,
    "preview": "{{- if .Values.createConfigmap }}\n{{- $files := .Files }}\n{{- $root := . -}}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  "
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/dashboards-json-configmap.yaml",
    "chars": 906,
    "preview": "{{- if .Values.dashboards }}\n{{ $files := .Files }}\n{{- range $provider, $dashboards := .Values.dashboards }}\napiVersion"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/deployment.yaml",
    "chars": 2252,
    "preview": "{{- if (and (not .Values.useStatefulSet) (or (not .Values.persistence.enabled) (eq .Values.persistence.type \"pvc\"))) }}\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/extra-manifests.yaml",
    "chars": 70,
    "preview": "{{ range .Values.extraObjects }}\n---\n{{ tpl (toYaml .) $ }}\n{{ end }}\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/headless-service.yaml",
    "chars": 686,
    "preview": "{{- $sts := list \"sts\" \"StatefulSet\" \"statefulset\" -}}\n{{- if or .Values.headlessService (and .Values.persistence.enable"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/hpa.yaml",
    "chars": 1808,
    "preview": "{{- $sts := list \"sts\" \"StatefulSet\" \"statefulset\" -}}\n{{- if .Values.autoscaling.enabled }}\napiVersion: {{ include \"gra"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-deployment.yaml",
    "chars": 4663,
    "preview": "{{ if .Values.imageRenderer.enabled }}\n{{- $root := . -}}\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ incl"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-hpa.yaml",
    "chars": 1885,
    "preview": "{{- if and .Values.imageRenderer.enabled .Values.imageRenderer.autoscaling.enabled }}\napiVersion: {{ include \"grafana.hp"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-network-policy.yaml",
    "chars": 2425,
    "preview": "{{- if and .Values.imageRenderer.enabled .Values.imageRenderer.networkPolicy.limitIngress }}\n---\napiVersion: networking."
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-service.yaml",
    "chars": 1025,
    "preview": "{{- if and .Values.imageRenderer.enabled .Values.imageRenderer.service.enabled }}\napiVersion: v1\nkind: Service\nmetadata:"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/image-renderer-servicemonitor.yaml",
    "chars": 1624,
    "preview": "{{- if .Values.imageRenderer.serviceMonitor.enabled }}\n---\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmet"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/ingress.yaml",
    "chars": 2604,
    "preview": "{{- if .Values.ingress.enabled -}}\n{{- $ingressApiIsStable := eq (include \"grafana.ingress.isStable\" .) \"true\" -}}\n{{- $"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/networkpolicy.yaml",
    "chars": 1462,
    "preview": "{{- if .Values.networkPolicy.enabled }}\napiVersion: networking.k8s.io/v1\nkind: NetworkPolicy\nmetadata:\n  name: {{ includ"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/poddisruptionbudget.yaml",
    "chars": 667,
    "preview": "{{- if .Values.podDisruptionBudget }}\napiVersion: {{ include \"grafana.podDisruptionBudget.apiVersion\" . }}\nkind: PodDisr"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/podsecuritypolicy.yaml",
    "chars": 1384,
    "preview": "{{- if and .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\") }}\napiVersion: pol"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/pvc.yaml",
    "chars": 1046,
    "preview": "{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) (eq .Values.persistence.type \"pvc\")}}\napi"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/role.yaml",
    "chars": 1305,
    "preview": "{{- if and .Values.rbac.create (not .Values.rbac.useExistingRole) -}}\napiVersion: {{ include \"grafana.rbac.apiVersion\" ."
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/rolebinding.yaml",
    "chars": 718,
    "preview": "{{- if .Values.rbac.create }}\napiVersion: {{ include \"grafana.rbac.apiVersion\" . }}\nkind: RoleBinding\nmetadata:\n  name: "
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/secret-env.yaml",
    "chars": 381,
    "preview": "{{- if .Values.envRenderSecret }}\napiVersion: v1\nkind: Secret\nmetadata:\n  name: {{ include \"grafana.fullname\" . }}-env\n "
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/secret.yaml",
    "chars": 1158,
    "preview": "{{- if or (and (not .Values.admin.existingSecret) (not .Values.env.GF_SECURITY_ADMIN_PASSWORD__FILE) (not .Values.env.GF"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/service.yaml",
    "chars": 1693,
    "preview": "{{- if .Values.service.enabled }}\n{{- $root := . }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ include \"grafana.f"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/serviceaccount.yaml",
    "chars": 492,
    "preview": "{{- if .Values.serviceAccount.create }}\n{{- $root := . -}}\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  labels:\n    {"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/servicemonitor.yaml",
    "chars": 1527,
    "preview": "{{- if .Values.serviceMonitor.enabled }}\n---\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name:"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/statefulset.yaml",
    "chars": 2382,
    "preview": "{{- $sts := list \"sts\" \"StatefulSet\" \"statefulset\" -}}\n{{- if (or (.Values.useStatefulSet) (and .Values.persistence.enab"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-configmap.yaml",
    "chars": 623,
    "preview": "{{- if .Values.testFramework.enabled }}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ include \"grafana.fullname\" ."
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-podsecuritypolicy.yaml",
    "chars": 781,
    "preview": "{{- if and (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\") .Values.testFramework.enabled .Values.rbac"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-role.yaml",
    "chars": 657,
    "preview": "{{- if and (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\") .Values.testFramework.enabled .Values.rbac"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-rolebinding.yaml",
    "chars": 745,
    "preview": "{{- if and (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\") .Values.testFramework.enabled .Values.rbac"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/tests/test-serviceaccount.yaml",
    "chars": 417,
    "preview": "{{- if and .Values.testFramework.enabled .Values.serviceAccount.create }}\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/templates/tests/test.yaml",
    "chars": 1571,
    "preview": "{{- if .Values.testFramework.enabled }}\n{{- $root := . }}\napiVersion: v1\nkind: Pod\nmetadata:\n  name: {{ include \"grafana"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/grafana/values.yaml",
    "chars": 42417,
    "preview": "global:\n  # To help compatibility with other charts which use global.imagePullSecrets.\n  # Allow either an array of {nam"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/.helmignore",
    "chars": 333,
    "preview": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/Chart.yaml",
    "chars": 658,
    "preview": "annotations:\n  artifacthub.io/license: Apache-2.0\n  artifacthub.io/links: |\n    - name: Chart Source\n      url: https://"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/README.md",
    "chars": 2725,
    "preview": "# kube-state-metrics Helm Chart\n\nInstalls the [kube-state-metrics agent](https://github.com/kubernetes/kube-state-metric"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/NOTES.txt",
    "chars": 1114,
    "preview": "kube-state-metrics is a simple service that listens to the Kubernetes API server and generates metrics about the state o"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/_helpers.tpl",
    "chars": 5345,
    "preview": "{{/* vim: set filetype=mustache: */}}\n{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"kube-state-metrics.name\" -}}\n{"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/ciliumnetworkpolicy.yaml",
    "chars": 1095,
    "preview": "{{- if and .Values.networkPolicy.enabled (eq .Values.networkPolicy.flavor \"cilium\") }}\napiVersion: cilium.io/v2\nkind: Ci"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/clusterrolebinding.yaml",
    "chars": 662,
    "preview": "{{- if and .Values.rbac.create .Values.rbac.useClusterRole -}}\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRol"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/crs-configmap.yaml",
    "chars": 267,
    "preview": "{{- if .Values.customResourceState.enabled}}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"kube-state-me"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/deployment.yaml",
    "chars": 10532,
    "preview": "apiVersion: apps/v1\n{{- if .Values.autosharding.enabled }}\nkind: StatefulSet\n{{- else }}\nkind: Deployment\n{{- end }}\nmet"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/extra-manifests.yaml",
    "chars": 72,
    "preview": "{{ range .Values.extraManifests }}\n---\n{{ tpl (toYaml .) $ }}\n{{ end }}\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/kubeconfig-secret.yaml",
    "chars": 348,
    "preview": "{{- if .Values.kubeconfig.enabled -}}\napiVersion: v1\nkind: Secret\nmetadata:\n  name: {{ template \"kube-state-metrics.full"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/networkpolicy.yaml",
    "chars": 1414,
    "preview": "{{- if and .Values.networkPolicy.enabled (eq .Values.networkPolicy.flavor \"kubernetes\") }}\nkind: NetworkPolicy\napiVersio"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/pdb.yaml",
    "chars": 579,
    "preview": "{{- if .Values.podDisruptionBudget -}}\n{{ if $.Capabilities.APIVersions.Has \"policy/v1/PodDisruptionBudget\" -}}\napiVersi"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/podsecuritypolicy.yaml",
    "chars": 1039,
    "preview": "{{- if and .Values.podSecurityPolicy.enabled (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\") }}\napiVe"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/psp-clusterrole.yaml",
    "chars": 696,
    "preview": "{{- if and .Values.podSecurityPolicy.enabled (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\") }}\napiVe"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml",
    "chars": 622,
    "preview": "{{- if and .Values.podSecurityPolicy.enabled (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\") }}\napiVe"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/rbac-configmap.yaml",
    "chars": 538,
    "preview": "{{- if .Values.kubeRBACProxy.enabled}}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"kube-state-metrics."
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/role.yaml",
    "chars": 5351,
    "preview": "{{- if and (eq .Values.rbac.create true) (not .Values.rbac.useExistingRole) -}}\n{{- range (ternary (join \",\" .Values.nam"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/rolebinding.yaml",
    "chars": 771,
    "preview": "{{- if and (eq  .Values.rbac.create true) (eq .Values.rbac.useClusterRole false) -}}\n{{- range (join \",\" $.Values.namesp"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/service.yaml",
    "chars": 1635,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"kube-state-metrics.fullname\" . }}\n  namespace: {{ template \""
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/serviceaccount.yaml",
    "chars": 592,
    "preview": "{{- if .Values.serviceAccount.create -}}\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  labels:\n    {{- include \"kube-s"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/servicemonitor.yaml",
    "chars": 4011,
    "preview": "{{- if .Values.prometheus.monitor.enabled }}\napiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name:"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/stsdiscovery-role.yaml",
    "chars": 558,
    "preview": "{{- if and .Values.autosharding.enabled .Values.rbac.create -}}\napiVersion: rbac.authorization.k8s.io/v1\nkind: Role\nmeta"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/stsdiscovery-rolebinding.yaml",
    "chars": 636,
    "preview": "{{- if and .Values.autosharding.enabled .Values.rbac.create -}}\napiVersion: rbac.authorization.k8s.io/v1\nkind: RoleBindi"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/templates/verticalpodautoscaler.yaml",
    "chars": 1575,
    "preview": "{{- if and (.Capabilities.APIVersions.Has \"autoscaling.k8s.io/v1\") (.Values.verticalPodAutoscaler.enabled) }}\napiVersion"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/kube-state-metrics/values.yaml",
    "chars": 15078,
    "preview": "# Default values for kube-state-metrics.\nprometheusScrape: true\nimage:\n  registry: registry.k8s.io\n  repository: kube-st"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/.helmignore",
    "chars": 333,
    "preview": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/Chart.yaml",
    "chars": 628,
    "preview": "annotations:\n  artifacthub.io/license: Apache-2.0\n  artifacthub.io/links: |\n    - name: Chart Source\n      url: https://"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/README.md",
    "chars": 3391,
    "preview": "# Prometheus `Node Exporter`\n\nPrometheus exporter for hardware and OS metrics exposed by *NIX kernels, written in Go wit"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/ci/port-values.yaml",
    "chars": 41,
    "preview": "service:\n  targetPort: 9102\n  port: 9102\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/NOTES.txt",
    "chars": 1914,
    "preview": "1. Get the application URL by running these commands:\n{{- if contains \"NodePort\" .Values.service.type }}\n  export NODE_P"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/_helpers.tpl",
    "chars": 5440,
    "preview": "{{/* vim: set filetype=mustache: */}}\n{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"prometheus-node-exporter.name\""
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/clusterrole.yaml",
    "chars": 647,
    "preview": "{{- if and (eq .Values.rbac.create true) (eq .Values.kubeRBACProxy.enabled true) -}}\napiVersion: rbac.authorization.k8s."
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/clusterrolebinding.yaml",
    "chars": 715,
    "preview": "{{- if and (eq .Values.rbac.create true) (eq .Values.kubeRBACProxy.enabled true) -}}\napiVersion: rbac.authorization.k8s."
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/daemonset.yaml",
    "chars": 11203,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: {{ include \"prometheus-node-exporter.fullname\" . }}\n  namespace: {"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/endpoints.yaml",
    "chars": 478,
    "preview": "{{- if .Values.endpoints }}\napiVersion: v1\nkind: Endpoints\nmetadata:\n  name: {{ include \"prometheus-node-exporter.fullna"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/extra-manifests.yaml",
    "chars": 72,
    "preview": "{{ range .Values.extraManifests }}\n---\n{{ tpl (toYaml .) $ }}\n{{ end }}\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/networkpolicy.yaml",
    "chars": 641,
    "preview": "{{- if .Values.networkPolicy.enabled }}\napiVersion: networking.k8s.io/v1\nkind: NetworkPolicy\nmetadata:\n  name: {{ includ"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/podmonitor.yaml",
    "chars": 3345,
    "preview": "{{- if .Values.prometheus.podMonitor.enabled }}\napiVersion: {{ .Values.prometheus.podMonitor.apiVersion | default \"monit"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/psp-clusterrole.yaml",
    "chars": 515,
    "preview": "{{- if and .Values.rbac.create .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\""
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/psp-clusterrolebinding.yaml",
    "chars": 649,
    "preview": "{{- if and .Values.rbac.create .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\""
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/psp.yaml",
    "chars": 1281,
    "preview": "{{- if and .Values.rbac.create .Values.rbac.pspEnabled (.Capabilities.APIVersions.Has \"policy/v1beta1/PodSecurityPolicy\""
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/rbac-configmap.yaml",
    "chars": 567,
    "preview": "{{- if .Values.kubeRBACProxy.enabled}}\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ template \"prometheus-node-exp"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/service.yaml",
    "chars": 1001,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: {{ include \"prometheus-node-exporter.fullname\" . }}\n  namespace: {{ inclu"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/serviceaccount.yaml",
    "chars": 715,
    "preview": "{{- if and .Values.rbac.create .Values.serviceAccount.create -}}\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: {"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/servicemonitor.yaml",
    "chars": 2182,
    "preview": "{{- if .Values.prometheus.monitor.enabled }}\napiVersion: {{ .Values.prometheus.monitor.apiVersion | default \"monitoring."
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/templates/verticalpodautoscaler.yaml",
    "chars": 1355,
    "preview": "{{- if and (.Capabilities.APIVersions.Has \"autoscaling.k8s.io/v1\") (.Values.verticalPodAutoscaler.enabled) }}\napiVersion"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-node-exporter/values.yaml",
    "chars": 15586,
    "preview": "# Default values for prometheus-node-exporter.\n# This is a YAML-formatted file.\n# Declare variables to be passed into yo"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/.helmignore",
    "chars": 333,
    "preview": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/Chart.yaml",
    "chars": 413,
    "preview": "apiVersion: v2\nappVersion: 0.22.0\ndescription: A Helm chart for prometheus windows-exporter\nhome: https://github.com/pro"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/README.md",
    "chars": 1476,
    "preview": "# Prometheus `Windows Exporter`\n\nPrometheus exporter for hardware and OS metrics exposed by Windows kernels, written in "
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/_helpers.tpl",
    "chars": 5428,
    "preview": "{{/* vim: set filetype=mustache: */}}\n{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"prometheus-windows-exporter.na"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/config.yaml",
    "chars": 415,
    "preview": "apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: {{ include \"prometheus-windows-exporter.fullname\" . }}\n  namespace: {{ "
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/daemonset.yaml",
    "chars": 7634,
    "preview": "apiVersion: apps/v1\nkind: DaemonSet\nmetadata:\n  name: {{ include \"prometheus-windows-exporter.fullname\" . }}\n  namespace"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/podmonitor.yaml",
    "chars": 3360,
    "preview": "{{- if .Values.prometheus.podMonitor.enabled }}\napiVersion: {{ .Values.prometheus.podMonitor.apiVersion | default \"monit"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/service.yaml",
    "chars": 1114,
    "preview": "apiVersion: v1\nkind: Service\nmetadata:\n  name: {{ include \"prometheus-windows-exporter.fullname\" . }}\n  namespace: {{ in"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/serviceaccount.yaml",
    "chars": 726,
    "preview": "{{- if and .Values.rbac.create .Values.serviceAccount.create -}}\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: {"
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/templates/servicemonitor.yaml",
    "chars": 2194,
    "preview": "{{- if .Values.prometheus.monitor.enabled }}\napiVersion: {{ .Values.prometheus.monitor.apiVersion | default \"monitoring."
  },
  {
    "path": "build/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/values.yaml",
    "chars": 11658,
    "preview": "# Default values for prometheus-windows-exporter.\n# This is a YAML-formatted file.\n# Declare variables to be passed into"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/NOTES.txt",
    "chars": 350,
    "preview": "{{ $.Chart.Name }} has been installed. Check its status by running:\n  kubectl --namespace {{ template \"kube-prometheus-s"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/_helpers.tpl",
    "chars": 10475,
    "preview": "{{/* vim: set filetype=mustache: */}}\n{{/* Expand the name of the chart. This is suffixed with -alertmanager, which mean"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/alertmanager.yaml",
    "chars": 9243,
    "preview": "{{- if .Values.alertmanager.enabled }}\napiVersion: monitoring.coreos.com/v1\nkind: Alertmanager\nmetadata:\n  name: {{ temp"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/extrasecret.yaml",
    "chars": 790,
    "preview": "{{- if .Values.alertmanager.extraSecret.data -}}\n{{- $secretName := printf \"alertmanager-%s-extra\" (include \"kube-promet"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/ingress.yaml",
    "chars": 3104,
    "preview": "{{- if and .Values.alertmanager.enabled .Values.alertmanager.ingress.enabled }}\n{{- $pathType := .Values.alertmanager.in"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/ingressperreplica.yaml",
    "chars": 2982,
    "preview": "{{- if and .Values.alertmanager.enabled .Values.alertmanager.servicePerReplica.enabled .Values.alertmanager.ingressPerRe"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/podDisruptionBudget.yaml",
    "chars": 952,
    "preview": "{{- if and .Values.alertmanager.enabled .Values.alertmanager.podDisruptionBudget.enabled }}\napiVersion: {{ include \"kube"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/psp-role.yaml",
    "chars": 919,
    "preview": "{{- if and .Values.alertmanager.enabled .Values.global.rbac.create .Values.global.rbac.pspEnabled }}\n{{- if .Capabilitie"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/psp-rolebinding.yaml",
    "chars": 853,
    "preview": "{{- if and .Values.alertmanager.enabled .Values.global.rbac.create .Values.global.rbac.pspEnabled }}\n{{- if .Capabilitie"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/psp.yaml",
    "chars": 1317,
    "preview": "{{- if and .Values.alertmanager.enabled .Values.global.rbac.create .Values.global.rbac.pspEnabled }}\n{{- if .Capabilitie"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/secret.yaml",
    "chars": 1226,
    "preview": "{{- if and (.Values.alertmanager.enabled) (not .Values.alertmanager.alertmanagerSpec.useExistingSecret) }}\napiVersion: v"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/service.yaml",
    "chars": 2315,
    "preview": "{{- if .Values.alertmanager.enabled }}\napiVersion: v1\nkind: Service\nmetadata:\n  name: {{ template \"kube-prometheus-stack"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/serviceaccount.yaml",
    "chars": 959,
    "preview": "{{- if and .Values.alertmanager.enabled .Values.alertmanager.serviceAccount.create }}\napiVersion: v1\nkind: ServiceAccoun"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/servicemonitor.yaml",
    "chars": 3361,
    "preview": "{{- if and .Values.alertmanager.enabled .Values.alertmanager.serviceMonitor.selfMonitor }}\napiVersion: monitoring.coreos"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/alertmanager/serviceperreplica.yaml",
    "chars": 2036,
    "preview": "{{- if and .Values.alertmanager.enabled .Values.alertmanager.servicePerReplica.enabled }}\n{{- $count := .Values.alertman"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/core-dns/service.yaml",
    "chars": 725,
    "preview": "{{- if and .Values.coreDns.enabled .Values.kubernetesServiceMonitors.enabled }}\napiVersion: v1\nkind: Service\nmetadata:\n "
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/core-dns/servicemonitor.yaml",
    "chars": 1536,
    "preview": "{{- if and .Values.coreDns.enabled .Values.kubernetesServiceMonitors.enabled }}\napiVersion: monitoring.coreos.com/v1\nkin"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-api-server/servicemonitor.yaml",
    "chars": 1829,
    "preview": "{{- if and .Values.kubeApiServer.enabled .Values.kubernetesServiceMonitors.enabled }}\napiVersion: monitoring.coreos.com/"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-controller-manager/endpoints.yaml",
    "chars": 1010,
    "preview": "{{- if and .Values.kubeControllerManager.enabled .Values.kubeControllerManager.endpoints .Values.kubernetesServiceMonito"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-controller-manager/service.yaml",
    "chars": 1442,
    "preview": "{{- if and .Values.kubeControllerManager.enabled .Values.kubeControllerManager.service.enabled .Values.kubernetesService"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-controller-manager/servicemonitor.yaml",
    "chars": 2470,
    "preview": "{{- if and .Values.kubeControllerManager.enabled .Values.kubeControllerManager.serviceMonitor.enabled .Values.kubernetes"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-dns/service.yaml",
    "chars": 924,
    "preview": "{{- if and .Values.kubeDns.enabled .Values.kubernetesServiceMonitors.enabled }}\napiVersion: v1\nkind: Service\nmetadata:\n "
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-dns/servicemonitor.yaml",
    "chars": 2130,
    "preview": "{{- if and .Values.kubeDns.enabled .Values.kubernetesServiceMonitors.enabled }}\napiVersion: monitoring.coreos.com/v1\nkin"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-etcd/endpoints.yaml",
    "chars": 628,
    "preview": "{{- if and .Values.kubeEtcd.enabled .Values.kubeEtcd.endpoints .Values.kubernetesServiceMonitors.enabled }}\napiVersion: "
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-etcd/service.yaml",
    "chars": 845,
    "preview": "{{- if and .Values.kubeEtcd.enabled .Values.kubeEtcd.service.enabled .Values.kubernetesServiceMonitors.enabled }}\napiVer"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-etcd/servicemonitor.yaml",
    "chars": 2334,
    "preview": "{{- if and .Values.kubeEtcd.enabled .Values.kubeEtcd.serviceMonitor.enabled .Values.kubernetesServiceMonitors.enabled }}"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-proxy/endpoints.yaml",
    "chars": 633,
    "preview": "{{- if and .Values.kubeProxy.enabled .Values.kubeProxy.endpoints .Values.kubernetesServiceMonitors.enabled }}\napiVersion"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-proxy/service.yaml",
    "chars": 859,
    "preview": "{{- if and .Values.kubeProxy.enabled .Values.kubeProxy.service.enabled .Values.kubernetesServiceMonitors.enabled }}\napiV"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-proxy/servicemonitor.yaml",
    "chars": 1776,
    "preview": "{{- if and .Values.kubeProxy.enabled .Values.kubeProxy.serviceMonitor.enabled .Values.kubernetesServiceMonitors.enabled "
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-scheduler/endpoints.yaml",
    "chars": 912,
    "preview": "{{- if and .Values.kubeScheduler.enabled .Values.kubeScheduler.endpoints .Values.kubernetesServiceMonitors.enabled }}\nap"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-scheduler/service.yaml",
    "chars": 1289,
    "preview": "{{- if and .Values.kubeScheduler.enabled .Values.kubeScheduler.service.enabled .Values.kubernetesServiceMonitors.enabled"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kube-scheduler/servicemonitor.yaml",
    "chars": 2297,
    "preview": "{{- if and .Values.kubeScheduler.enabled .Values.kubeScheduler.serviceMonitor.enabled .Values.kubernetesServiceMonitors."
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/exporters/kubelet/servicemonitor.yaml",
    "chars": 8699,
    "preview": "{{- if and .Values.kubelet.enabled .Values.kubernetesServiceMonitors.enabled }}\napiVersion: monitoring.coreos.com/v1\nkin"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/extra-objects.yaml",
    "chars": 72,
    "preview": "{{ range .Values.extraManifests }}\n---\n{{ tpl (toYaml .) $ }}\n{{ end }}\n"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/grafana/configmap-dashboards.yaml",
    "chars": 1098,
    "preview": "{{- if or (and .Values.grafana.enabled .Values.grafana.defaultDashboardsEnabled) .Values.grafana.forceDeployDashboards }"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/grafana/configmaps-datasources.yaml",
    "chars": 4313,
    "preview": "{{- if or (and .Values.grafana.enabled .Values.grafana.sidecar.datasources.enabled) .Values.grafana.forceDeployDatasourc"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/alertmanager-overview.yaml",
    "chars": 10053,
    "preview": "{{- /*\nGenerated from 'alertmanager-overview' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/apiserver.yaml",
    "chars": 24362,
    "preview": "{{- /*\nGenerated from 'apiserver' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/main/manife"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/cluster-total.yaml",
    "chars": 25785,
    "preview": "{{- /*\nGenerated from 'cluster-total' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/main/ma"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/controller-manager.yaml",
    "chars": 16598,
    "preview": "{{- /*\nGenerated from 'controller-manager' from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/ma"
  },
  {
    "path": "build/charts/kube-prometheus-stack/templates/grafana/dashboards-1.14/etcd.yaml",
    "chars": 19051,
    "preview": "{{- /*\nGenerated from 'etcd' from https://raw.githubusercontent.com/etcd-io/etcd/main/contrib/mixin/mixin.libsonnet\nDo n"
  }
]

// ... and 1345 more files (download for full content)

About this extraction

This page contains the full source code of the labring/laf GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1545 files (19.4 MB), approximately 5.2M tokens, and a symbol index with 23404 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!