meta-introspector / mina-snarky-o1js-zkapp-introspector

zkIntrospector: A Self-Aware zkApp Framework for Gödel Number Reflection
GNU Affero General Public License v3.0
3 stars 1 forks source link

Create a GitLab Plugin for zkApp Wallet Setup #14

Open jmikedupont2 opened 2 months ago

jmikedupont2 commented 2 months ago

GitLab Plugin for zkApp Wallet Setup

Issue Title: Create a GitLab Plugin for zkApp Wallet Setup


Description:

We want to develop a GitLab plugin that facilitates the creation of zkApp wallets for users and securely stores the relevant data using GitLab CI/CD variables. The plugin will generate a wallet, store it in GitLab’s CI/CD pipeline as environment variables, and help users initiate their wallet setup without us managing the wallet directly. This will be done through an OAuth app to allow secure interaction between GitLab and the wallet service.


Features:

  1. OAuth Integration:

    • Implement OAuth authentication for secure communication between the GitLab instance and the wallet service.
    • The OAuth app will guide users through authorization and wallet setup without the plugin managing the wallet on their behalf.
  2. Wallet Creation Job:

    • Create a GitLab job (CI/CD) that runs on the GitLab Runner and is triggered after OAuth authentication is completed.
    • The job will:
      • Generate a new zkApp wallet.
      • Assign the wallet address and keys to GitLab environment variables (e.g., WALLET_ADDRESS, PRIVATE_KEY, PUBLIC_KEY).
      • Ensure wallet data is securely stored and not exposed in logs.
  3. Storing Wallet in GitLab Variables:

    • Set up secure GitLab CI/CD environment variables to store the wallet keys and related data.
    • Make sure these variables are protected and masked where necessary.
  4. User Interface:

    • Add a UI/UX interface within GitLab to guide the user through the wallet creation process after OAuth.
    • The interface will include:
      • Option to connect via OAuth.
      • Trigger button to create the wallet and store it in GitLab variables.
      • Documentation to guide users on accessing and managing their wallet after setup.
  5. Job Template:

    • Provide a customizable GitLab CI job template that users can include in their pipeline to leverage the wallet details for zkApp deployment.
    • Example job for creating and managing a wallet.
  6. Security Considerations:

    • Ensure the plugin operates in a secure manner, especially when handling private keys and sensitive information.
    • Utilize GitLab’s built-in security mechanisms for masking environment variables and ensuring only authorized jobs can access them.

Acceptance Criteria:


Technical Considerations:


Out of Scope:


Milestones:

  1. Implement OAuth flow and GitLab integration.
  2. Create a job template for wallet creation.
  3. Build the user interface to guide users through wallet creation.
  4. Test security and wallet management.

Reference:

https://docs.minaprotocol.com/node-operators/generating-a-keypair