Skip to content

cli: drop github.com/olekukonko/tablewriter dependency#3597

Merged
roman-khimov merged 1 commit intomasterfrom
drop-tablewriter
Sep 24, 2025
Merged

cli: drop github.com/olekukonko/tablewriter dependency#3597
roman-khimov merged 1 commit intomasterfrom
drop-tablewriter

Conversation

@roman-khimov
Copy link
Member

Yet another dependency for a single command is an overkill, especially given that we can have more concise representation without a lot of table borders. Having some rule numbers is useful as well when talking about long tables.

Before:

+--------------+--------+---------+---------+
|  OPERATION   | ACTION | FILTERS | TARGETS |
+--------------+--------+---------+---------+
|     PUT      |  DENY  |         | Others  |
+--------------+--------+---------+---------+
|    DELETE    |  DENY  |         | Others  |
+--------------+--------+---------+---------+
|    SEARCH    |  DENY  |         | Others  |
+--------------+--------+---------+---------+
|     GET      | ALLOW  |         | Others  |
+--------------+--------+---------+---------+
|     HEAD     | ALLOW  |         | Others  |
+--------------+--------+---------+---------+
|   GETRANGE   | ALLOW  |         | Others  |
+--------------+--------+---------+---------+
| GETRANGEHASH | ALLOW  |         | Others  |
+--------------+--------+---------+---------+

After:

No  Operation     Action  Filters  Targets
0   PUT           DENY             OTHERS
1   DELETE        DENY             OTHERS
2   SEARCH        DENY             OTHERS
3   GET           ALLOW            OTHERS
4   HEAD          ALLOW            OTHERS
5   GETRANGE      ALLOW            OTHERS
6   GETRANGEHASH  ALLOW            OTHERS

Before:

+--------------+--------+----------------------------------------------------------------------+---------+
|  OPERATION   | ACTION |                               FILTERS                                | TARGETS |
+--------------+--------+----------------------------------------------------------------------+---------+
|     GET      | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     HEAD     | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     PUT      | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|    DELETE    | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|    SEARCH    | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|   GETRANGE   | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
| GETRANGEHASH | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     GET      |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     HEAD     |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     PUT      |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|    DELETE    |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|    SEARCH    |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|   GETRANGE   |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
| GETRANGEHASH |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+

After:

No  Operation     Action  Filters                                                              Targets
0   GET           ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
1   HEAD          ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
2   PUT           ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
3   DELETE        ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
4   SEARCH        ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
5   GETRANGE      ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
6   GETRANGEHASH  ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
7   GET           DENY                                                                         USER
8   HEAD          DENY                                                                         USER
9   PUT           DENY                                                                         USER
10  DELETE        DENY                                                                         USER
11  SEARCH        DENY                                                                         USER
12  GETRANGE      DENY                                                                         USER
13  GETRANGEHASH  DENY                                                                         USER

Before:

+--------------+--------+---------+-------------------------------------------------------------+
|  OPERATION   | ACTION | FILTERS |                           TARGETS                           |
+--------------+--------+---------+-------------------------------------------------------------+
|     GET      | ALLOW  |         | Unknown: 353e66c017abf9e57afde3f6e4fe4ad7e59e62c69643985b99 |
|              |        |         |          3557078eefe80b82b455cc661b4d7e36aa367ef5355f566108 |
|              |        |         |          35035cbc7265fa97f74326bf0c3a605b843a7192906cd2386c |
|              |        |         |          3513679e6a41f16e6dbb9089eff012682f9cdc82d0b9e58391 |
|              |        |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     HEAD     | ALLOW  |         | Unknown: 353e66c017abf9e57afde3f6e4fe4ad7e59e62c69643985b99 |
|              |        |         |          3557078eefe80b82b455cc661b4d7e36aa367ef5355f566108 |
|              |        |         |          35035cbc7265fa97f74326bf0c3a605b843a7192906cd2386c |
|              |        |         |          3513679e6a41f16e6dbb9089eff012682f9cdc82d0b9e58391 |
|              |        |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     PUT      | ALLOW  |         | Unknown: 353e66c017abf9e57afde3f6e4fe4ad7e59e62c69643985b99 |
|              |        |         |          3557078eefe80b82b455cc661b4d7e36aa367ef5355f566108 |
|              |        |         |          35035cbc7265fa97f74326bf0c3a605b843a7192906cd2386c |
|              |        |         |          3513679e6a41f16e6dbb9089eff012682f9cdc82d0b9e58391 |
|              |        |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|    DELETE    | ALLOW  |         | Unknown: 353e66c017abf9e57afde3f6e4fe4ad7e59e62c69643985b99 |
|              |        |         |          3557078eefe80b82b455cc661b4d7e36aa367ef5355f566108 |
|              |        |         |          35035cbc7265fa97f74326bf0c3a605b843a7192906cd2386c |
|              |        |         |          3513679e6a41f16e6dbb9089eff012682f9cdc82d0b9e58391 |
|              |        |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     GET      |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     HEAD     |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     PUT      |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|    DELETE    |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|    SEARCH    |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|   GETRANGE   |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
| GETRANGEHASH |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+

After:

No  Operation     Action  Filters  Targets
0   GET           ALLOW            ROLE_UNSPECIFIED: NRbvAsPtvmcAwitDLvmKnqwf6NmuPAwcbz
                                                     NTr92cF2fS2MwirdkftKgV5PJjMS5zsvGF
                                                     NLDkJkTTQG5sVViRWfn6cp8QMzF1gvn42F
                                                     NMga9xjhQrLHsd5dXE37WMfTk12GNTSkf2
1   HEAD          ALLOW            ROLE_UNSPECIFIED: NRbvAsPtvmcAwitDLvmKnqwf6NmuPAwcbz
                                                     NTr92cF2fS2MwirdkftKgV5PJjMS5zsvGF
                                                     NLDkJkTTQG5sVViRWfn6cp8QMzF1gvn42F
                                                     NMga9xjhQrLHsd5dXE37WMfTk12GNTSkf2
2   PUT           ALLOW            ROLE_UNSPECIFIED: NRbvAsPtvmcAwitDLvmKnqwf6NmuPAwcbz
                                                     NTr92cF2fS2MwirdkftKgV5PJjMS5zsvGF
                                                     NLDkJkTTQG5sVViRWfn6cp8QMzF1gvn42F
                                                     NMga9xjhQrLHsd5dXE37WMfTk12GNTSkf2
3   DELETE        ALLOW            ROLE_UNSPECIFIED: NRbvAsPtvmcAwitDLvmKnqwf6NmuPAwcbz
                                                     NTr92cF2fS2MwirdkftKgV5PJjMS5zsvGF
                                                     NLDkJkTTQG5sVViRWfn6cp8QMzF1gvn42F
                                                     NMga9xjhQrLHsd5dXE37WMfTk12GNTSkf2
4   GET           DENY
5   HEAD          DENY
6   PUT           DENY
7   DELETE        DENY
8   SEARCH        DENY
9   GETRANGE      DENY
10  GETRANGEHASH  DENY

Yet another dependency for a single command is an overkill, especially given
that we can have more concise representation without a lot of table borders.
Having some rule numbers is useful as well when talking about long tables.

Before:

+--------------+--------+---------+---------+
|  OPERATION   | ACTION | FILTERS | TARGETS |
+--------------+--------+---------+---------+
|     PUT      |  DENY  |         | Others  |
+--------------+--------+---------+---------+
|    DELETE    |  DENY  |         | Others  |
+--------------+--------+---------+---------+
|    SEARCH    |  DENY  |         | Others  |
+--------------+--------+---------+---------+
|     GET      | ALLOW  |         | Others  |
+--------------+--------+---------+---------+
|     HEAD     | ALLOW  |         | Others  |
+--------------+--------+---------+---------+
|   GETRANGE   | ALLOW  |         | Others  |
+--------------+--------+---------+---------+
| GETRANGEHASH | ALLOW  |         | Others  |
+--------------+--------+---------+---------+

After:

No  Operation     Action  Filters  Targets
0   PUT           DENY             OTHERS
1   DELETE        DENY             OTHERS
2   SEARCH        DENY             OTHERS
3   GET           ALLOW            OTHERS
4   HEAD          ALLOW            OTHERS
5   GETRANGE      ALLOW            OTHERS
6   GETRANGEHASH  ALLOW            OTHERS

Before:

+--------------+--------+----------------------------------------------------------------------+---------+
|  OPERATION   | ACTION |                               FILTERS                                | TARGETS |
+--------------+--------+----------------------------------------------------------------------+---------+
|     GET      | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     HEAD     | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     PUT      | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|    DELETE    | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|    SEARCH    | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|   GETRANGE   | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
| GETRANGEHASH | ALLOW  | O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     GET      |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     HEAD     |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|     PUT      |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|    DELETE    |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|    SEARCH    |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
|   GETRANGE   |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+
| GETRANGEHASH |  DENY  |                                                                      |  User   |
+--------------+--------+----------------------------------------------------------------------+---------+

After:

No  Operation     Action  Filters                                                              Targets
0   GET           ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
1   HEAD          ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
2   PUT           ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
3   DELETE        ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
4   SEARCH        ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
5   GETRANGE      ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
6   GETRANGEHASH  ALLOW   O: $Object:objectID != Ad5rsumHrU4WiSJ7b6zvWwCtQ5Ye5xnNstNsTaXRAh7j  USER
7   GET           DENY                                                                         USER
8   HEAD          DENY                                                                         USER
9   PUT           DENY                                                                         USER
10  DELETE        DENY                                                                         USER
11  SEARCH        DENY                                                                         USER
12  GETRANGE      DENY                                                                         USER
13  GETRANGEHASH  DENY                                                                         USER

Before:

+--------------+--------+---------+-------------------------------------------------------------+
|  OPERATION   | ACTION | FILTERS |                           TARGETS                           |
+--------------+--------+---------+-------------------------------------------------------------+
|     GET      | ALLOW  |         | Unknown: 353e66c017abf9e57afde3f6e4fe4ad7e59e62c69643985b99 |
|              |        |         |          3557078eefe80b82b455cc661b4d7e36aa367ef5355f566108 |
|              |        |         |          35035cbc7265fa97f74326bf0c3a605b843a7192906cd2386c |
|              |        |         |          3513679e6a41f16e6dbb9089eff012682f9cdc82d0b9e58391 |
|              |        |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     HEAD     | ALLOW  |         | Unknown: 353e66c017abf9e57afde3f6e4fe4ad7e59e62c69643985b99 |
|              |        |         |          3557078eefe80b82b455cc661b4d7e36aa367ef5355f566108 |
|              |        |         |          35035cbc7265fa97f74326bf0c3a605b843a7192906cd2386c |
|              |        |         |          3513679e6a41f16e6dbb9089eff012682f9cdc82d0b9e58391 |
|              |        |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     PUT      | ALLOW  |         | Unknown: 353e66c017abf9e57afde3f6e4fe4ad7e59e62c69643985b99 |
|              |        |         |          3557078eefe80b82b455cc661b4d7e36aa367ef5355f566108 |
|              |        |         |          35035cbc7265fa97f74326bf0c3a605b843a7192906cd2386c |
|              |        |         |          3513679e6a41f16e6dbb9089eff012682f9cdc82d0b9e58391 |
|              |        |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|    DELETE    | ALLOW  |         | Unknown: 353e66c017abf9e57afde3f6e4fe4ad7e59e62c69643985b99 |
|              |        |         |          3557078eefe80b82b455cc661b4d7e36aa367ef5355f566108 |
|              |        |         |          35035cbc7265fa97f74326bf0c3a605b843a7192906cd2386c |
|              |        |         |          3513679e6a41f16e6dbb9089eff012682f9cdc82d0b9e58391 |
|              |        |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     GET      |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     HEAD     |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|     PUT      |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|    DELETE    |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|    SEARCH    |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
|   GETRANGE   |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+
| GETRANGEHASH |  DENY  |         |                                                             |
+--------------+--------+---------+-------------------------------------------------------------+

After:

No  Operation     Action  Filters  Targets
0   GET           ALLOW            ROLE_UNSPECIFIED: NRbvAsPtvmcAwitDLvmKnqwf6NmuPAwcbz
                                                     NTr92cF2fS2MwirdkftKgV5PJjMS5zsvGF
                                                     NLDkJkTTQG5sVViRWfn6cp8QMzF1gvn42F
                                                     NMga9xjhQrLHsd5dXE37WMfTk12GNTSkf2
1   HEAD          ALLOW            ROLE_UNSPECIFIED: NRbvAsPtvmcAwitDLvmKnqwf6NmuPAwcbz
                                                     NTr92cF2fS2MwirdkftKgV5PJjMS5zsvGF
                                                     NLDkJkTTQG5sVViRWfn6cp8QMzF1gvn42F
                                                     NMga9xjhQrLHsd5dXE37WMfTk12GNTSkf2
2   PUT           ALLOW            ROLE_UNSPECIFIED: NRbvAsPtvmcAwitDLvmKnqwf6NmuPAwcbz
                                                     NTr92cF2fS2MwirdkftKgV5PJjMS5zsvGF
                                                     NLDkJkTTQG5sVViRWfn6cp8QMzF1gvn42F
                                                     NMga9xjhQrLHsd5dXE37WMfTk12GNTSkf2
3   DELETE        ALLOW            ROLE_UNSPECIFIED: NRbvAsPtvmcAwitDLvmKnqwf6NmuPAwcbz
                                                     NTr92cF2fS2MwirdkftKgV5PJjMS5zsvGF
                                                     NLDkJkTTQG5sVViRWfn6cp8QMzF1gvn42F
                                                     NMga9xjhQrLHsd5dXE37WMfTk12GNTSkf2
4   GET           DENY
5   HEAD          DENY
6   PUT           DENY
7   DELETE        DENY
8   SEARCH        DENY
9   GETRANGE      DENY
10  GETRANGEHASH  DENY

Signed-off-by: Roman Khimov <roman@nspcc.ru>
@roman-khimov roman-khimov added enhancement Improving existing functionality neofs-cli NeoFS CLI application issues U4 Nothing urgent dependencies Dealing with project dependencies S3 Minimally significant I3 Minimal impact labels Sep 23, 2025
@codecov
Copy link

codecov bot commented Sep 23, 2025

Codecov Report

❌ Patch coverage is 0% with 63 lines in your changes missing coverage. Please review.
✅ Project coverage is 26.63%. Comparing base (5649c3a) to head (66dd1c6).
⚠️ Report is 16 commits behind head on master.

Files with missing lines Patch % Lines
cmd/neofs-cli/modules/util/acl.go 0.00% 63 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##           master    #3597   +/-   ##
=======================================
  Coverage   26.62%   26.63%           
=======================================
  Files         655      655           
  Lines       49695    49687    -8     
=======================================
+ Hits        13232    13234    +2     
+ Misses      35424    35415    -9     
+ Partials     1039     1038    -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@roman-khimov roman-khimov merged commit 332fd28 into master Sep 24, 2025
17 of 22 checks passed
@roman-khimov roman-khimov deleted the drop-tablewriter branch September 24, 2025 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dealing with project dependencies enhancement Improving existing functionality I3 Minimal impact neofs-cli NeoFS CLI application issues S3 Minimally significant U4 Nothing urgent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants