Ariel Shaqed (Scolnicov)
08/05/2021, 2:49 PMAriel Shaqed (Scolnicov)
08/10/2021, 3:53 PMAriel Shaqed (Scolnicov)
08/11/2021, 12:12 PMYoni Augarten
08/11/2021, 12:49 PMAriel Shaqed (Scolnicov)
08/12/2021, 2:46 PMAriel Shaqed (Scolnicov)
08/26/2021, 2:16 PMmishraprafful
08/27/2021, 9:15 AMYoni Augarten
08/29/2021, 9:23 AMBarak Amar
08/31/2021, 6:14 AM:smile
Itai Admi
09/02/2021, 9:59 AM<s3://bucket/prefix>
and <s3://bucket/prefix/>
. i.e. all objects stored in <s3://bucket/prefix/>
But what about cases when the user provides something strange like <s3://bucket/prefix///>
, should we also store it under <s3://bucket/prefix/>
, or is <s3://bucket/prefix///>
appropriate in this case..?Ariel Shaqed (Scolnicov)
09/09/2021, 7:36 AMfs:AttachRepositoryNamespace
on *
for any policy that allows fs:CreateRepository
". Three possibilities that I can see:
• Golang all the way! Pros: probably more readable, easier to get right. uses a good programming language. Cons: (very) poor ops experience: not part of the migration library that we use (or, indeed, any reasonable migration library).
• PostgreSQL jsonb
SQL whackiness. Write 100% safe pure-SQL code that updates the table. Pros: Perfect ops experience. Cons: The function itself will be tricky to write - it needs to handle IAM-style wildcards (*
, ?
) entirely correctly.
• PostgreSQL jsonb
SQL whackiness but less whacky. Write SQL code that works on every reasonable IAM policy, but fails if the policy uses special (unused!) characters in action names. Fail migration if such a policy is found (unlikely; such a policy includes an action that is unused!). Specifically, fail for actions that include SQL-style wildcards (_
. %
); there are no such actions in lakeFS (or anywhere in IAM, really).
Unless I hear strenuous objections -- hopefully accompanied by suggestions how to do it better -- I am going with the third option.
(Also posting to the PR, of course.)datadavd
09/26/2021, 9:03 PMAriel Shaqed (Scolnicov)
09/27/2021, 7:14 AMAriel Shaqed (Scolnicov)
09/27/2021, 9:10 AMItai Admi
10/10/2021, 12:01 PMdatadavd
10/12/2021, 10:44 AMAriel Shaqed (Scolnicov)
10/17/2021, 7:01 AMItai Admi
10/21/2021, 2:03 PMOz Katz
10/24/2021, 4:05 PMItai Admi
10/25/2021, 11:47 AMTal Sofer
10/26/2021, 6:49 AMapplication/octet-stream
, and I’m looking into using a react library that can calculate the diff for me, this library gets file contents as strings.
• Should I first read the contents and save it in-memory and then compare it?
• What is the right way to read from a stream in javascript?
@Barak Amar @Ariel Shaqed (Scolnicov) do you have useful tips to share?Tal Sofer
10/26/2021, 7:26 AMwebui % npm i react-diff-viewer
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: lakefs-ui@0.1.0
npm ERR! Found: react@17.0.2
npm ERR! node_modules/react
npm ERR! react@"^17.0.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^15.3.0 || ^16.0.0" from react-diff-viewer@3.1.1
npm ERR! node_modules/react-diff-viewer
npm ERR! react-diff-viewer@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
Is this safe to use the --legacy-peer-deps
flag to resolve this? reading about this make me suspect that it can lead to potential conflicts in the future. has anyone ran into a similar error?Barak Amar
10/26/2021, 11:07 AMrelease/0.53.0
based on the tag v0.53.0
in order to include the fixes to release the python client and re-tag it as the version.
If you see any issue please let me knowBarak Amar
10/26/2021, 2:24 PMTal Sofer
11/01/2021, 1:01 PMTal Sofer
11/07/2021, 8:30 AMasync get(repoId, ref, path, additionalHeaders) {
const query = qs({path});
const response = await apiRequest(`/repositories/${repoId}/refs/${ref}/objects?${query}`, {
method: 'GET',
headers: new Headers(additionalHeaders)
});
if (response.status !== 200 && response.status !== 206) {
throw new Error(await extractError(response));
}
return response.text()
}
The promise it returns reads the object text from a stream and then returning. This get operation receives a Range header as a parameter and I need to track the response “Content-Range” to determine whether the full object content is returned or only part of it.
The problem i’m facing is how to return this information while the get function must return a promise because i’m invoking it with useAPI?
Can I somehow wrap the response.text(), response.headers.get("Content-Range")
with a promise?
@Barak Amar @Guy Hardonag @Ariel Shaqed (Scolnicov) maybe you have an advice?Itai Admi
11/08/2021, 8:54 AM/usr/lib/hadoop/etc/hadoop/log4j.properties
file:
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
log4j.logger.io.lakefs=TRACE, A1
But I still can’t see the TRACE logs in my stdout. @Tal Sofer @Ariel Shaqed (Scolnicov) @Barak Amar how should I configure the logs?Ariel Shaqed (Scolnicov)
11/10/2021, 7:14 AMAriel Shaqed (Scolnicov)
11/10/2021, 9:31 AMstreamToS3
that hanldes its own HTTP request? What did v1 not offer in the interface that made us have to use our own client code?Ariel Shaqed (Scolnicov)
11/10/2021, 10:57 AMAriel Shaqed (Scolnicov)
11/10/2021, 10:57 AM