482 Commits

Author SHA1 Message Date
Danny
97113aa80b
Folder Granularity scope Added to Collections Retrieval (#482)
Backup function `DataExchangeCollections` supports the ability to backup a single file using the `selectors` package. Support files and documentation updated accordingly
2022-08-05 11:20:36 -04:00
Keepers
73942fe952
fix up logger specs (#489) 2022-08-04 23:28:26 +00:00
ashmrtn
9e2e88f5f3
Enable some linters in revive (#486)
* Turn on revive linter, ignore only a few things

* Fix lint errors

Ignore shadowing of 'suite' in tests for now. Also move some constants
that had the same value to tester.
2022-08-04 14:42:51 -07:00
Keepers
a586512b42
add command to purge user's folders by prefix/date (#480) 2022-08-04 15:28:28 -06:00
ashmrtn
d920589507
Add linter for import groups and group order (#477)
* Add import order linter

Error messages aren't the most clear/helpful, but they will point you to
the lines that need modifying.

* Adjust max errors reported

* Fix lint errors
2022-08-03 16:21:38 -07:00
Danny
bb7531d95c
exchange.Collection to fill in key information from selectors (#457)
Selectors and scope information are used to create the correct populate methods. Populate methods changed to fit type abstractions definitions for iteration, querying, and collection population.
2022-08-03 19:07:26 -04:00
Danny
d656bc181c
Regression test added for serialization and (de)serialization process… (#461)
* Regression test added for serialization and (de)serialization process for graphConnector.
2022-08-03 17:53:19 -04:00
Danny
2b95553355
Gc serialize to collection (#467)
Abstractions: Exchange selector function introduced, GraphIterateFuncs and service functions extended
2022-08-03 14:26:06 -04:00
Danny
186c2d9dc4
Restore into Custom Folder (#391)
Custom folder added for restore process workflow
2022-08-03 12:14:45 -04:00
Keepers
640dfcf967
derive test userID from test config (#465)
In order to both maintain control of test env data, as
well as ensure open-source users are able to run the
integration tests on personal account data, the test
user must be derived from the test configuration, rather
than hardcoded within the tests.
2022-08-02 19:13:23 +00:00
Keepers
d7fe518007
rename /internal/testing to /tester (#463)
The alias of testing to ctesting prevented auto-importing
of the testing library.  This change (arbitrarily) renames
the package so that it doesn't collide with the core pkg
for "testing".
2022-08-02 12:21:14 -06:00
Danny
87427a52aa
Gc iterate abstraction (#459)
Abstraction functions and iterate functions created for the `serializeMessages` move to createCollections. 
Graph Connector refactor still underway.
2022-08-02 13:31:53 -04:00
Danny
a1b8868600
Removal of internal Contains methods (#462)
Removal of internal  `contains`methods
2022-08-02 12:49:21 -04:00
Danny
3eaebaed8f
Incremental change prior to selector (#460)
Use of abstract variable for creating page iterator.
2022-08-02 12:21:35 -04:00
Danny
bcbf0b1fb8
GetMailFolderID feature added (#455)
GetMaillFolderID add to `exchange` package. Test Suite Added.
2022-08-01 15:12:02 -04:00
Danny
890c8f2b7f
Exchange service: Abstractions (#450)
- Creation of exchange service-based query file. Test package expanded for support
2022-08-01 13:27:30 -04:00
Danny
bd559f690e
Exchange service functions (#454)
`exchange`.service_actions.go created. Create/Delete Mail folder functions inherited. Test suite updated accordingly.
2022-08-01 16:29:03 +00:00
Danny
2f56a849c9
Exchange.Collection.Items() to initiate populate method (#446)
`Items()` starts populate method for collection for the `exchange.Collection` package. Test packages expanded to verify the functionality of this feature.
2022-07-31 17:57:14 +00:00
Keepers
7c62939c85
update GC's restore to use AwaitStatus (#451)
GC's restore funcs update their status field differently than
the backup funcs.  This brings the behavior in line.
2022-07-29 21:09:15 +00:00
Danny
da9a22271d
Mock Connector expansion (#437)
Mock Connector data collection is a Messageable item and has been changed to be utilized in other portions of the corso repo.
2022-07-29 15:08:36 -04:00
Danny
5a68108006
Gc separate tests (#448)
Merge places online and offline tests into different files.
2022-07-29 11:33:15 -06:00
Danny
e6f5b4515d
GC: exchange.Collection PopulateFunction refactor without TaskList (#441)
exchange.PopulateFunc executed without a tasklist.
2022-07-29 12:35:27 -04:00
Danny
9eb6a5dd0c
GC: Tasklist removed from packages (#440)
Tasklist struct removed from code base
2022-07-29 12:32:58 +00:00
Danny
992504ed36
exchange.Collection FinishPopulation function removed (#436)
* removal of FinishPopulation() method.
* graph_connector disconnected from exchange collection internal functions.
2022-07-28 14:08:35 -04:00
Danny
a4d99a74ed
Adapter creation moved to graph package (#432)
CreateAdapter function exported to the `graph` package. This will be the same area that authentication and token refreshment will eventually go.
2022-07-28 16:06:33 +00:00
Danny
987980510c
exchange.Collection addition of job field to struct (#434)
`exchange.Collection` field **jobs** `type: [] string` added to struct
2022-07-28 15:50:55 +00:00
Danny
402b3aae06
Exported fields removed (#433)
Exported fields removed.
2022-07-28 15:22:28 +00:00
Danny
8bfff3c88f
Population Function Moved to Exchange Package (#429)
Functions and interfaces moved to interact properly with connector package. Fields are no longer exported until the required functions are moved to the exchange package.
2022-07-27 19:18:20 -04:00
Danny
665fa21b13
ExchangeDataCollection moved to exchange.ObjectCollection (#423)
Exchange DataCollection moved to the exchange package. Unused fields removed at this time.
2022-07-27 21:22:27 +00:00
Danny
34a7a1a80c
Data Collection --> Collection refactor (#415)
DataCollection changed to Collection in the repository. All associated imports changed to reflect the change.
2022-07-27 12:04:31 -04:00
Danny
3e792e69eb
Move DataCollection to data package (#414)
DataCollection moved to `/src/internal/data` directory and imports changed to recognize the move.
2022-07-27 08:04:35 -04:00
Keepers
587c239dd1
store backup operation results in the backup manifest (#410)
* store backup operation results in the backup manifest

Adds backup operation metadata like the outcome
statistics and selector definitions to the backup manifest
entry.  These additional details will appear when users
call `corso backup list`.
2022-07-26 19:35:14 +00:00
Keepers
5a532e808e
fix errant conditional on GC restore success counter (#407) 2022-07-25 13:14:13 -06:00
Danny
25c781eec6
Gc edc extension (#402)
* Extension of ExchangeDataCollection for async population.
2022-07-25 12:46:17 -04:00
Keepers
dcbc149aa7
Build binary test separately (#399)
* refactor ci caching to ensure go test runs without downloading packages
2022-07-25 09:05:40 -06:00
ashmrtn
395c7c8525
Add spell check linter and run gofmt in golangci-lint (#396)
* Basic golangci-lint config with gofmt and timeout

Remove corresponding sections from other CI config files.

* Enable comment and string spelling linter

* Fix spelling mistakes for linter

Co-authored-by: Danny <danny@alcion.ai>
2022-07-22 18:28:25 +00:00
Keepers
532922f662
introduce exchange info selector support (#379)
* introduce exchange info selector support

Adds support in selectors/exchange for queries based on
backup.ExchangeInfo entries.  This allows the declaration
of selectors based on non-identifier details such as sender,
subject, or receivedAt time.

Changes Exclude scope matching from being an Any-
match comparator to an All-match.  This keeps exclude
and include behavior identical, hopefully making less
confusion for users.
2022-07-21 15:08:03 -06:00
Danny
dfcba3bf0a
Fail-fast option added (#377)
Fail-fast option added.
2022-07-21 14:59:11 +00:00
Danny
fe92d7c9db
Issue #359: create folder enhancement added. (#375)
Issue #359: create folder feature added.
Feature required to finish task #374
2022-07-21 13:32:53 +00:00
Vaibhav Kamra
1a31a07425
Populate ExchangeInfo correctly (#373)
Message Info added back to package.
2022-07-20 08:30:28 -04:00
Keepers
746c88a233
refactor selector scopes to accept slices (#352)
* refactor selector scopes to accept slices

Cli flag implementation was showcasing a toil issue: building
selectors required a lot of repetitious code for combining
inputs into sets of scopes.  Since all of these productions
were effectively identical (eg: for each user, then each folder,
create a scope with the ids), the cleaner solution is to pack
that behavior into the scope constructors themselves.
2022-07-19 16:04:07 -06:00
Keepers
6d04c82992
correct count of successful status items (#366)
* correct count of successful status items
2022-07-19 13:53:42 -06:00
Danny
d00332f328
GC async population of m365 objects mail (#332)
-- Changes made to incorporate async population of a DataCollection
2022-07-18 21:01:58 +00:00
Danny
5a9f2e4601
GC custom errors to inherit from internal/common (#337)
Custom error package added and extended to the internal/connector package
2022-07-15 21:21:11 +00:00
Keepers
105fd7383a
add e2e backup-restore integration test (#311)
* add e2e backup-restore integration test

Adds an e2e integration test that starts by backing up
data, and ends with restoring it.  Also makes various
amendments to other code where necessary to
facilitate this exercise.
2022-07-14 09:00:55 -06:00
Danny
b9652c66e3
GC Serialization fix: event message support (#304)
Support for eventMessage Request and Response capabilities added for serialization.
2022-07-11 13:04:20 -04:00
Vaibhav Kamra
fa190da682
Rename restorepoint to backup (#314) 2022-07-11 16:06:04 +00:00
Danny
60ab132960
GC: Create Consistent Snapshot (#292)
GraphConnector: Query consistency feature added
See document for implementation details: [document](https://www.notion.so/alcion/GraphConnector-RestorePoint-Consistency-for-Queries-81cce329c6e84cd79121cda0d511e1f6)
2022-07-08 15:45:25 -04:00
Vaibhav Kamra
6e9bd634e4
Create RestorePoint and RestorePointDetails (#290)
Update the backup operation to create RestorePoint and RestorePointDetails models in the repository

Add modelstore to the operation to allow backup/restore operations to update/query for corso models

Closes #268
2022-07-08 01:41:40 +00:00
Vaibhav Kamra
9d21d65bc7
Use MockExchangeData in kopia backup tests (#303)
This implements the DataStreamInfo interface needed by BackupCollections
2022-07-08 00:23:34 +00:00