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

feat: pinned reference integrity check API #4573

Merged
merged 3 commits into from
Feb 27, 2024
Merged

Conversation

notanatol
Copy link
Contributor

@notanatol notanatol commented Feb 7, 2024

Checklist

Description

This is a new debug API endpoint that performs the same validation as the pin integrity check command line tool: https://hackmd.io/@F-mGf2lBSoGylLGQE6rRkA/ByVp6Ac9p

To trigger chunk validation for all pins: send an http get request to /check/pin, if you want to limit to a specific reference add a query parameter:

curl -v -XGET "localhost:1635/check/pin?ref=0874f94e9009628a70247c7b77f9034c8729c38d153a9fa42058bf5c7b341495"

The data will be flushed periodically and is .jq friendly: jq 'select(.invalid>0) | .ref' out.json

The background job is responsive to interruptions if you want to stop the pin validation process.

Because the validation process is disk bound it's not desirable to trigger it on a busy instance (while downloading/uploading).

Closes: #4566

@notanatol notanatol changed the title Feat integrity api feat: pinned reference integrity check API Feb 7, 2024
@notanatol notanatol self-assigned this Feb 7, 2024
@notanatol notanatol added the ready for review The PR is ready to be reviewed label Feb 7, 2024
@notanatol
Copy link
Contributor Author

@ldeffenb updated the description: https://hackmd.io/@F-mGf2lBSoGylLGQE6rRkA/ByVp6Ac9p

@ldeffenb
Copy link
Collaborator

ldeffenb commented Feb 7, 2024

@ldeffenb updated the description: https://hackmd.io/@F-mGf2lBSoGylLGQE6rRkA/ByVp6Ac9p

Thank you. That one is readable by the general public!

@ethersphere ethersphere deleted a comment from ldeffenb Feb 8, 2024
@@ -278,15 +278,15 @@ func initDiskRepository(
basePath string,
locker storage.ChunkLocker,
opts *Options,
) (storage.Repository, io.Closer, error) {
) (storage.Repository, *PinIntegrity, io.Closer, error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead of returning so many things from the constructor, the PinIntegrity can returned with a get function?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so I tried adding a getter to the storage.Repository but the compiler says that now there are 183 places that need changing (to comply with the new interface) so it seems it's no feasible. I'll look into other ways but for now I don't have a better approach.

Invalid int `json:"invalid"`
}

func (s *Service) pinIntegrityHandler(w http.ResponseWriter, r *http.Request) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would it be possible to unit test this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

@notanatol notanatol marked this pull request as draft February 20, 2024 16:06
@notanatol notanatol marked this pull request as ready for review February 22, 2024 13:41
@notanatol notanatol merged commit b905de1 into master Feb 27, 2024
12 checks passed
@notanatol notanatol deleted the feat-integrity-api branch February 27, 2024 15:12
aranyia added a commit to Solar-Punk-Ltd/bee that referenced this pull request Apr 3, 2024
* fix(stamper): global lock stamper across multiple upload sessions (ethersphere#4578)
* fix: strategy and fetch timeout parsing (ethersphere#4579)
* feat: neighborhood suggester config (ethersphere#4580)
* feat: add codeql.yml (ethersphere#4334)
* feat: add reserveSizeWithinRadius to status protocol (ethersphere#4585)
* fix: missing 200 response (ethersphere#4526)
* feat: pinned reference integrity check API (ethersphere#4573)
* fix(redundancy/getter): wait for recovery and return error (ethersphere#4581)
* fix(pushsync): store the chunk locally when no peers are available fo… (ethersphere#4597)
* fix(redundancy): on by default when downloading (ethersphere#4602)
* fix: add missing openapi spec (ethersphere#4598)
* feat: bzz resource info API (ethersphere#4588)
* fix(redundancy): bzz unit test (ethersphere#4603)
* feat: redundancy ci (ethersphere#4591)
* chore: bump github.com/quic-go/quic-go from 0.38.1 to 0.38.2 (ethersphere#4534)
* feat: split input file to chunks with specified redundancy (ethersphere#4600)
* perf(getter): cancel inflight requests if enough chunks are fetched for recovery (ethersphere#4608)
* fix: store dir error info (ethersphere#4605)
* chore: remove repetitive words (ethersphere#4611)
* fix: use neighborhood suggester only on mainnet (ethersphere#4612)
* feat: alternative withdrawal address (ethersphere#4606)
* fix(seg65) (ethersphere#4604)
* fix(getter): redundancy getter cleanup (ethersphere#4610)
* feat: v2 (ethersphere#4615)
* fix(pin_integrity): changed route and added openapi (ethersphere#4616)
* fix: missing v2 in the makefile and goreleaser (ethersphere#4622)
bosi95 added a commit to Solar-Punk-Ltd/bee that referenced this pull request Apr 19, 2024
* feat: add act.go with TODOs

feat: Add Act interface

feat: Add Marshal, Unmarshal skeleton

feat: Refactor AccessType to iota

feat: Add upload

feat: Rename GenerateAccessControlManifest -> create

feat: Add saltLengthIs32

feat: Add Mrshal, Unmarshal impl

feat: Add Marshal Unmarshal

feat: Remove ManifestEntry json annotations

feat: Modify to public finc/method

feat: Add ErrSaltLength

Add pkg/dynamicaccess

Refactor interfaces and implement default structs

Refactor typo

Refactor History package to use NewHistory() function

Add Act interface and default implementation

Add ACT use cases to act_ucs.md

Add new files and implement interfaces, refactor packeges

Update act_ucs.md

base usecases

Refactor access logic and add mock implementations***

Add DiffieHellman implementation and remove Keystore***

Refactor NewAccessLogic function

Replace encryption.go to pkg/encryption

Refactor packages

Update act_ucs.md

Update act_ucs.md

Update act_ucs.md

Update act_ucs.md

Update act_ucs.md

* Diffie-Hellman (#3)

* Use DiffieHellmanMock

* Adds a comment about Get

* Add support for ECDSA public key in DiffieHellman.SharedSecret function

* Update defaultAct implementation

* Adds pseudo code for Access Logic

* Update default Act creation; Fix basic Act tests

* Refactor access logic to use new ActMock implementation

* feat(history): test mockups wip

* Refactor DiffieHellman implementation

* changes pseudocode for Diffie-Hellmann read

* Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>

* DiffieHellman mock generates a real sherd secret

* Refactor Act

* Adds manifest lookup

* Extend act_test

* Adds unit tests, some values are mocked

* Refactor act mock impl with map[string]map[string]string

* Add check mock implementation for DiffieHellman interface

* Add Load, Store to Act interface. Refactor Act interface

* refactor act, diffieHellman mocks, tests

* Add TestLoadStore function to act_test.go

* Remove unnecessary code in Load function

* Add history mock and History lookup test

* Act refactor

Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>

* Refactor Add method to return Act interface

* Change Get method return type to []byte

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Peter Ott <ottpeter@tuta.io>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>
Co-authored-by: Levente Kiss <levente.kiss@solarpunk.bzz>
Co-authored-by: Roland Seres <roland.seres90@gmail.com>
Co-authored-by: Kexort <kexort@gmail.com>
Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>

* Acces Logic (#8)

* Use DiffieHellmanMock

* Adds a comment about Get

* Add support for ECDSA public key in DiffieHellman.SharedSecret function

* Update defaultAct implementation

* Adds pseudo code for Access Logic

* Update default Act creation; Fix basic Act tests

* Refactor access logic to use new ActMock implementation

* feat(history): test mockups wip

* Refactor DiffieHellman implementation

* changes pseudocode for Diffie-Hellmann read

* Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>

* DiffieHellman mock generates a real sherd secret

* Refactor Act

* Adds manifest lookup

* Extend act_test

* Adds unit tests, some values are mocked

* Refactor act mock impl with map[string]map[string]string

* Add check mock implementation for DiffieHellman interface

* started Add

* changed some sig

* save

* new grantee addition handling

* mod

* changed helper function visibilities

* some mod with grantee

* test mod

* save

* no error in actInit

* Add_New_Grantee_To_Content

* comment

* copied act_test.go

* no compiler errors on our side

* Adds Add_New_Grantee_To_Content and ActInit

* almost complete grantee container

* maybe complete grantee container

* Solves merge conflict

* access-logic-merge

* fix merge issues

* Added context & details to use cases (#6)

ZH ethersphere#106 Added context & details to use cases

* Add grantee management (#10)

* Add grantee management

* Added controller test

* Fix test fixture, refactor accesslogic

* Add UploadHandler

---------

Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>

* (refactor): from `Get` to `Lookup` to improve clarity and consistency. The changes have been made in the `accesslogic.go`, `act.go`, `act_test.go`, `history_test.go`, and `mock/act.go` files. (#13)

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* Act params rename doc (#14)

* (refactor): ACT interface params + add doc comments

* Revert "(refactor): ACT interface params + add doc comments"

This reverts commit ee8da04.

* (refactor): ACT interface params + add doc comments

* (refactor): Add error to ACT interface methods

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* Move and refactor ACT diffieHellman to Session. Add Key and NewFromKeystore functions. (#16)

* Act swarm address (#15)

* (refactor): ACT interface params + add doc comments

* Revert "(refactor): ACT interface params + add doc comments"

This reverts commit ee8da04.

* (refactor): ACT interface params + add doc comments

* (refactor): Add error to ACT interface methods

* Add in-memory storage and implement Store and Load methods

* Move and refactor ACT diffieHellman to Session. Add Key and NewFromKeystore functions.

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>

* (rename): defaultAct to inMemoryAct (#17)

* (refactor): ACT interface params + add doc comments

* Revert "(refactor): ACT interface params + add doc comments"

This reverts commit ee8da04.

* (refactor): ACT interface params + add doc comments

* (refactor): Add error to ACT interface methods

* Add in-memory storage and implement Store and Load methods

* *refactor) Rename defaultAct to inMemroryAct

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* (refactor): Update controller_test.go to use NewInMemoryAct, modify Session.Key to return correct dimensional byte slice (#18)

* (refactor): Update controller_test.go to use NewInMemoryAct, modify Session.Key to return two-dimensional byte slice

* (refactor:) Refactor session Key function to use append instead of index-based assignment

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* Act access logic merge (#19)

* grantee container and access logc tests are passed

* refactored access logic and grantee container

* PR 19 comments resolving

* Refactor

* Refactor

* Act kvs merge (#22)

* grantee container and access logc tests are passed

* refactored access logic and grantee container

* PR 19 comments resolving

* Refactor

* Refactor

* working manifest ACT with basic tests

* (refactor:) Refactor act_test

* (refactor:) Refactor kvs -> kvs.manifest, kvs.memory

* (refactror:) kvs

* refactor kvs contsructors

---------

Co-authored-by: Roland Seres <roland.seres90@gmail.com>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>
Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* Session refactor (#24)

* pr comment fix

* add comment to session.NewFromKeystore

* Access logic refactor (#25)

Refactors access logic

---------

Co-authored-by: Peter Ott <peter.ott@solarpunk.buzz>
Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>
Co-authored-by: Peter Ott <ottpeter@tuta.io>

* (refactor:) PR comments (#23)

* grantee-refactor

* Dried up code, related to AddPublisher - AddNewGranteeToContent

* Refactor

* removed getEncryptedAccessKey

* Renamed AddGrentees, RemoveGrantees, etc to Add, Remove, etc

* (refactor:) PR comments

* (refactor:) compile check

* removed encrypted_ref, grantee check (validation)

* changed interface

* comments

* some more comments

* refactor kvs and add load and store

* (refactor:) Use ref

* renamed defaultGrantee to granteeList

* removed null encrypted test in  in TestGet_Error

* refactor kvs: pass kvs IF argument instead of storing it

* Refactor according to the result of the workshop

* refactor kvs IF and mock

* fix merge errors and Logic/get_error test

* (test:) Add test for put/get after kvs.Save

---------

Co-authored-by: Roland Seres <roland.seres90@gmail.com>
Co-authored-by: Peter Ott <peter.ott@solarpunk.buzz>
Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>
Co-authored-by: Peter Ott <ottpeter@tuta.io>

* Add referenced mock kvs (#26)

* add controller upload test

* compile

* Add test for grantee

* Add Upload test

* Implement controller logic, move grantee management

* Act kvs test (#27)

* (test:) Refactor tests

* (fix:) Save reset counter

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* feat: add history lookup and add

* feat: expose mantaray manifest

* Small refactor + al test (#28)

Adds TestDecryptRefWithGrantee_Success and replaces generateFixPrivateKey with getPrivKey

Co-authored-by: Peter Ott <ottpeter@tuta.io>

* chore: tests + minor fixes

* chore: minor test change

* feat: history with reference

* chore: debugging

* Persist grantee list on swarm (#30)

* Persist grantee list on swarm
* accesslogic refactor
* Refactor grantee list tests

Co-authored-by: Roland Seres <roland.seres90@gmail.com>

* Merging Swarm 2.0 master (#32)

* fix(stamper): global lock stamper across multiple upload sessions (ethersphere#4578)
* fix: strategy and fetch timeout parsing (ethersphere#4579)
* feat: neighborhood suggester config (ethersphere#4580)
* feat: add codeql.yml (ethersphere#4334)
* feat: add reserveSizeWithinRadius to status protocol (ethersphere#4585)
* fix: missing 200 response (ethersphere#4526)
* feat: pinned reference integrity check API (ethersphere#4573)
* fix(redundancy/getter): wait for recovery and return error (ethersphere#4581)
* fix(pushsync): store the chunk locally when no peers are available fo… (ethersphere#4597)
* fix(redundancy): on by default when downloading (ethersphere#4602)
* fix: add missing openapi spec (ethersphere#4598)
* feat: bzz resource info API (ethersphere#4588)
* fix(redundancy): bzz unit test (ethersphere#4603)
* feat: redundancy ci (ethersphere#4591)
* chore: bump github.com/quic-go/quic-go from 0.38.1 to 0.38.2 (ethersphere#4534)
* feat: split input file to chunks with specified redundancy (ethersphere#4600)
* perf(getter): cancel inflight requests if enough chunks are fetched for recovery (ethersphere#4608)
* fix: store dir error info (ethersphere#4605)
* chore: remove repetitive words (ethersphere#4611)
* fix: use neighborhood suggester only on mainnet (ethersphere#4612)
* feat: alternative withdrawal address (ethersphere#4606)
* fix(seg65) (ethersphere#4604)
* fix(getter): redundancy getter cleanup (ethersphere#4610)
* feat: v2 (ethersphere#4615)
* fix(pin_integrity): changed route and added openapi (ethersphere#4616)
* fix: missing v2 in the makefile and goreleaser (ethersphere#4622)

* chore: package update

* Update package imports to use the v2 version of the modules (#33)

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* fix walkfn with key sort

* feat: new option to walk nodes of mantaray in sequence

* feat: add latest timestamp check

* chore: uncomment wip stuff

* chore: requested changes

* test: fix to latest adjustment

* Add ctrl logic

* Add dac service

* Continue add ACT handler

* chore: use ZeroAddress

* chore: make var name more general

* connect api test with dac service

* refactor ctrl based on history v2

* Fix: controller upload download flow + basic tests

* hacked mock dac service for simple upload and download

* Insert act uploadhandler into /bzz endpoint and remove uphandler

* Refactor controller and api; enrypt and rLevel passed on during up/download

* Connect Get,Head,Post endpoints with ACT

* Add: act to devnode

* devnode: close dac during shutdown

* pass decrypted ref in r.ctx

* set address ctx as swarm address

* refactor: call actEncrpytionHandler in every endpoint

* typo and comment fix in dynamicaccess

* Add: mock dynamicaccess service and api tests

* Add: TestDacEachEndpointWithAct; fixed some review comments

* Add ACT head test for endpoints

* CHG: first encrypt via ACT then upload normal reference

* FIX: apiservice.dac nil error

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Ferenc Sárai <sarai.ferenc@gmail.com>
Co-authored-by: Peter Ott <ottpeter@tuta.io>
Co-authored-by: Levente Kiss <levente.kiss@solarpunk.bzz>
Co-authored-by: Roland Seres <roland.seres90@gmail.com>
Co-authored-by: Kexort <kexort@gmail.com>
Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>
Co-authored-by: András Arányi <aranyia@users.noreply.github.com>
Co-authored-by: rolandlor <33499567+rolandlor@users.noreply.github.com>
Co-authored-by: Peter Ott <peter.ott@solarpunk.buzz>
aranyia added a commit to Solar-Punk-Ltd/bee that referenced this pull request May 17, 2024
* feat: add act.go with TODOs

feat: Add Act interface

feat: Add Marshal, Unmarshal skeleton

feat: Refactor AccessType to iota

feat: Add upload

feat: Rename GenerateAccessControlManifest -> create

feat: Add saltLengthIs32

feat: Add Mrshal, Unmarshal impl

feat: Add Marshal Unmarshal

feat: Remove ManifestEntry json annotations

feat: Modify to public finc/method

feat: Add ErrSaltLength

Add pkg/dynamicaccess

Refactor interfaces and implement default structs

Refactor typo

Refactor History package to use NewHistory() function

Add Act interface and default implementation

Add ACT use cases to act_ucs.md

Add new files and implement interfaces, refactor packeges

Update act_ucs.md

base usecases

Refactor access logic and add mock implementations***

Add DiffieHellman implementation and remove Keystore***

Refactor NewAccessLogic function

Replace encryption.go to pkg/encryption

Refactor packages

Update act_ucs.md

Update act_ucs.md

Update act_ucs.md

Update act_ucs.md

Update act_ucs.md

* Diffie-Hellman (#3)

* Use DiffieHellmanMock

* Adds a comment about Get

* Add support for ECDSA public key in DiffieHellman.SharedSecret function

* Update defaultAct implementation

* Adds pseudo code for Access Logic

* Update default Act creation; Fix basic Act tests

* Refactor access logic to use new ActMock implementation

* feat(history): test mockups wip

* Refactor DiffieHellman implementation

* changes pseudocode for Diffie-Hellmann read

* Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>

* DiffieHellman mock generates a real sherd secret

* Refactor Act

* Adds manifest lookup

* Extend act_test

* Adds unit tests, some values are mocked

* Refactor act mock impl with map[string]map[string]string

* Add check mock implementation for DiffieHellman interface

* Add Load, Store to Act interface. Refactor Act interface

* refactor act, diffieHellman mocks, tests

* Add TestLoadStore function to act_test.go

* Remove unnecessary code in Load function

* Add history mock and History lookup test

* Act refactor

Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>

* Refactor Add method to return Act interface

* Change Get method return type to []byte

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Peter Ott <ottpeter@tuta.io>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>
Co-authored-by: Levente Kiss <levente.kiss@solarpunk.bzz>
Co-authored-by: Roland Seres <roland.seres90@gmail.com>
Co-authored-by: Kexort <kexort@gmail.com>
Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>

* Acces Logic (#8)

* Use DiffieHellmanMock

* Adds a comment about Get

* Add support for ECDSA public key in DiffieHellman.SharedSecret function

* Update defaultAct implementation

* Adds pseudo code for Access Logic

* Update default Act creation; Fix basic Act tests

* Refactor access logic to use new ActMock implementation

* feat(history): test mockups wip

* Refactor DiffieHellman implementation

* changes pseudocode for Diffie-Hellmann read

* Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>

* DiffieHellman mock generates a real sherd secret

* Refactor Act

* Adds manifest lookup

* Extend act_test

* Adds unit tests, some values are mocked

* Refactor act mock impl with map[string]map[string]string

* Add check mock implementation for DiffieHellman interface

* started Add

* changed some sig

* save

* new grantee addition handling

* mod

* changed helper function visibilities

* some mod with grantee

* test mod

* save

* no error in actInit

* Add_New_Grantee_To_Content

* comment

* copied act_test.go

* no compiler errors on our side

* Adds Add_New_Grantee_To_Content and ActInit

* almost complete grantee container

* maybe complete grantee container

* Solves merge conflict

* access-logic-merge

* fix merge issues

* Added context & details to use cases (#6)

ZH ethersphere#106 Added context & details to use cases

* Add grantee management (#10)

* Add grantee management

* Added controller test

* Fix test fixture, refactor accesslogic

* Add UploadHandler

---------

Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>

* (refactor): from `Get` to `Lookup` to improve clarity and consistency. The changes have been made in the `accesslogic.go`, `act.go`, `act_test.go`, `history_test.go`, and `mock/act.go` files. (#13)

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* Act params rename doc (#14)

* (refactor): ACT interface params + add doc comments

* Revert "(refactor): ACT interface params + add doc comments"

This reverts commit ee8da04.

* (refactor): ACT interface params + add doc comments

* (refactor): Add error to ACT interface methods

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* Move and refactor ACT diffieHellman to Session. Add Key and NewFromKeystore functions. (#16)

* Act swarm address (#15)

* (refactor): ACT interface params + add doc comments

* Revert "(refactor): ACT interface params + add doc comments"

This reverts commit ee8da04.

* (refactor): ACT interface params + add doc comments

* (refactor): Add error to ACT interface methods

* Add in-memory storage and implement Store and Load methods

* Move and refactor ACT diffieHellman to Session. Add Key and NewFromKeystore functions.

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>

* (rename): defaultAct to inMemoryAct (#17)

* (refactor): ACT interface params + add doc comments

* Revert "(refactor): ACT interface params + add doc comments"

This reverts commit ee8da04.

* (refactor): ACT interface params + add doc comments

* (refactor): Add error to ACT interface methods

* Add in-memory storage and implement Store and Load methods

* *refactor) Rename defaultAct to inMemroryAct

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* (refactor): Update controller_test.go to use NewInMemoryAct, modify Session.Key to return correct dimensional byte slice (#18)

* (refactor): Update controller_test.go to use NewInMemoryAct, modify Session.Key to return two-dimensional byte slice

* (refactor:) Refactor session Key function to use append instead of index-based assignment

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* Act access logic merge (#19)

* grantee container and access logc tests are passed

* refactored access logic and grantee container

* PR 19 comments resolving

* Refactor

* Refactor

* Act kvs merge (#22)

* grantee container and access logc tests are passed

* refactored access logic and grantee container

* PR 19 comments resolving

* Refactor

* Refactor

* working manifest ACT with basic tests

* (refactor:) Refactor act_test

* (refactor:) Refactor kvs -> kvs.manifest, kvs.memory

* (refactror:) kvs

* refactor kvs contsructors

---------

Co-authored-by: Roland Seres <roland.seres90@gmail.com>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>
Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* Session refactor (#24)

* pr comment fix

* add comment to session.NewFromKeystore

* Access logic refactor (#25)

Refactors access logic

---------

Co-authored-by: Peter Ott <peter.ott@solarpunk.buzz>
Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>
Co-authored-by: Peter Ott <ottpeter@tuta.io>

* (refactor:) PR comments (#23)

* grantee-refactor

* Dried up code, related to AddPublisher - AddNewGranteeToContent

* Refactor

* removed getEncryptedAccessKey

* Renamed AddGrentees, RemoveGrantees, etc to Add, Remove, etc

* (refactor:) PR comments

* (refactor:) compile check

* removed encrypted_ref, grantee check (validation)

* changed interface

* comments

* some more comments

* refactor kvs and add load and store

* (refactor:) Use ref

* renamed defaultGrantee to granteeList

* removed null encrypted test in  in TestGet_Error

* refactor kvs: pass kvs IF argument instead of storing it

* Refactor according to the result of the workshop

* refactor kvs IF and mock

* fix merge errors and Logic/get_error test

* (test:) Add test for put/get after kvs.Save

---------

Co-authored-by: Roland Seres <roland.seres90@gmail.com>
Co-authored-by: Peter Ott <peter.ott@solarpunk.buzz>
Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Bálint Ujvári <balint.ujvari@solarpunk.buzz>
Co-authored-by: Peter Ott <ottpeter@tuta.io>

* Add referenced mock kvs (#26)

* add controller upload test

* compile

* Add test for grantee

* Add Upload test

* Implement controller logic, move grantee management

* Act kvs test (#27)

* (test:) Refactor tests

* (fix:) Save reset counter

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* feat: add history lookup and add

* feat: expose mantaray manifest

* Small refactor + al test (#28)

Adds TestDecryptRefWithGrantee_Success and replaces generateFixPrivateKey with getPrivKey

Co-authored-by: Peter Ott <ottpeter@tuta.io>

* chore: tests + minor fixes

* chore: minor test change

* feat: history with reference

* chore: debugging

* Persist grantee list on swarm (#30)

* Persist grantee list on swarm
* accesslogic refactor
* Refactor grantee list tests

Co-authored-by: Roland Seres <roland.seres90@gmail.com>

* Merging Swarm 2.0 master (#32)

* fix(stamper): global lock stamper across multiple upload sessions (ethersphere#4578)
* fix: strategy and fetch timeout parsing (ethersphere#4579)
* feat: neighborhood suggester config (ethersphere#4580)
* feat: add codeql.yml (ethersphere#4334)
* feat: add reserveSizeWithinRadius to status protocol (ethersphere#4585)
* fix: missing 200 response (ethersphere#4526)
* feat: pinned reference integrity check API (ethersphere#4573)
* fix(redundancy/getter): wait for recovery and return error (ethersphere#4581)
* fix(pushsync): store the chunk locally when no peers are available fo… (ethersphere#4597)
* fix(redundancy): on by default when downloading (ethersphere#4602)
* fix: add missing openapi spec (ethersphere#4598)
* feat: bzz resource info API (ethersphere#4588)
* fix(redundancy): bzz unit test (ethersphere#4603)
* feat: redundancy ci (ethersphere#4591)
* chore: bump github.com/quic-go/quic-go from 0.38.1 to 0.38.2 (ethersphere#4534)
* feat: split input file to chunks with specified redundancy (ethersphere#4600)
* perf(getter): cancel inflight requests if enough chunks are fetched for recovery (ethersphere#4608)
* fix: store dir error info (ethersphere#4605)
* chore: remove repetitive words (ethersphere#4611)
* fix: use neighborhood suggester only on mainnet (ethersphere#4612)
* feat: alternative withdrawal address (ethersphere#4606)
* fix(seg65) (ethersphere#4604)
* fix(getter): redundancy getter cleanup (ethersphere#4610)
* feat: v2 (ethersphere#4615)
* fix(pin_integrity): changed route and added openapi (ethersphere#4616)
* fix: missing v2 in the makefile and goreleaser (ethersphere#4622)

* chore: package update

* Update package imports to use the v2 version of the modules (#33)

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>

* fix walkfn with key sort

* feat: new option to walk nodes of mantaray in sequence

* feat: add latest timestamp check

* chore: uncomment wip stuff

* chore: requested changes

* test: fix to latest adjustment

* Add ctrl logic

* Add dac service

* Continue add ACT handler

* chore: use ZeroAddress

* chore: make var name more general

* connect api test with dac service

* refactor ctrl based on history v2

* Fix: controller upload download flow + basic tests

* hacked mock dac service for simple upload and download

* Insert act uploadhandler into /bzz endpoint and remove uphandler

* Refactor controller and api; enrypt and rLevel passed on during up/download

* Connect Get,Head,Post endpoints with ACT

* Add: act to devnode

* devnode: close dac during shutdown

* pass decrypted ref in r.ctx

* set address ctx as swarm address

* refactor: call actEncrpytionHandler in every endpoint

* typo and comment fix in dynamicaccess

* Add: mock dynamicaccess service and api tests

* Add: TestDacEachEndpointWithAct; fixed some review comments

* Add ACT head test for endpoints

* CHG: first encrypt via ACT then upload normal reference

* FIX: apiservice.dac nil error

---------

Co-authored-by: Ferenc Sárai <ferenc.sarai@solarpunk.buzz>
Co-authored-by: Ferenc Sárai <sarai.ferenc@gmail.com>
Co-authored-by: Peter Ott <ottpeter@tuta.io>
Co-authored-by: Levente Kiss <levente.kiss@solarpunk.bzz>
Co-authored-by: Roland Seres <roland.seres90@gmail.com>
Co-authored-by: Kexort <kexort@gmail.com>
Co-authored-by: Bálint Ujvári <bosi95@users.noreply.github.com>
Co-authored-by: András Arányi <aranyia@users.noreply.github.com>
Co-authored-by: rolandlor <33499567+rolandlor@users.noreply.github.com>
Co-authored-by: Peter Ott <peter.ott@solarpunk.buzz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pull-request ready for review The PR is ready to be reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

API for localstore scanning
4 participants