Tweekathon!

WHY We created tweekathon?

  • Tweek is getting close to OSS milestone
  • We want to get some experience in managing OSS
  • We want to get more feedback from the rest of the teams.
  • We wanted others to be involved in Tweek roadmap.

WHY Should you attend?

  • Opportunity to experience in OSS contribution.
  • Influence our biggest OSS project yet.
  • Bring your own features.
  • Tweek is unique among its landscape.
  • Experiment with different tools.

Tweek OVerview

  • 5 services 
    • Tweek Context DB (Couchbase) - 3rd party
    • Tweek Rules Repository (git) - 3rd party
    • Tweek API (.Net Core)
    • Tweek Editor (node.js)
    • Tweek Management (node.js)

  • 2 repositories
    • Tweek - main repository
    • Tweek.JPad - Tweek JPAD rules engine

Tweek Context DB

  • Couchbase
    • Fast, durable memory based document/kv db.
  • Storage for context
    • Identities properties
    • Fixed configuration
  • Consumed by Tweek API using Couchbase implementation of context driver.

TWEEK RULES repository

  • Git service
  • Contains
    • Key definition (JPad rules)
    • Key meta data
  • Consumed by
    • Tweek Management (for serving rules)
    • Tweek Editor (for reading/editing keys)
  • Using Tweek management for validating new rules.

    TWEEK Mangement

    • Repo: Soluto/Tweek
      • services/management
    • Based on Node.js
      • Used nodegit
    • Bundling Tweek gitdata
    • Serving rules for tweek-api
    • Validating new changes of git against Tweek-Api

      Tweek api

      • Repo: Soluto/Tweek
        • services/api
      • Written in .Net Core
        • Based on Asp.Net
      • Api for:
        • Calculating configurations
        • Updating user context

      TWEEK Editor

      • Repo: Soluto/Tweek
        • services/editor
      • Writting in Node.js
        • Use express, nodegit,
          react, redux, react-project, recompose, rxjs.
      • UI for managing tweek

      TWEEK.JPAD 

      • Repo: Soluto/Tweek.JPad
      • JPad file parser and rules evaluator
      • Based on F#

      requirements

      • Docker account
      • Docker compatible platform (win 10/mac)

      Contribution Flow

      • Create branch "{issueNumber}_my_branch_name"
      • Commit
      • Push
      • Github pull request
      • Iterate
        • Commit
        • Push
        • Review
      • Merge

      DEMO

      ISSUE pool

      accessibility through editor

      • Features that expose Tweek functionality through editor.
      • Examples:
        • Context/Fixed configuration  viewer/editor
        • Audit page 
        • Query page 
        • Identities/Schema editor

      Internals

      • Features that touch Tweek internals
      • Examples:
        • Adding support for more string operators in f# 
        • Adding trace-data to rule parser
        • Changing dependent keys context access

      Small fixes/improvements

      • Adopting best practices in some areas.
      • Examples
        • Minor security features (flags, zap, etc...)
        • Adding tweek-mangement diagnostics from tweek-api
        • Copy paste using $in operator

      Experimental

      • MVP for new experimental features.
      • Examples:
        • Micro analytics service
        • Test suite for key changes
        • Indicator for key activity

      and there are many more...

      • https://github.com/soluto/tweek/issues?q=is%3Aissue+is%3Aopen+label%3Atweekathon





      Thanks


      Have a great hack day!

      Tweekathon

      By yshayy

      Tweekathon

      • 1,040