Code Monkey home page Code Monkey logo

corso-roadmap's Introduction

Corso roadmap

You can see the Corso project roadmap here.

Guide to the roadmap

Every item on the roadmap is an issue, with labels that indicate the following categories:

  • Workflow Feature Area - describes the workflow area functionality (e.g. backup) supported by Corso and represented by a given item. Workflow features are typically orthogonal to the data type being protected. See below for more details and list of current labels in this category.

  • Data Type - describes the type of data (e.g. Exchange emails) supported by Corso and represented by a given item. Data type support is typically orthogonal to the workflows that may use it. See below for more details and list of current labels in this category.

  • Priority - describes the priority of a given item. Priority is often relative to other items within the same Workflow Feature Area or DataType. It is used to express relative ordering of such related items and slotting into roadmap stages. See details below.

  • Additional Areas - describes other areas that can benefit from filtering (e.g. docs). See below for more details and list of current labels in this category.

Workflow feature areas

The following is a list of feature areas which are currently tracked (intended to have support).

  • area:install - Functionality related to Corso installation and packaging.

  • area:storage - Functionality related to using Corso with different storage backends and in different storage interaction patterns.

  • area:backup - Functionality related to backup workflows.

  • area:restore - Functionality related to restore workflows and restore options.

  • area:cli - Functionality related to general Corso CLI.

Data Types

The following is a list of data types which are currently tracked (intended to have support).

  • m365:exchange - Microsoft Exchange data.

  • m365:onedrive - Microsoft OneDrive data.

  • m365:sharepoint - Microsoft SharePoint data.

  • m365:teams - Microsoft Teams data.

NOTE: Initial Corso focus is on Microsoft 365 services.

Priorities

Priority is often defined relative to other items within the same Workflow Feature Area or Data Type. It is used to express relative ordering of such related items and slotting into roadmap stages. The following is the the list of priorities currently used.

  • P0 - Core functionality. Required for introducing new workflow or data type support.

  • P1 - Important functionality. Should be considered for inclusion ASAP to solidify support for new workflow or data type.

  • P2 - Fit & finish and less frequently used functionality. Consider for including after P0 and P1 items for a given workflow or data type.

Roadmap stages

The issue Status field is used to indicate the current roadmap timing of issues. It indicates the best estimate of the expected quarter in which an item is likely to become available. The timing is advisory as priorities can and do change during planning cicles. The certainty of the projected timing decreases further out along the timeline.

Items which are not yet planned and for which no timeline is available yet are assigned Status=Future. Such items are included on the roadmap board in order to gather additional feedback. There is no guarantee that such items will be selected for development.

Released features

When a feature is released, the corresponding item is tagged with label released. Additionally, the item is closed as completed and a link is added to the changelog describing the change.

Triage process

Issues without an assigned status (Status=No Status) are still awating triage. For each of these, one of the follwing will happen:

  • Assign to an upcoming quarter - Issue is already well understood and fits with overall Corso project goals.

  • Move to Future - Issue is interesting for the Corso project but requires more feedback and research to determine priority and potential timeline.

  • Close issue as not planned - Issue is a duplicate, stale, or won't fix (not aligned with near-term Corso goals).

Any feature that has not been already released, but is assigned to a quarter that has already passed, needs to go to the triage process even if the resolution is to push it to a subsequent quarter.

corso-roadmap's People

Contributors

gmatev avatar

Watchers

Vaibhav Kamra avatar Danny avatar Abin Simon avatar  avatar  avatar

Forkers

odooshfonicom

corso-roadmap's Issues

Restore options (in place + advanced duplicates)

Advanced duplicate handing options for restore:

  • Skip - do no restore items that already exist
  • Overwrite - always restore items
  • Keep as copy - for items that already exist create a copy

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Exchange: Shared Mailboxes

Backup & Restore of additional Exchange categories

  • Shared mailbox

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

SharePoint: Conversations, Wiki, OneNote

Backup & Restore:

  • Conversations (Shared mailbox Exchange)
  • Wiki
  • OneNote Notebook

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

Service level-backup

Backup of all resources associated with given service - e.g. supported Exchange content type for all users. Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Corso AzureAD App creation (script)

Simplify creation of the Azure AD app through which Corso will operate through a script.

The script can use Azure AD CLI or the Graph API, but will make it easy for an admin to create an app that has the appropriate permissions. The script will also seed the required Corso config information

Restore options (alternative resource)

Restore to an alternative user account, site, or team.

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Exchange: Email, Calendar, Contacts

Backup & Restore of the core Exchange content categories

  • Email
  • Calendar
  • Contacts

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

Restartable Backup Operations

This tracks making backup operations restartable. This requires the ability to display a list of backup operations that were interrupted (via cancellation or process aborts) and the providing an ability to restart those operations.

The underlying implementation should attempt to make restarts as efficient as possible i.e. leverage previously done work vs starting from scratch.

Automated Corso API docs

API docs for using Corso as a library are automatically generated and maintained upon release

Selective Backup (content type)

Backup of all resources of a given type associated with given service and service resource
e.g. Backup all emails for user X in Exchange.

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Exchange: Basic PST Export

Instead of restoring back to service, download content.

  • Collection of emails, calendar, contacts for a single user as a PST

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Policy-based backup retention

Ability to perform backup retention maintenance operations to enforce a retention policy:

  • Purge backups older that X
  • Keep X most recent annual/monthly/daily backups

Includes full CLI and API support

Repo: Basic Operations

Summary

  • Initialize / Create new repo
  • Connect to an existing repo
  • Update mutable repo parameters
  • Disconnect from current repo

Teams: Channel messages export (JSON)

Instead of restoring back to service (if possible), download content.

  • Export messages in public channels, private channels, and 1:1 chat as JSON

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Repo: Local filesystem

For ease of testing, enable Corso to file system directory as repo root

corso repo init filesystem --path <path to repo>
corso repo connect filesystem --path <path to repo>

Selective restore (single item)

Restore of a specific item for a supported service and service content type.

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Restore an entire resource (user, site)

Restore of a specific resource in a supported service - e.g. restore all Exchange content for a given user

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

File export (OneDrive, SharePoint, Teams)

Instead of restoring back to service, download content.

  • Individual file in the format that exists - P0
  • Multiple files as a ZIP - P1

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Selective backup (specific resource)

Backup for a specific resource in a supported service - e.g. backup all Exchange content for a given user

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Operation Cancellation

This tracks making Corso operations (specifically Backup and Restore) cancellable.

Ctrl+C support for CLI commands and cancellation APIs for API operations.

Exchange: Public Folders & Online Archive

Backup & Restore of additional Exchange categories

  • Public Folders
  • Exchange Online archive (in addition to mailbox)

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

Exchange: Tasks & Notes

Backup & Restore of additional Exchange categories

  • Tasks
  • Notes

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

OneDrive: Files

Backup & Restore of OneDrive files.

  • Ability to preserve file path
  • Ability to original path to file as file owner

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

Service-level restore

Restore of all resources associated with given service - e.g. supported Exchange content type for all users.

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

SharePoint: File export

Instead of restoring back to service, download content.

  • Individual file in the format that exists - P0
  • Multiple files as a ZIP - P1

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Corso Azure AD App creation (docs)

Document steps and requirements for creating the Azure AD app that will be used by corso.

Documentation will also include required permissions and procedures for obtaining the relevant configuration that will be needed for Corso configuration.

Phonehome

Corso should have phonehome to allow us to track project adoption and usage. This should be enabled by default with an option to disable

Backup listing and details

Includes the following:

  • List backups
  • Explore contents of backup including filters

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Teams: File export

Instead of restoring back to service, download content.

  • Individual file in the format that exists - P0
  • Multiple files as a ZIP - P1

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

OneDrive: File permissions

Backup and restore original permissions for a OneDrive file

When feature is introduced it needs to support the full set of currently available flows:

Backup granularity (e.g. full service, selective by user, etc)
Backup listing
Restore granularity
Restore option (e.g. in-place, new location, etc)
CLI support for new item types and above options

SharePoint: Document libraries (Files)

Backup & Restore of SharePoint files.

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

Teams: Non-Message Content (SharePoint)

Backup & Restore (restore has some peculiarities here)

  • Files
  • Sites (for team or private channel)

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

Repo: S3 Support

Summary

  • Host repo on AWS S3 or S3-compatible storage
  • Support S3 connection parameters supported by Kopia

Corso Metrics Reporting

image

Event collection is on by default with option to disable.

From the above we can construct usage metrics across the 4 typical metrics categories:

  • Reach:
    • Number of container pulls / installs (in there is a more native installer)
  • Activation
    • Number of repo initializations
    • Number ofrepo initializations with 1 day of Corso Instance pull โ€“ not sure if possible
  • Engagement
    • Number of repos with at least 1 backup initiated over last 7 days
    • Avg # of M365 users protected by repo instance
  • Retention
    • Number of repos with at least 1 weekly backups over last 4 weeks

Restore options (alternate folder)

Restore workflows allow restoring to alternative location.

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Selective restore (multiple items)

Restore of a set of items for a supported service and service content type.

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Exchange: Email, calendar, contact specific export

Instead of restoring back to service, download content.

  • Individual emails - EML - P2
  • Individual calendar item - ICS - P3
  • Individual contact - VCF - P3

Includes the appropriate CLI syntax support and corresponding API.

This capability will originally apply to all services supported at time of introducing the capability. Once the workflow is supported, it will need to be supported when adding new services or service content types.

Initial Corso Docs

Initial set of docs that go with Corso:

  • Intro/Background
  • Concepts
  • CLI docs
  • API docs

Teams: Chat Messages (Public & Private Channels, 1:1)

Backup & Restore

  • Public Channel Messages
  • Private Channel Messages
  • Chat Messages

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

Incremental backup

Perform backup efficiently by only performing backup of service data which which has changed.

This capability will originally apply to all services supported at time of introducing the capability. Once supported, it will need to be supported when adding new services or service content types.

SharePoint: Pages

Backup & Restore:

  • Pages
  • Pages restore with correct references

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

Teams: Wiki, OneNote

Backup & Restore/Export:

  • Wiki - P1
  • OneNote Notebook - P1/P2

When feature is introduced it needs to support the full set of currently available flows:

  • Backup granularity (e.g. full service, selective by user, etc)
  • Backup listing
  • Restore granularity
  • Restore option (e.g. in-place, new location, etc)
  • CLI support for new item types and above options

Docker-based packaging

Summary

  • Corso is available as a Docker based image for each version
  • Supported architectures amd64 and arm64

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.