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

refactor: clean up migrations #830

Merged
merged 6 commits into from
Mar 25, 2024
Merged

Conversation

shotexa
Copy link

@shotexa shotexa commented Mar 21, 2024

Overview

Remove all migrations and only create new ones that creates database with the latest state (data loss is not accounted)

Screenshots

Checklists

Pre-submit checklist:

  • Self-reviewed the diff
  • New code has proper comments/documentation/tests
  • Any changes not covered by tests have been tested manually
  • The README files are updated
  • If new libraries are included, they have licenses compatible with our project
  • If there is a db migration altering existing tables, there is a proper migration test

Pre-merge checklist:

  • Commits have useful messages
  • Review clarifications made it into the code

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>
@shotexa shotexa self-assigned this Mar 21, 2024
@shotexa shotexa changed the title Clean up migrations refactor: clean up migrations Mar 21, 2024
@atala-dev
Copy link
Contributor

atala-dev commented Mar 21, 2024

🦙 MegaLinter status: ⚠️ WARNING

Descriptor Linter Files Fixed Errors
✅ ACTION actionlint 1 0
✅ REPOSITORY dustilock yes no
✅ REPOSITORY git_diff yes no
✅ REPOSITORY grype yes no
⚠️ REPOSITORY kics yes 93
✅ REPOSITORY syft yes no
✅ REPOSITORY trivy-sbom yes no
⚠️ REPOSITORY trufflehog yes 1
✅ SQL sql-lint 1 0
⚠️ YAML prettier 2 1
✅ YAML v8r 2 0
✅ YAML yamllint 2 0

See detailed report in MegaLinter reports
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security

Copy link

github-actions bot commented Mar 21, 2024

Unit Test Results

325 tests   - 3   324 ✔️  - 3   38s ⏱️ +3s
  45 suites  - 3       1 💤 ±0 
  45 files    - 3       0 ±0 

Results for commit 3177bb5. ± Comparison against base commit 15e6865.

This pull request removes 3 tests.
io.iohk.atala.prism.node.migrations.V19MigrationSpec ‑ Migrating to version db.migration.V19 should work
io.iohk.atala.prism.node.repositories.migrations.V6MigrationSpec ‑ Migrating to version V6 should work
io.iohk.atala.prism.node.repositories.migrations.V8MigrationSpec ‑ Migrating to version V8 should work

♻️ This comment has been updated with latest results.

Shota Jolbordi added 2 commits March 22, 2024 04:28
Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>
Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>
Copy link
Contributor

@EzequielPostan EzequielPostan left a comment

Choose a reason for hiding this comment

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

thank you @shotexa
linter complains aside, the migration looks correct. I only added a question out of curiosity

Comment on lines +290 to +302
CREATE OR REPLACE FUNCTION public.random_bytea(p_length integer) RETURNS BYTEA
LANGUAGE PLPGSQL AS
$function$
declare
o bytea := '';
begin
for i in 1..p_length
loop
o := o || decode(lpad(to_hex(width_bucket(random(), 0, 1, 256) - 1), 2, '0'), 'hex');
end loop;
return o;
end;
$function$;
Copy link
Contributor

Choose a reason for hiding this comment

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

Just curious, I guess this unified migration comes from pg_dump output, but I didn't see this loop in any previous migration file. Do you know what created the loop?

Copy link
Author

Choose a reason for hiding this comment

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

Check V13__add_ledger_data_to_protocol_events.sql

-- + public_keys table
-- in this table, there is no BYTEA value we could use for default transaction_id,
-- we neither have a hex encoded BYTEA we could use, we will use the function found
-- here: https://dba.stackexchange.com/questions/22512/how-can-i-generate-a-random-bytea
create function random_bytea(p_length in integer) returns bytea language plpgsql as $$
declare
  o bytea := '';
begin
  for i in 1..p_length loop
    o := o||decode(lpad(to_hex(width_bucket(random(), 0, 1, 256)-1),2,'0'), 'hex');
  end loop;
  return o;
end;$$;
-- it is not the most efficient but it will be enough for our case

Copy link
Author

Choose a reason for hiding this comment

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

TLDR: there is a loop but you might have missed it due to how it is formatted, it is a bit hard to notice in previous migration.

Copy link
Contributor

Choose a reason for hiding this comment

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

Oh, that explains it. Thanks

@shotexa
Copy link
Author

shotexa commented Mar 25, 2024

@EzequielPostan If everything looks correct please approve so I can merge it

Copy link
Contributor

@EzequielPostan EzequielPostan left a comment

Choose a reason for hiding this comment

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

Thank you @shotexa
Please check the linter complain before merging

Shota Jolbordi added 3 commits March 25, 2024 18:39
Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>
Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>
Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>
@shotexa shotexa merged commit 4961d10 into open-source-node Mar 25, 2024
4 checks passed
@shotexa shotexa deleted the ATL-6715-clean-up-migrations branch March 25, 2024 15:13
milosbackonja added a commit that referenced this pull request May 17, 2024
* refactor: clean up migrations (#830)

* Add everything

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Remove migration tests

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* add ingnore invalid create option for postres mega linter

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Try mega linter 7

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* edit megalinter.yaml

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Disable some linters

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

---------

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* refactor(node): remove legacy BE files (#832)

* Start cleaning up docs

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Remove more files

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Fix compilation issue

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Trim docs

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Fix compilation errors

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Remove some bitcoin test resources and old docs

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Lint

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Fix tests

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

---------

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* refactor: Delete legacy operation related to credentials (#831)

* ATL-6668: Delete legacy operation related to credentials

This commit deletes the IssueCredentialBatchOperation and
RevokeCredentialsOperation. It does not delete node API, daos nor
repositories related to credentials

* ATL-6668: Delete more files related to VCs

This commit deletes even more files related to VC operations. It also
removes some dependencies on the old SDK

* ATL-6668: Delete unused tables

This commit deletes tables and indexes from VC legacy operations

* ATL-6668: Fix formatting

* ATL-6668: Address review comments

This commit deletes references to legacy VC code in protobuf and sql
definitions

* refactor(ATL-6924): add support for other keys (#834)

* ATL-6924: Replace users of ECPublicKey

This commit replaces the used of ECPublicKey

* ATL-6924: Simplify models

This commit simplifies models by deleting classes not needed at parsing
time

* ATL-6924: Simplify types

This commit replaces some uses of Array and uses Vector instead to allow
more transparent equality checks

* ATL-6924: Add support for encoding functions

This commit adds support to decode hex strings into Sha256Hash bytes

* ATL-6924: Refactor CryptoUtils and remove SHA256Digest

This commit improves the organization of CryptoUtils methods
It also delete the used of SDK methods related to Sha256 hashing

* refactor(ATL-6926): remove crypto sdk (#838)

* ATL-6926: Remove uses of EC classes

This commit removes most uses of the legacy crypto SDK

* ATL-6926: Fix missing implementations

This commit adds missing implementations for key encoding algorithms

* ATL-6926: Fix tests

* ATL-6926: Clean up code and tests

* ATL-6926: Correct typo and add tests

This commit adds the final tests to validate the cryptography
implementation that replaces the SDK

* refactor(node): Remove prism identity (#840)

* clean up source files, replace DID usages

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Fix some tests

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Linting

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Fix test

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Fix fromString on DID

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* formatting

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Address some PR comments

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

---------

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* refactor: crypto utils and tests (#841)

* Remove uses of the old SDK

This commit removes the uses of the old SDK and update tests

* Refactor CryptoUtils class

This commit re-organizes and renames methods for better use

* Remove last dependency on old SDK

This commit removes the last dependencies on the old SDK

* docs(ATL-6669): update readme (#833)

* ATL-6669: Update README

This commits updates the README to focus oly on the PRISM node.

* ATL-6669: Add IDE notes in README

This commit adds instructions to load the project in different IDEs.
The commit also removes incorrect sentences

* ATL-6669: Delete old README and complete new one

* ATL-6669: Add pre-commit configuration

This commit adds a pre-commit hook that runs scalafmt and instructions
to configure it

* ATL-6669: Refer to identus configuration

This commit updates the README and refers users to read identus
documentation in order to configure the node.

* ATL-7040: Delete DID based authentication (#843)

This commit deletes the legacy DID based authentication

* refactor(node): build files and add default port for gRPC server (#844)

* Change some build files

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Rmove unused files

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Remove unused files

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Remove outer node folder

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Revert version name

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Remove unneeded resolver from the build

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Update fs2

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Start adding tests

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Add more tests

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Fix 1 failing test

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Minor adjustment in docs

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* Remove test report aggregation step

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

---------

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>

* fix: Add http scheme support and removed the constraint from public keys table (#848)

* Add http scheme support and removed the contraint from publickeys table

Signed-off-by: mineme0110 <shailesh.patil@iohk.io>

* ran scalafmt

Signed-off-by: mineme0110 <shailesh.patil@iohk.io>

---------

Signed-off-by: mineme0110 <shailesh.patil@iohk.io>

---------

Signed-off-by: Shota Jolbordi <shota.jolbordi@iohk.io>
Signed-off-by: mineme0110 <shailesh.patil@iohk.io>
Co-authored-by: shotexa <shota.jolbordi@iohk.io>
Co-authored-by: Ezequiel Postan <ezequiel.postan@iohk.io>
Co-authored-by: Shailesh Patil <53746241+mineme0110@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants