diff --git a/.github/workflows/azure-webapps-node.yml b/.github/workflows/azure-webapps-node.yml new file mode 100644 index 0000000..94412a2 --- /dev/null +++ b/.github/workflows/azure-webapps-node.yml @@ -0,0 +1,31 @@ +name: 🔥 Firebase Hosting Deploy + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + id-token: write + contents: read + +jobs: + firebase-deploy: + name: 🚀 Deploy to Firebase Hosting + runs-on: ubuntu-latest + + steps: + - name: 📦 Checkout repo + uses: actions/checkout@v4 + + - name: 🔐 Authenticate to Google Cloud + uses: google-github-actions/auth@v1 + with: + workload_identity_provider: "${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}" + service_account: "${{ secrets.GCP_SERVICE_ACCOUNT }}" + + - name: 🛠️ Install Firebase CLI + run: npm install -g firebase-tools + + - name: 🚀 Deploy to Firebase Hosting + run: firebase deploy --only hosting --project ${{ secrets.GCP_PROJECT_ID }} diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..097ba55 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,27 @@ +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Setup Node.js environment + uses: actions/setup-node@v3.9.1 + with: + # Set always-auth in npmrc. + always-auth: # optional, default is false + # Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0. + node-version: # optional + # File containing the version Spec of the version to use. Examples: .nvmrc, .node-version, .tool-versions. + node-version-file: # optional + # Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default. + architecture: # optional + # Set this option if you want the action to check for the latest available version that satisfies the version spec. + check-latest: # optional + # Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, and set up auth to read in from env.NODE_AUTH_TOKEN. + registry-url: # optional + # Optional scope for authenticating against scoped registries. Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/). + scope: # optional + # Used to pull node distributions from node-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting. + token: # optional, default is ${{ github.server_url == 'https://github.com' && github.token || '' }} + # Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm. + cache: # optional + # Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies. + cache-dependency-path: # optional diff --git a/.github/workflows/firebase-deploy.yml b/.github/workflows/firebase-deploy.yml new file mode 100644 index 0000000..9ec4abf --- /dev/null +++ b/.github/workflows/firebase-deploy.yml @@ -0,0 +1,19 @@ +name: Firebase Deploy + +on: + push: + branches: + - main + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: google-github-actions/auth@v1 + with: + workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }} + service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }} + - run: npm ci + - run: npm run build + - run: npx firebase deploy --only hosting diff --git a/.github/workflows/gcp-auth.yml b/.github/workflows/gcp-auth.yml index ba8b734..a5d8782 100644 --- a/.github/workflows/gcp-auth.yml +++ b/.github/workflows/gcp-auth.yml @@ -1,26 +1,14 @@ -name: GCP Auth Test +name: GCP Auth Setup on: workflow_dispatch: -permissions: - id-token: write - contents: read - jobs: auth: runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Authenticate to Google Cloud - uses: google-github-actions/auth@v1 - with: - workload_identity_provider: "projects/491439791457/locations/global/workloadIdentityPools/ci-pool-github-actions/providers/github" - service_account: "github-action-xpert-forex-trad@xpert-forex-trade.iam.gserviceaccount.com" - - - name: Verify identity - run: | - gcloud auth list + - name: Authenticate with GCP + uses: google-github-actions/auth@v1 + with: + workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }} + service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }} diff --git a/.yaml b/.yaml new file mode 100644 index 0000000..62ebec7 --- /dev/null +++ b/.yaml @@ -0,0 +1,18 @@ +## Cloudflare Endpoint Schema Upload + +**Location**: `intlhub.org → Security → Web Assets → Endpoint Management → Upload Schema` + +**Accepted Formats**: `.yml`, `.yaml`, `.json` + +**Schema Requirements**: +- OpenAPI or Swagger spec +- Define paths, methods, parameters, responses + +**Security Behavior**: +- Matches traffic to schema +- Blocks or logs non-compliant requests + +**Recommended**: +- Include contributor metadata in schema comments +- Version your schema for audit clarity +- Validate with PITR enabled for rollback protection diff --git a/app/Views/dashboard.php b/app/Views/dashboard.php new file mode 100644 index 0000000..b7b99b2 --- /dev/null +++ b/app/Views/dashboard.php @@ -0,0 +1,29 @@ + +