Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design review checklist #352

Open
1 of 47 tasks
gctucker opened this issue Sep 13, 2023 · 0 comments · Fixed by #348
Open
1 of 47 tasks

Design review checklist #352

gctucker opened this issue Sep 13, 2023 · 0 comments · Fixed by #348
Labels
roadmap API & Pipeline Roadmap
Milestone

Comments

@gctucker
Copy link
Contributor

gctucker commented Sep 13, 2023

Before making a first production-ready release of the API, we need to review the whole design and make changes wherever required accordingly. This top-level issue can be used to keep track of all the different areas of the architecture. We can also take this opportunity to complete a first version of the documentation to cover all the corresponding parts, even if some refinements can be made later on (e.g. between December and March).

Development

  • Data models
    • Users and groups
      • Add explicit list of scopes e.g. admin rather than relying on magic group names
      • Consider "group admins" with admin rights but only with a user group
    • Node
      • Group vs Job
      • Compare against KCIDB schema
    • Revision (consider patch sets)
  • API endpoints
    • Names and arguments: consistency, simplicity, security
    • Data schema for input / output: mainly models but additional ones e.g. user profile
    • Operators
  • Publisher / Subscriber
    • User / ownership
    • Unique messages (e.g. for load balancing) vs "broadcast"
    • Avoid leaks: keeping track of open channels on the API side in Redis and add endpoint to query it
  • Node states
    • Consider using open or submitted when a node has just been created
  • kci command line tool
    • Settings and YAML config arguments
    • Overall user experience
    • Results browser (currently kci show results)
    • Offline mode relying only on JSON files
    • Commands to create / edit nodes from scratch either in API or in local JSON
    • Add monitor command to monitor events (kci show events?)
  • kernelci Python package versioned release
  • Pipeline system services
    • Trigger
    • Tarball
    • Scheduler
    • Regression tracking
    • Timeouts
    • Email report generator (depends on kernelci.email to be implemented...)

Sysadmin

  • Deployment of services
    • Main API service (FastAPI)
    • Redis
    • MongoDB
    • Storage
    • Pipeline services
    • LAVA callback handler
  • SSL certificates management
  • DNS updates
  • Database backup / archiving
  • Storage auto clean-up
  • Application updates
  • Monitoring
  • Costs breakdown
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
roadmap API & Pipeline Roadmap
Projects
Status: Todo
Development

Successfully merging a pull request may close this issue.

1 participant