Support for Androidx.constraintlayout.motion

Please provide support for androidx.constraintlayout.motion.widget.MotionLayout

@aliusman
It was added in version 2.0
https://developer.android.com/reference/androidx/constraintlayout/motion/widget/MotionLayout
Version 2.0 is in google's preview.
https://maven.google.com/web/index.html
Previews are not bound. Please reopen issue, when it will be released.


"not a supported wheel on this platform" when installing local whl file

I'm trying to set up a basic numpy+scipy env on Windows using the builds from https://www.lfd.uci.edu/~gohlke/pythonlibs. I downloaded the latest wheels for numpy and scipy, then placed them in my project folder. Due to #1105 I currently have to use an absolute path and a "file://" URI to install from a local wheel. My Pipfile looks like this:
[[source]]

url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[packages]

"4dd5b0a" = {file = "file://d:/dev/branch_tests/issue-118/numpy-1.13.3+mkl-cp36-cp36m-win_amd64.whl", os_name = "=='nt'"}
"3a45660" = {file = "file://d:/dev/branch-tests/issue-118/scipy-1.0.0-cp36-cp36m-win-amd64.whl", os_name = "=='nt'"}
numpy = { version = "*", os_name = "=='linux'", index="pypi" }
scipy = { version = "*", os_name = "=='linux'", index="pypi" }
dask = "*"
distributed = "*"
dm-sonnet = "*"
fastparquet = "*"
pandas = "*"
pyodbc = "*"
scikit-learn = "*"
seaborn = "*"
sqlalchemy = "*"
tensorflow-gpu = ">= 1.4.0"

[dev-packages]

pytest = "*"
jupyter = "*"
nbdime = "*"
#pyreadline { version = "*", os_name = "=='nt'", index="pypi" }

[requires]

python_version = "3.6.3"

Describe your environment

Windows 10
Python version: 3.6.3 64-bit
Pipenv version: 8.3.2

Expected result
Numpy and scipy install successfully, plus all the other packages.
Actual result
Everything installs fine except for scipy, which fails with the message "not a supported wheel on this platform". If I run pipenv run pip install scipy-1.0.0-cp36-cp36m-win-amd64.whl then the package installs fine.
When I run with --verbose I get a couple of warnings which don't seem related:
"Config variable 'Py_DEBUG' is unset, Python ABI tag may be incorrect"
"Config variable 'WITH_PYMALLOC' is unset, Python ABI tag may be incorrect"
The contents of the temporary pipenv-*-requirements.txt files are:
file://d:/dev/branch-tests/issue-118/scipy-1.0.0-cp36-cp36m-win-amd64.whl; os_name =='nt'

and
file://d:/dev/branch_tests/issue-118/numpy-1.13.3+mkl-cp36-cp36m-win_amd64.whl; os_name =='nt'

Steps to replicate

(probably irrelevant) set PIPENV_VENV_IN_PROJECT=1
Download numpy-1.13.3+mkl-cp36-cp36m-win_amd64.whl and scipy-1.0.0-cp36-cp36m-win-amd64.whl
Update Pipfile to point to location of the downloaded wheels
pipenv install --verbose

OK, just tracked down the actual issue. pipenv seems to be generating a slightly incorrect entry to add to my Pipfile. I added the entry using pipenv.exe install file://D:/dev/branch_tests/issue-118/scipy-1.0.0-cp36-cp36m-win_amd64.whl. It then generated the entry as above which has the suffix "win-amd64" instead of the correct suffix "win_amd64". I can manually edit Pipfile as a workaround for now, but this does seem to be a minor bug.

Solution: install pipenv with python 3.

I did:
 >whereis pipenv
C:\Python36-x64\Scripts\pipenv.exe

TL;DR pipenv will install a .whl from file:// but the Pipfile entry gets mangled. Details above.


click.BOOL type defaults to None for flag options.

[click v6.7]: The following has undesired(?) behavior:
@click.option('--overwrite', default=False, is_flag=True, type=click.BOOL)
results in overwrite=None if flag is missing (namely, --overwrite  is not specified in CLI).
dropping type=click.BOOL:
@click.option('--overwrite', default=False, is_flag=True)
results in overwrite=False, which is the expected behavior.
This results in having to check for the default as both False or None, or simply not(flag). Manageable, but not great. Is this the desired behavior here?

It doesn't make sense to set both is_flag and type=bool. is_flag means "doesn't take user input, switch on presence. typeis for converting user input, so--overwrite yor--overwrite n`.
Admittedly, that interaction between the two is a bit weird, but your second example is correct.

@davidism , got it, thanks; closing.


Log enabled features detected in deployment pipeline

Issue #, if available: 66
Description of changes:
Temporarily add line to buildspec of last action in final stage of deployment pipeline to help diagnose root cause.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hey @mcalligator thank you fro this. I've responded in the referenced issue, there is a fix coming for the problem you're facing. I still think this is a useful log to have, so happy to upstream it, as we are logging other vars above and this continues that.

OK that's great @philipws; thanks for letting me know.


Crash with "refId not found: " + refId

Comes from Schema.hx:424.
Happens during inconsistent state when reconnecting to the room.
Happens on nodejs, RN and sys environments, and frequently reproduced when client leaves the room and tries to join again some seconds later, without using reconnect flow.

Hi @serjek, thanks for reporting!
This sounds bad, can you share briefly how was your schema state when this happened? (this.state.toJSON() from server-side)

Sure, next time it happens. Perhaps it would be safer to just post a warning instead of crashing the whole app? ;)

Thanks! This error is very important tho, it shouldn't ever happen, that means the client-side would have inconsistent state because of decoding issues

Did a quick research: it happens during room.leave(true) before room.connection.onClose handler is triggered. Perhaps there is a state update happens at this time and it clashes with room state being emptied.
I recall I got those errors quite frequent in RN but didn't give them priority because they crash just a closure (that is already due to dispose) and did not break anything. This happened only when I leave the room.

Your research was correct! 🙈 very silly mistake on my end, the .teardown() call was immediately removing all cached references (refId's) from the serializer, and the error happened when a patch arrived between requesting to close the connection while having all local refId's cleared out.
Now the teardown happens only after connection.onClose
Thanks for your patience and for reporting @serjek! Version 0.14.8 is available with the fix!


Flagged security items

I am in the process of hooking up semgrep to run in CI for additional semantic checks of our code base.
Think of it as a "smart lint" for multiple languages.
The following are the security violations it has flagged for the entire automate code base.
Need to know if these are things we know and have deemed OK, or if they are things that need to be fixed.
Note there are two runs here, one for ruleset r2c and one for ruleset r2c-ci. (There is some overlap, but I have deleted the overlap here.) While there are a couple dozen instances flagged, many of them are the same flagged condition just in different files, so an answer for one will likely answer several.
Here are the unique conditions being reported between the two rulesets:

Detected MD5 hash algorithm which is considered insecure. MD5 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead.
Found an HTTP server without TLS. Use http.ListenAndServeTLS instead. See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.
String-formatted SQL query detected. This could lead to SQL injection if the string is not sanitized properly. Audit this call to ensure the SQL is not manipulatable by external data.
Potential DOS via zip bomb attack. You cau use io.CopyN() to prevent it. Refer to https://bomb.codes/ to learn more about this attack and other ways to mitigate it.
Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.

Ruleset r2c
$ semgrep --error --config https://semgrep.dev/p/r2c --exclude=third_party

api/config/cs_nginx/config_request.go
severity:warning rule:go.lang.security.audit.crypto.use_of_weak_crypto.use-of-md5: Detected MD5 hash algorithm which is considered insecure. MD5 is not
collision resistant and is therefore not suitable as a cryptographic
signature. Use SHA256 or SHA3 instead.

177:     md5sum := md5.Sum(data)

components/authn-service/server/server.go
severity:warning rule:go.lang.security.audit.net.use-tls.use-tls: Found an HTTP server without TLS. Use http.ListenAndServeTLS instead.
See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.
108:     return http.ListenAndServe(http1Endpoint, httpmux)
autofix: http.ListenAndServeTLS(http1Endpoint, certFile, keyFile, httpmux)

components/automate-deployment/pkg/server/server.go
severity:warning rule:go.lang.security.audit.crypto.use_of_weak_crypto.use-of-sha1: Detected SHA1 hash algorithm which is considered insecure. SHA1 is not
collision resistant and is therefore not suitable as a cryptographic
signature. Use SHA256 or SHA3 instead.

747:     configSHA1 := sha1.Sum([]byte(overrideConfig.String()))

components/compliance-service/compliance.go
severity:warning rule:go.lang.security.audit.net.use-tls.use-tls: Found an HTTP server without TLS. Use http.ListenAndServeTLS instead.
See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.
649:     return http.ListenAndServe(serveAddress, r)
autofix: http.ListenAndServeTLS(serveAddress, certFile, keyFile, r)

components/ingest-service/rest/rest.go
severity:warning rule:go.lang.security.audit.net.use-tls.use-tls: Found an HTTP server without TLS. Use http.ListenAndServeTLS instead.
See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.
52:      return http.ListenAndServe(uri, mux)
autofix: http.ListenAndServeTLS(uri, certFile, keyFile, mux)

integration/helpers/requestbin/requestbin.go
severity:warning rule:go.lang.security.audit.net.use-tls.use-tls: Found an HTTP server without TLS. Use http.ListenAndServeTLS instead.
See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.
87:      http.ListenAndServe(fmt.Sprintf(":%d", port), nil)
autofix: http.ListenAndServeTLS(fmt.Sprintf(":%d"port), certFile, keyFile, nil)

lib/cereal/postgres/postgres_test.go
severity:warning rule:go.lang.security.audit.database.string-formatted-query.string-formatted-query: String-formatted SQL query detected. This could lead to SQL injection if
the string is not sanitized properly. Audit this call to ensure the
SQL is not manipulatable by external data.

1345:            rows := b.db.QueryRow(fmt.Sprintf("SELECT count(*) from %s;", table))

lib/platform/pg/exporter_integration_test.go
severity:warning rule:go.lang.security.audit.database.string-formatted-query.string-formatted-query: String-formatted SQL query detected. This could lead to SQL injection if
the string is not sanitized properly. Audit this call to ensure the
SQL is not manipulatable by external data.

439:     _, err = db.Exec(fmt.Sprintf("DROP ROLE \"%s\"", name))

Ruleset r2c-ci
$ semgrep --error --config https://semgrep.dev/p/r2c-ci --exclude=third_party

components/authz-service/engine/opa/policy.bindata.go
severity:warning rule:go.lang.security.decompression_bomb.potential-dos-via-decompression-bomb: Potential DOS via zip bomb attack. You cau use `io.CopyN()` to prevent it. Refer to https://bomb.codes/ to learn more about this attack and other ways to mitigate it.
23:      gz, err := gzip.NewReader(bytes.NewBuffer(data))
24:   if err != nil {
25:           return nil, fmt.Errorf("Read %q: %v", name, err)
26:   }
27:
28:   var buf bytes.Buffer
29:   _, err = io.Copy(&buf, gz)

components/automate-deployment/pkg/airgap/bundle_creator.go
severity:warning rule:go.lang.security.decompression_bomb.potential-dos-via-decompression-bomb: Potential DOS via zip bomb attack. You cau use `io.CopyN()` to prevent it. Refer to https://bomb.codes/ to learn more about this attack and other ways to mitigate it.
103:     gzipReader, err := gzip.NewReader(resp.Body)
104:
105:  if err != nil {
106:          return errors.Wrap(err, "Failed to download hab binary. Could not open gzip")
107:  }
108:
109:  tarReader := tar.NewReader(gzipReader)
110:  for {
111:          hdr, err := tarReader.Next()
112:          if err == io.EOF {
113:                  break
114:          }
115:
116:          if err != nil {
117:                  return errors.Wrap(err, "Failed to unpack archive")
118:          }
119:
120:          if hdr.Typeflag == tar.TypeReg {
121:                  if hdr.FileInfo().Name() == "hab" {
122:                          _, err := io.Copy(w, tarReader)
123:                          if err != nil {
124:                                  return errors.Wrap(err, "Could not untar hab binary tarball")
125:                          }
126:                          return nil
127:                  }
128:          }
129:  }
109:     tarReader := tar.NewReader(gzipReader)
110:  for {
111:          hdr, err := tarReader.Next()
112:          if err == io.EOF {
113:                  break
114:          }
115:
116:          if err != nil {
117:                  return errors.Wrap(err, "Failed to unpack archive")
118:          }
119:
120:          if hdr.Typeflag == tar.TypeReg {
121:                  if hdr.FileInfo().Name() == "hab" {
122:                          _, err := io.Copy(w, tarReader)
123:                          if err != nil {
124:                                  return errors.Wrap(err, "Could not untar hab binary tarball")
125:                          }
126:                          return nil
127:                  }
128:          }
129:  }

components/automate-deployment/pkg/backup/artifact_repo.go
severity:warning rule:go.lang.security.decompression_bomb.potential-dos-via-decompression-bomb: Potential DOS via zip bomb attack. You cau use `io.CopyN()` to prevent it. Refer to https://bomb.codes/ to learn more about this attack and other ways to mitigate it.
632:     g, err := gzip.NewReader(reader)
633:  if err != nil {
634:          logClose(tmpFile, "failed to close temp file")
635:          return nil, "", err
636:  }
637:  defer logClose(g, "failed to close gzip reader")
638:
639:  if _, err := io.Copy(tmpFile, g); err != nil {
640:          logClose(tmpFile, "failed to close temp file")
641:          return nil, "", err
642:  }

components/automate-gateway/pkg/nullbackend/backend.go
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
37:      s := grpc.NewServer()

components/cereal-service/cmd/cereal-service/cmd.go
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
149:             grpcServer = grpc.NewServer(grpcServerOpts...)

components/cereal-service/integration/domain_test.go
severity:error rule:go.grpc.security.grpc-client-insecure-connection.grpc-client-insecure-connection: Found an insecure gRPC connection. This creates a connection without encryption to a gRPC server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
42:      conn, err := grpc.Dial(g.URL, grpc.WithInsecure(), grpc.WithMaxMsgSize(64*1024*1024))
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
34:      grpcServer := grpc.NewServer()

components/cereal-service/integration/integration_test.go
severity:error rule:go.grpc.security.grpc-client-insecure-connection.grpc-client-insecure-connection: Found an insecure gRPC connection. This creates a connection without encryption to a gRPC server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
87:      conn, err := grpc.Dial(g.URL, grpc.WithInsecure(), grpc.WithMaxMsgSize(64*1024*1024))
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
78:      grpcServer := grpc.NewServer()

components/compliance-service/integration_test/reporting_server_export_test.go
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
38:      s := grpc.NewServer()

components/compliance-service/reporting/util/zip.go
severity:warning rule:go.lang.security.decompression_bomb.potential-dos-via-decompression-bomb: Potential DOS via zip bomb attack. You cau use `io.CopyN()` to prevent it. Refer to https://bomb.codes/ to learn more about this attack and other ways to mitigate it.
21:      reader, err := zip.OpenReader(zipPath)
22:   if err != nil {
23:           return err
24:   }
25:   defer reader.Close() // nolint: errcheck
26:
27:   for _, curFile := range reader.File {
28:           rc, err := curFile.Open()
29:           if err != nil {
30:                   return err
31:           }
32:           dstPath, err := constructFilepath(extractPath, curFile.Name)
33:           if err != nil {
34:                   return err
35:           }
36:           mode := curFile.FileInfo().Mode()
37:           if mode.IsDir() {
38:                   err = os.MkdirAll(dstPath, os.ModePerm)
39:                   if err != nil {
40:                           return err
41:                   }
42:           } else if mode.IsRegular() { // exclusive: dirs are not regular
43:                   f, err := os.Create(dstPath)
44:                   if err != nil {
45:                           return err
46:                   }
47:                   _, err = io.Copy(f, rc)
48:                   cerr := rc.Close()
49:                   ferr := f.Close()
50:                   if err != nil {
51:                           return err
52:                   }
53:                   if cerr != nil {
54:                           return cerr
55:                   }
56:                   if ferr != nil {
57:                           return ferr
58:                   }
59:           }
60:           // ignore everything that is not dir or regular
61:   }

components/config-mgmt-service/integration_test/node_export_test.go
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
36:      s := grpc.NewServer()
111:     s := grpc.NewServer()
582:     s := grpc.NewServer()
701:     s := grpc.NewServer()
777:     s := grpc.NewServer()

components/config-mgmt-service/integration_test/report_export_test.go
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
407:     s := grpc.NewServer()

components/event-feed-service/pkg/integration_test/event_export_test.go
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
630:     s := grpc.NewServer()

lib/grpc/health/health_test.go
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
21:      s := grpc.NewServer()

lib/grpc/secureconn/factory.go
severity:error rule:go.grpc.security.grpc-server-insecure-connection.grpc-server-insecure-connection: Found an insecure gRPC connection. This allows for a connection without encryption to this server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
88:      s := grpc.NewServer(append(f.ServerOptions(), opt...)...)

tools/cereal-scaffold/main.go
severity:error rule:go.grpc.security.grpc-client-insecure-connection.grpc-client-insecure-connection: Found an insecure gRPC connection. This creates a connection without encryption to a gRPC server. A malicious attacker could tamper with the gRPC message, which could compromise the machine.
237:             conn, err := grpc.Dial(opts.Endpoint, grpc.WithInsecure(), grpc.WithMaxMsgSize(64*1024*1024))

Item 3 (String-formatted SQL query detected): all occurrences listed are safe to ignore because they are in test files, not production code.
Need folks to evaluate 1, 2, 4, and 5 in a similar fashion. Thanks!

For (1) it appears that the usage of MD5 is to calculate the value of the Content-MD5 header returned by Chef Server's required_recipe endpoint. I don't think there is much we can do about that without changing chef-client. It is also a fairly standard header so I think we are OK. I believe it is just used for determining if cached content is already up to date.

For (2), we should fix these if we can in the non-test/dev cases.  I've left some commentary:
components/authn-service/server/server.go
severity:warning rule:go.lang.security.audit.net.use-tls.use-tls: Found an HTTP server without TLS. Use http.ListenAndServeTLS instead.
See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.
108:     return http.ListenAndServe(http1Endpoint, httpmux)
autofix: http.ListenAndServeTLS(http1Endpoint, certFile, keyFile, httpmux)

We should fix this. I'm suprised it is here as I've brought it up
before and thought I opened a PR to fix it.
components/compliance-service/compliance.go
severity:warning rule:go.lang.security.audit.net.use-tls.use-tls: Found an HTTP server without TLS. Use http.ListenAndServeTLS instead.
See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.
649:     return http.ListenAndServe(serveAddress, r)
autofix: http.ListenAndServeTLS(serveAddress, certFile, keyFile, r)

This is hard-coded to localhost as is likely a bit less of a priority. (it is basically an IPC mechanism for the inspec scans we launch)
components/ingest-service/rest/rest.go
severity:warning rule:go.lang.security.audit.net.use-tls.use-tls: Found an HTTP server without TLS. Use http.ListenAndServeTLS instead.
See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.
52:      return http.ListenAndServe(uri, mux)
autofix: http.ListenAndServeTLS(uri, certFile, keyFile, mux)

I believe this is development-mode only.
integration/helpers/requestbin/requestbin.go
severity:warning rule:go.lang.security.audit.net.use-tls.use-tls: Found an HTTP server without TLS. Use http.ListenAndServeTLS instead.
See https://golang.org/pkg/net/http/#ListenAndServeTLS for more information.
87:      http.ListenAndServe(fmt.Sprintf(":%d", port), nil)
autofix: http.ListenAndServeTLS(fmt.Sprintf(":%d"port), certFile, keyFile, nil)

Test code, should be fine.

Regarding (4) I have not looked at how hard the mitigation would be, but if someone looks into that and chooses to fix it, the finding I would be most concerned about is in compliance.

rule:go.lang.security.decompression_bomb.potential-dos-via-decompression-bomb in components/compliance-service/reporting/util/zip.go is something we should address. It's only exposed to authenticated users that are authorized to upload inspec profiles. Anyways, I believe people know that uploading inspec profiles is a huge deal you shouldn't allow anyone untrusted.

Given the size of the A2 codebase, could we skip test files? It would help finding the needles in the haystack.

Yes, we can skip test files in the scan, @srenatus . I agree that is better so I will do that.


Teams app on chrome browser unable to login for custom application

Core Library
MSAL.js (@azure/msal-browser)
Core Library Version
2.22.1
Wrapper Library
MSAL React (@azure/msal-react)
Wrapper Library Version
1.3.1
Public or Confidential Client?
Public
Description
We have developed a Teams application using reactjs. We are using @microsoft/teams-js to authenticate user with our b2c policy in a Popup window.
microsoftTeams.authentication.authenticate({url: window.location.origin + '/authstart?loginHint=emaild&isTA=true', successCB, failureCB})
The authflow executes successfully and the popup gets closed, once it comes back to parent browser msal account evaluates to false.
const { instance, accounts } = useMsal();
instance.setActiveAccount(account);
const thereAreAccounts = !!accounts.length || !!instance.getAllAccounts().length;
 // evaluates to false
The flow was working absolutely fine with the older version of chrome, it occurred after Oct 2023 chrome(version >116) update.
A separate issue is logged for 'microsoft-teams-library-js' https://github.com/OfficeDev/microsoft-teams-library-js/issues/1943, but the issue is not with TeamsJS library. The app is working fine in both Teams classic and New version.
Error Message
TeamsAppAuthProvider.tsx:56 Uncaught TypeError: Cannot read properties of undefined (reading 'payload')
at Object.successCallback (TeamsAppAuthProvider.tsx:56:34)
at c (MicrosoftTeams.min.js:1:22970)
at n.callHandler (MicrosoftTeams.min.js:1:9482)
at MicrosoftTeams.min.js:1:3504
at u (MicrosoftTeams.min.js:1:2364)
at l.messageListener (MicrosoftTeams.min.js:1:4338)
Login flow :: See Below
Teams App -> Popup(login with cred successful) ->Teams App(account is still null) -> Popup(User is already authenticated, returns without data) -> Teams App(Error Occurred)
MSAL Logs
Unable to capture since the popup closes immediately.
Network Trace (Preferrably Fiddler)

[ ] Sent
[ ] Pending

MSAL Configuration
{
    "auth": {
        "clientId": "3aa9d188-0aaa-4fe6-a652-6ce8a0e80bbc",
        "authority": "https://vertexb2ckf.b2clogin.com/vertexb2ckf.onmicrosoft.com/B2C_1A_SIGNUP_SIGNIN_IC2BQAUE",
        "knownAuthorities": [
            "vertexb2ckf.onmicrosoft.com",
            "vertexb2ckf.b2clogin.com"
        ],
        "cloudDiscoveryMetadata": "",
        "authorityMetadata": {
            "authorization_endpoint": "https://vertexb2ckf.b2clogin.com/vertexb2ckf.onmicrosoft.com/B2C_1A_SIGNUP_SIGNIN_IC2BQAUE/oauth2/v2.0/authorize",
            "claims_supported": ["name","given_name","family_name","sub","idp","tid","client_email","organization_id","employee_number","employee_id","is_ic2_executive","idp_access_token","group_ids","group_names","iss","iat","exp","aud","acr","nonce","auth_time"],
            "end_session_endpoint": "https://vertexb2ckf.b2clogin.com/vertexb2ckf.onmicrosoft.com/B2C_1A_SIGNUP_SIGNIN_IC2BQAUE/oauth2/v2.0/logout",
            "id_token_signing_alg_values_supported": [
                "RS256"
            ],
            "issuer": "https://vertexb2ckf.b2clogin.com/eeba91ff-5b83-4e85-9213-594b7ae398b0/v2.0/",
            "jwks_uri": "https://vertexb2ckf.b2clogin.com/vertexb2ckf.onmicrosoft.com/B2C_1A_SIGNUP_SIGNIN_IC2BQAUE/discovery/v2.0/keys",
            "response_modes_supported": [
                "query",
                "fragment",
                "form_post"
            ],
            "response_types_supported": [
                "code",
                "code id_token",
                "code token",
                "code id_token token",
                "id_token",
                "id_token token",
                "token",
                "token id_token"
            ],
            "scopes_supported": [
                "openid"
            ],
            "subject_types_supported": [
                "pairwise"
            ],
            "token_endpoint": "https://vertexb2ckf.b2clogin.com/vertexb2ckf.onmicrosoft.com/B2C_1A_SIGNUP_SIGNIN_IC2BQAUE/oauth2/v2.0/token",
            "token_endpoint_auth_methods_supported": [
                "client_secret_post",
                "client_secret_basic"
            ]
        },
        "redirectUri": "https://kf-ic2b-qa-ee.azureedge.net/authend",
        "postLogoutRedirectUri": "https://kf-ic2b-qa-ee.azureedge.net",
        "navigateToLoginRequestUrl": false,
        "clientCapabilities": [],
        "protocolMode": "AAD",
        "azureCloudOptions": {
            "azureCloudInstance": 0,
            "tenant": ""
        },
        "skipAuthorityMetadataCache": false
    },
    "cache": {
        "cacheLocation": "localStorage",
        "temporaryCacheLocation": "sessionStorage",
        "storeAuthStateInCookie": false,
        "secureCookies": false,
        "cacheMigrationEnabled": true,
        "claimsBasedCachingEnabled": true
    },
    "system": {
        "tokenRenewalOffsetSeconds": 300,
        "preventCorsPreflight": false,
        "loggerOptions": {
            "logLevel": 2,
            "piiLoggingEnabled": false
        },
        "networkClient": {},
        "navigationClient": {},
        "loadFrameTimeout": 0,
        "windowHashTimeout": 60000,
        "iframeHashTimeout": 6000,
        "navigateFrameWait": 0,
        "redirectNavigationTimeout": 30000,
        "asyncPopups": false,
        "allowRedirectInIframe": false,
        "allowNativeBroker": false,
        "nativeBrokerHandshakeTimeout": 2000,
        "pollIntervalMilliseconds": 30,
        "cryptoOptions": {
            "useMsrCrypto": false
        }
    },
    "telemetry": {
        "application": {
            "appName": "",
            "appVersion": ""
        }
    }
}

Relevant Code Snippets
const authenticate = useCallback(
    (email?: string) => {
      microsoftTeams.authentication.authenticate({
        url: window.location.origin + `/authstart?loginHint=${email}&isTA=true`,
        successCallback: (event: any) => {
          // Delete payload as success callback was called
          localStorage.removeItem(storagePersistedKey.MSALPayload);
          const payload = event!.payload!;
          const authTokenData = onGetAuthTokenSuccess(
            payload,
            instance,
            true,
            false
          );
          if (authTokenData.is_ic2_executive) {
            setAuthStatus({ status: AuthenticationStatus.Failed });
            setErrorMessage(CustomLoginError.executiveUserNotAllowed);
            return;
          }
          setAuthStatus({
            status: AuthenticationStatus.Succeeded,
            token: payload.idToken,
          });
          setMGTExplicitSignIn(payload.idToken);
        },
        failureCallback: (reason?: string) => {
          // Handling payload in here until issue https://github.com/OfficeDev/microsoft-teams-library-js/issues/629 be fixed
          const payloadFromMsal: any = localStorage.getItem(
            storagePersistedKey.MSALPayload
          );
          if (payloadFromMsal) {
            const paylodFromMsalParsed = JSON.parse(payloadFromMsal);

            localStorage.setItem(
              storagePersistedKey.MSALIDToken,
              paylodFromMsalParsed.idToken
            );
            setAuthStatus({
              status: AuthenticationStatus.Succeeded,
              token: paylodFromMsalParsed.idToken,
            });
            setMGTExplicitSignIn(paylodFromMsalParsed.idToken);
            const account = paylodFromMsalParsed.account;
            instance.setActiveAccount(account);
          } else {
            setAuthStatus({ status: AuthenticationStatus.Failed });
            setErrorMessage(reason ?? ErrorMessage.commonError);
          }
        },
      });
    },
    [instance]
  );

Reproduction Steps

Open any TeamsApp in chrome 116+ version with custom sso
Login within popup window
Observe the console log

Expected Behavior
The Parent browser should receive the msal accounts, or the popup window should share the same msalInstance with parent browser. Seems the popup window run in a custom domain where the application is deployed and the app runs in Teams domain.
Identity Provider
Azure B2C Custom Policy
Browsers Affected (Select all that apply)
Chrome, Firefox, Edge, Safari
Regression
still works with chrome <116 version
Source
External (Customer)

@kundan-kf Teams chrome browser called Teams on web still is managed by Teams Authentication team. I would like them to investigate this first before MSAL JS debugs it. Can we have them check that this is handled well in Teams web?


Docker support?

Is there any Docker image available?

Hi @mariushosting, thanks for asking! This project is essentially a static HTML page with a JS bundle. Could you clarify what the Docker image usecase would be?

Docker would make it easier to deploy and isolate. Also for the lazy like me, I don't have to setup anything additional to run it.
Thank you for your work


$myModel->find(string "value-of-my-primary-key")

As comment for find method states:

Fetches the row of database from $this->table with a primary key
matching $id.

what is not true in case when primary key is a string.
In this case all my rows are returned without any filters instead of desired one.

this should can be closed as #1189 merged?

yeap.


include compliance status when a plcset contains disabled policies

Signed-off-by: Will Kutler<EMAIL_ADDRESS>https://github.com/stolostron/backlog/issues/20910

/retest


Errors passed through the Read trait of blocking Response forget that they are timeouts

When I pick a server that responds with 200 OK fast enough, but the request times out during receiving the data (either the file is big, or it just doesn't send the body), this'll error with timeout:
let mut response = request.send()?;
let mut buffer = Vec::new();
response.read_to_end(&mut buffer)?;

This is the error that I get (debug printed):
Custom { kind: Other, error: reqwest::Error { kind: Body, source: TimedOut }

The issue is, the ErrorKind is not TimedOut, so it's not easy to figure out it was a timeout. Furthermore, it seems iterating through the causes and trying to downcast_ref to reqwest::Error does not produce the 2nd layer (no idea why or what the actual type returned is), so one can't try to find it and call is_timeout on it. The TimedOut is not public. So there seems to be only the option of matching strings to figure out the cause was timeout.
Is it possible to somehow propagate the cause into the ErrorKind?

Oh, this is unfortunate. It's a product of io::Error's custom weirdness. The custom error "becomes" the io::Error, even though the type is still io::Error. You can access it with get_ref(). If you call io::Error::source(), it returns the source of get_ref().

:facepalm: That's… weird indeed. So now I know that I can actually get back to the reqwest Error that way.
But still, would it make sense to set the ErrorKind to TimedOut in such case? Should I try writing a PR?


Removing "spec" as the last_spec in RunAllSpecs

Forcing rspec spec in RunAllSpecs overrides --default-path in the local .rspec config, and "spec" is RSpec's default anyway if the default path is not explicitly set.

Ooh! I didn't know about --default-path. +1 from me
Does it still make sense to have let s:default_command = "rspec {spec}" in that case - so that spec basically functions as a placeholder, or is that confusing for someone reading the code because it suggests that the command which will actually be run is an explicit rspec spec?

Hmm wasn't confusing to me, I'd probably leave as is?

Merged. Thanks for the contribution @hiattp!


Incorrectly highlighted example code

The code on Register.cshtml.cs is incorrectly highlighted (missing) under Update the Account/Register.cshtml page.
The code
user.Name = Input.Name;
user.DOB = Input.DOB;

should be highlighted to show what was changed from the default sample.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 431df4fc-4168-cc8f-d053-9b264d2971c1
Version Independent ID: cd157d04-d596-83fa-6edb-24d52193eb34
Content: Add, download, and delete user data to Identity in an ASP.NET Core project
Content Source: aspnetcore/security/authentication/add-user-data.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Thanks for reporting this. Any chance you could PR this? At the top right of the article, select the Edit pen icon:

Select the pen icon again. Save.

Also a screen shot would help to quickly identify the problem.

Here is the PR to correct the highlighting in section Update the Account/Register.cshtml page

Fixed by https://github.com/dotnet/AspNetCore.Docs/pull/27417


Add torokmark/assert.sh

Assertion lib for shell script users

Closing as the added resource now 404's


throw error or warn when attempting to set property on immutable object

const obj = Immutable({ a: 1 })
obj.a = 2
obj.a // => 1

This is desired, of course, but goes by completely unnoticed - even in dev.  What do you think about adding a set trap or perhaps using a different implementation of Object.freeze in development that would warn when attempting to set directly?

I like the idea, but concerned about performance in production.
Could dev have a temporary wrapper / Proxy

Just a thought. If it's possible to wrap your code in a "use strict" context you can get the behavior you want as attempting to mutate a frozen object already causes an error in strict mode:
> !function() { "use strict"; Object.freeze({x: 1, y: 2}).x = 3; }()
VM286:1 Uncaught TypeError: Cannot assign to read only property 'x' of object '#<Object>'

I'll close this since strict mode fixes the issue and throws an error.


[release-1.19] prevent running crdclient twice, this will cause crdClient.queue stop…

Manual cherrypick required.
#47399 failed to apply on top of branch "release-1.19":
Applying: prevent running crdclient twice, this will cause crdClient.queue stopped when leader lost
Applying: update
Using index info to reconstruct a base tree...
M	pilot/pkg/config/kube/crdclient/client.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/config/kube/crdclient/client.go
CONFLICT (content): Merge conflict in pilot/pkg/config/kube/crdclient/client.go
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0002 update
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

fixed by https://github.com/istio/istio/pull/47597


[ci] GithubActions: Convert the appveyor pipeline to Github Actions

Ideally this would be tested on your own fork before opening the PR :-)

no worries. if you get it working, please reuse this PR if you can :-)


Discovery of Android devices from Windows - without Google Files or Activity Intent

Hello @grishka,
Kudos on the amazing solution for content sharing between MacOS and Android!
I am attempting to build a similar solution for Windows, but I need a little help in sending the signal from Windows to make the nearby Android devices visible. I don't want to use the Google Files app or trigger the actvity-intent (com.google.android.gms.RECEIVE_NEARBY).
Can you help me understand how I can send this signal? Any sample code on how the message can be constructed would be very helpful!

Thank you!

You need to advertise a BLE service with these parameters:

Service UUID = fe 2c
Service data = fc 12 8e 01 42 00 00 00 00 00 00 00 00 00 [10 random bytes]

If you're using win32 APIs, this looks like a good starting point (it's unreasonably messy though).
For UWP/WinRT, use this.
(sorry, I'm too lazy to set up Visual Studio on my VM to provide you with a minimal working code example for this specific case)

Thank you, @grishka!
I have broadcasted a BLE service as you have suggested, but the Android device is still not discoverable until I fire the Activity Intent or use an older version of the Google Files app and tap "receive".
Can you please tell me if I am missing something here? Thank you!
`    public sealed class BLEAdvertisementService
{
private BluetoothLEAdvertisementWatcher watcher;
private BluetoothLEAdvertisementPublisher publisher;
    // Service UUID: fe2c
    private const string ServiceUuid = "0000fe2c-0000-1000-8000-00805f9b34fb";

    // Service Data: fc 12 8e 01 42 00 00 00 00 00 00 00 00 00 [10 random bytes]
    private readonly byte[] serviceData = { 0xFC, 0x12, 0x8E, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

    public void StartAdvertising()
    {
        publisher = new BluetoothLEAdvertisementPublisher();

        // Create the service data section of the advertisement
        var serviceDataSection = new BluetoothLEAdvertisementDataSection();
        var writer = new DataWriter();
        writer.WriteBytes(serviceData);
        serviceDataSection.Data = writer.DetachBuffer();

        // Add the service data section to the advertisement
        publisher.Advertisement.DataSections.Add(serviceDataSection);

        // Set the UUIDs of the services being advertised
        publisher.Advertisement.ServiceUuids.Add(new Guid(ServiceUuid));

        // Start advertising
        publisher.Start();
    }

    public void StopAdvertising()
    {
        publisher?.Stop();
        publisher = null;
    }
}`

You need to append 10 random bytes to the service data.

Excuse my naivety here. Can you please explain what the service data should be? Is it any random 10 bytes? Or should I append 10 random bytes to the service data that you have already given - fc 12 8e 01 42 00 00 00 00 00 00 00 00 00

Yes, the the one I already given

Thank you, @grishka! Can you please tell me if I can run this BLE service as a separate process (independent of my actual UWP app) for now? I have a few build issues with my UWP app as of now. I want to quickly establish if the whole approach works for me.
And in case you have a publicly available Windows equivalent of this project of yours, it would be a great inspiration to me!

You can. It doesn't matter which process you run it in, that doesn't change the broadcasts that go out. I was able to make them with "nRF Connect" Android app, for example. That app is also how I determined the format.

Hello @grishka,
Despite broadcasting the said signal, my Android device is still not visible without using an older version of the Google Files app and tapping "receive". Here is my broadcast code. Can you please tell me if there is anything incorrect? Thanks a lot!
`    public sealed class BLEAdvertisementService
{
private BluetoothLEAdvertisementPublisher publisher;
    // Service UUID: fe2c
    private const string ServiceUuid = "0000fe2c-0000-1000-8000-00805f9b34fb";

    // Service Data: fc 12 8e 01 42 00 00 00 00 00 00 00 00 00 [10 random bytes]
    private byte[] serviceData = { 0xFC, 0x12, 0x8E, 0x01, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

    public void StartAdvertising()
    {
        // Append 10 random bytes to the serviceData array
        AppendRandomBytes(10);

        publisher = new BluetoothLEAdvertisementPublisher();

        // Create the service data section of the advertisement
        var serviceDataSection = new BluetoothLEAdvertisementDataSection();
        var writer = new DataWriter();
        writer.WriteBytes(serviceData);
        serviceDataSection.Data = writer.DetachBuffer();

        // Add the service data section to the advertisement
        publisher.Advertisement.DataSections.Add(serviceDataSection);

        // Set the UUIDs of the services being advertised
        publisher.Advertisement.ServiceUuids.Add(new Guid(ServiceUuid));

        // Start advertising
        publisher.Start();
    }

    public void StopAdvertising()
    {
        publisher?.Stop();
        publisher = null;
    }

    private void AppendRandomBytes(int count)
    {
        Random random = new Random();
        byte[] randomBytes = new byte[count];
        random.NextBytes(randomBytes);

        // Append the random bytes to the serviceData array
        int originalLength = serviceData.Length;
        Array.Resize(ref serviceData, originalLength + count);
        Array.Copy(randomBytes, 0, serviceData, originalLength, count);
    }
}`

Hello @grishka, hope you are doing great! I spent some more time debugging my code and gained a deeper understanding. Updated my previous question. Please consider responding when feasible.
https://github.com/grishka/NearDrop/issues/154#issuecomment-2024693030

Hello @grishka, hope you are doing great! Looking forward to your inputs in fixing this.
Thanks a lot!

Why would you want to do that while the official quick share for windows solution exists?

By the way, you can use this app to see what you're actually sending out


Add tasks to call or pull openshift-serverless testing on FIPS enabled clusters

openshift-serverless testing will be pushed on the fips-assessments repo in its own directory and should be selectively pulled and run from opcap-ansible

This is no longer needed. Check #33


Update obsolete SWIG definitions

This PR updates some SWIG definitions which are obsolete/incomplete with respect to the current C++ codebase.

updated outdated SWIG definitions of ROMol.generateDepictionMatching2DStructure
updated outdated SWIG definitions of RWMol.MolFromMolBlock and RWMol.MolFromMolFile
added unit test

@ptosco this looks fine to me.  Is it ready to be merged or do you have additional changes you want to make?

@greglandrum Please go ahead and merge. if I find something else I'll issue a new PR. Thanks!


FateX 0.15 Actor Sheets nonfunctional

Describe the bug
Actor sheets will not open in current FateX on current FoundryVTT. Attempts to revert to the prior version of FateX result in working Actor sheets, but no map functionality.
To Reproduce
Steps to reproduce the behavior:
attempt to open character sheet.
Expected behavior
I expect the character sheet to open.
Desktop (please complete the following information):
Firefox

Hey @glennfrog191,
could you specify which version of Foundry you're using right now? As well as the version of the installed FateX version? Right now I'm not able to reproduce this.
Greetings
Patrick

Problem was caused by an external problem, closing this issue.


Support function_call in autogen/agent

Why are these changes needed?
Preliminary designs to add the new function_call feature into the agent framework.

Related issue number
See #1083 for tasks.

Checks

[x] I've included any doc changes needed for https://microsoft.github.io/FLAML/. See https://microsoft.github.io/FLAML/docs/Contribute#documentation to build and test documentation locally.
[x] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Some Notes:

In UserProxyAgent.receive, I added back the line to convert the message to a dict. This is to make the type of the message consistent to avoid keep checking the type. Thus,  We may define is_termination_msg to always take in a dict. The type of message passed to auto_reply should also be a dict.

UserProxyAgent now allows the function calls calling to a class method, and passing in predefined arguments, or even update these arguments if needed. The current design is to ask the user to pass in a dict. More details in documentation of UserProxyAgent.

Currently, we only extract valid oai fields and append to self._oai_conversations, which ensures that self._oai_conversations can be passed to openai directly.
I revised this part and added a_append_oai_message method, that will be called in _send and _receive to construct this valid oai conversation. This ensures that only field "content", "function_call", "name" will be reserved. If none of  "content", "function_call" is seen, an empty str will be put in field "content". The role will be modified accordingly.
I remember we agreed that we can add an additional class variable to store complete messages, or to modify this  oai_conversations in the future.

Currently, we only extract valid oai fields and append to self._oai_conversations, which ensures that self._oai_conversations can be passed to openai directly.
I revised this part and added a_append_oai_message method, that will be called in _send and _receive to construct this valid oai conversation. This ensures that only field "content", "function_call", "name" will be reserved. If none of "content", "function_call" is seen, an empty str will be put in field "content". The role will be modified accordingly.
I remember we agreed that we can add an additional class variable to store complete messages, or to modify this oai_conversations in the future.

My point is: don't prevent the message to be non-oai message. It's OK to maintain oai messages. But don't assume all the messages are oai messages.

Currently, we only extract valid oai fields and append to self._oai_conversations, which ensures that self._oai_conversations can be passed to openai directly.
I revised this part and added a_append_oai_message method, that will be called in _send and _receive to construct this valid oai conversation. This ensures that only field "content", "function_call", "name" will be reserved. If none of "content", "function_call" is seen, an empty str will be put in field "content". The role will be modified accordingly.
I remember we agreed that we can add an additional class variable to store complete messages, or to modify this oai_conversations in the future.

My point is: don't prevent the message to be non-oai message. It's OK to maintain oai messages. But don't assume all the messages are oai messages.

Got it. I removed the assertion, so that messages can still be non-openai message now. I understand that an agent might not use the oai_message at all, but communicate with other fields or other LLMs

Test failure: https://github.com/microsoft/FLAML/actions/runs/5436656931/jobs/9886665719#step:7:707

Reference in n

This error should be fixed. I accidentally hit the condition where the given language is unknown and fix that part in userproxyagent.


Limitation because subprocess.run with timeout doesnt work for child processes

I am trying to use a timeout to kill a subprocess launched via .run(timeout=); this is not supported unlike the original subprocess.run()
To reproduce:
Python 3.8.12 (default, Oct 27 2021, 12:52:48)
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from subprocess_tee import run
>>> run('sleep 10', shell=True, timeout=.1, capture_output=True)
CompletedProcess(args='sleep 10', returncode=0, stdout='', stderr='')

Whereas with subprocess.run the exception is correctly thrown:
Python 3.8.12 (default, Oct 27 2021, 12:52:48)
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from subprocess import run
>>> run('sleep 10', shell=True, timeout=.1, capture_output=True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.8/subprocess.py", line 495, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/usr/local/lib/python3.8/subprocess.py", line 1028, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
  File "/usr/local/lib/python3.8/subprocess.py", line 1869, in _communicate
    self._check_timeout(endtime, orig_timeout, stdout, stderr)
  File "/usr/local/lib/python3.8/subprocess.py", line 1072, in _check_timeout
    raise TimeoutExpired(
subprocess.TimeoutExpired: Command 'sleep 10' timed out after 0.1 seconds

The output should have been a TimedoutException.
Also tried
>>> run(['sleep','10'], shell=False, timeout=.1, capture_output=False)
CompletedProcess(args=['sleep', '10'], returncode=0, stdout='', stderr='')

We could add something like the below in https://github.com/pycontribs/subprocess-tee/blob/c1b451090d0770740b5f29897771a95f7e2d8484/src/subprocess_tee/init.py#L97
(can send PR if we agree)
            )
        if kwargs.get("timeout", -1):
            await asyncio.wait_for(process.wait(), timeout=kwargs.get("timeout", -1))

Sounds ok, but please include a test.


docs: Implemented "recipe" page

What changed / motivation ?

Additional Context

Pre-flight checklist

[x] I have read the contributing guidelines
Contribution Guidelines
[x] Performed a self-review of my code

if there's something else to add to the docs, I can help with it lmk

Can we break up the recipes into separate pages so we can put more detail into each recipe over time?

Can we break up the recipes into separate pages so we can put more detail into each recipe over time?

Gotcha, I implemented your suggestions, and added a folder for recipes with each individual page separated. Should be good to go, but let me know

A few more changes needed, but nearly there.

Think it's done

@nmn Forgot about this one, but let me know if anything else can be done on my end!

@aminaopio This is good for now. I will merge it soon.


Move pager to center of the page

I just think this

looks much better than this

Also, I couldn't find the pager at first, cause I expected it to be in the center (which is also the Bootstrap default.)

Thanks for the contribution. Since this is purely UI, I have sent this over to our designer for approval. Concerning the implementation, the .less needs to be compiled into .css. This can be done by executing grunt (no parameters) in the src/Bootstrap directory.

Are you actually checking in generated artifacts?

Are you actually checking in generated artifacts?

Yes. We chose to a) not compile the .less at runtime and b) not require users that git clone the repository to install npm/grunt.

Also, designer signed off so once the compiled .css is checked in, I can merge this into dev!

not compile the .less at runtime

Sure, fair enough. I was thinking about compile time. Before you deploy. To avoid having me compile it manually and the noise it makes in source control.

not require users that git clone the repository to install npm/grunt.

But by having me compile the CSS and check it in, isn't this exactly what you're doing? 🤔

But by having me compile the CSS and check it in, isn't this exactly what you're doing? 🤔

Yeah, that's a fair point, but we felt that most users that git clone the repo just want to run it or perhaps want to make C#/Razor changes. CSS changes historically have been comparatively rare.

Done :+1:

BTW, I don't think it's too much to ask devs to install NPM and do a restore/build (it could even be part of the existing build.cmd/ps1) to run a front-end web project in 2017 😄

Rebased on dev and merged with f62358a7e012db3ad3d08a16775ebb032563890d.


Improve docs around Databricks/AKV

There are some specific scenarios not addressed by our documentation. This was confirmed by Databricks in case<PHONE_NUMBER>02283.
Reference ticket: https://help.databricks.com/s/case/5004N00000ltBtqQAE/rls-scheduled-jobs-are-filing-in-databricks-and-all-scripts-using-keyvault-as-well-due-access-issues
"* With Databricks subscription, when we create the Key vault, by default the AzureDatabricks application policy is added to the Key vault. This has been set by the administrator, so that my access is seamless.

With a user not having Databricks subscription, when I tried creating the Key vault, I do not get the AzureDatabricks application policy added to the Key vault. In order to access the Key vault in my workspace, I need to explicitly provide the AzureDatabricks policy to the Keyvault.

So the part to verify the policy in the Key vault has to be added in the Document. This has to be updated in the Azure docs that if the key vault is created some specific application, then that application's policy has to be added to the key vault to ensure it works as expected."
This Stackoverflow also points out, but it’s not an official documentation.
https://stackoverflow.com/questions/56537214/creating-a-secret-scope-in-databricks-backed-by-azure-key-vault-fails/56537215#56537215

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 810a218a-80a5-2da0-b540-26347f9ef908
Version Independent ID: 41c2a12f-99b6-0faa-500b-3e4308cd00de
Content: Secret scopes - Azure Databricks
Content Source: databricks/security/secrets/secret-scopes.md
Service: azure-databricks
GitHub Login: @mamccrea
Microsoft Alias: mamccrea

@luticm, Thanks for the feedback! We have assigned the issue to the content author to investigate this and update the document as appropriate.

Hi @luticm - thank you for the feedback. I am tracking this update in an internal work item. I will now proceed to close this issue.
#please-close


Reveal secure data

[ ] Recovery passphrase reveal
[ ] Full viewing key reveal
[ ] Spending key reveal

@grod220 is this right way to receive seed?
 getSeedPhrase: async () => {
        const passwordKey = get().password.key;
        const key = await Key.fromJson(passwordKey!);

        const encryptedSeedPhrase = get().wallets.all[0]?.custody.encryptedSeedPhrase;
        const unsealeSeedPhrase = await key.unseal(encryptedSeedPhrase!);

        return unsealeSeedPhrase?.split(' ') ?? [];
      },

https://github.com/penumbra-zone/web/blob/72-reveal-secure-data/apps/extension/src/state/wallets.ts#L39

Yes, I believe so. Please test it out.

key.unseal return null

that's why I'm asking, because it always returns null

Please debug and see why it returns null. If you can't figure it out, I can debug tomorrow.

we shuold use this function (https://github.com/penumbra-zone/web/blob/72-reveal-secure-data/apps/extension/src/state/password.ts#L33) instead setPassword when login! setPassword create new instance of key


Content containing HTML

My math equations are coming from a data source that could potentially contain html elements like <br>, <b>, <u> or <i>. Using the expression prop from vue-katex, I can't have it both ways. HTML rendered, or Math. Help me out here.

@agmt5989 Please give a reproduced example.

Imagine this payload from the database
<button>dfgtest</button> $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}
I have exactly two options, depending on which result I value more:
`

`
Which renders as shown below (courtesy of [@justforuse](https://github.com/justforuse/vue-mathjax/issues/6)
![jfu](https://user-images.githubusercontent.com/10845154/59491857-8f704080-8e7f-11e9-8f6e-0fe2ad4aeacd.png)
Is there a way you propose I go about this?

Hi @agmt5989.
Why don't you render your math directly server side? In your example your payload contains some HTML. So you could use katex.renderToString in your case. Did you consider this?
There are also other plugins that may better fit to your use case.
Example: https://github.com/waylonflinn/markdown-it-katex (didn't test it).
I want to keep this plugin as simple as possible. For richer usage, other options exist.

I will look into that. Though it doesn't seem engineered for vue.js.


Non-capital/bold script

Just a short question, as I'm not versed well enough in Java for even this: What would I need to change in the code to get it to display the text in a "regular" script? (Not all-capitals/not bold.)

Figured it out. It was in the CSS files. Removing the "text-transform: uppercase" line did it. :)


Reset polymorphic id upon type change

Hi, thank you for your attention. Currently, for polymorphic association fields, the id persists after type is changed, which may be unclear to users and cause a bug if the id is selected before type. With this change, the id field can be reset each time the type field changes. I hope you can approve this merge request. Thank you!

Thank you for the PR. The fix makes sense, could you add a test case to verify this?
https://github.com/railsadminteam/rails_admin/blob/master/spec/integration/fields/polymorphic_assosiation_spec.rb will be the best place to work.

Let me write a test. Thank you.


use with macOS/NSImage

Could you provide a version or suggest edits for use with macOS/NSImage? Would this be a huge project or could this be done by slight modifications?

You should already be able to use it with CGImage on the Mac.

This would be using functions from UIImage+CVPixelBuffer and substituting CGImage alternatives for UIImage commands?

You'd use the functions from CGImage+CVPixelBuffer. :-)

That makes sense... for some reason none of the CGImage+ files were showing up before but I recloned and see them now. Thanks!


asynchronous

asynchronous persistence, in order to improve performance，avoid disk  I/O blocking

I'm sorry I didn't notice the thread exit sequence


.sol-inner-container zindex always 9999 even when not active.

Moved z-index into .sol-container.sol-active so it doesn't interfere with modals.

Thanks for the pull request. Much appreciated.


feat: default profile as dhtclient

Closes #619

Codecov Report

Merging #621 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master     #621   +/-   ##
=======================================
  Coverage   14.94%   14.94%
=======================================
  Files          57       57
  Lines         890      890
=======================================
  Hits          133      133
  Misses        757      757

Impacted Files
Coverage Δ

src/index.js
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7063d66...fdc975a. Read the comment docs.


DataCloneError: Data cannot be cloned, out of memory

Pre-flight checklist

[X] I have read the contribution documentation for this project.
[X] I agree to follow the code of conduct that this project uses.
[X] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Electron Forge version
6.0.0-beta.61
Electron version
v12.0.18
Operating system
windows 10; version 19043
Last known working Electron Forge version
6.0.0-beta.52
Expected behavior
electron-forge package should not run out of memory
Actual behavior
JavaScript heap out of memory error during compilation of the renderer process.

(node:3800) UnhandledPromiseRejectionWarning: DataCloneError: Data cannot be cloned, out of memory.
    at reportSuccess (C:\Users\XXXX\src\project\node_modules\terser-webpack-plugin\node_modules\jest-worker\build\workers\threadChild.js:69:32)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3800) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:3800) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:3800) UnhandledPromiseRejectionWarning: DataCloneError: Data cannot be cloned, out of memory.
    at reportSuccess (C:\Users\XXXX\src\project\node_modules\terser-webpack-plugin\node_modules\jest-worker\build\workers\threadChild.js:69:32)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3800) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:3800) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

<--- Last few GCs --->

[3800:1D9E5ED8]    11876 ms: Scavenge 221.1 (238.3) -> 221.1 (238.3) MB, 0.2 / 0.0 ms  (average mu = 1.000, current mu = 1.000) allocation failure
[3800:1D9E5ED8]    11931 ms: Mark-sweep (reduce) 221.1 (238.3) -> 123.2 (215.0) MB, 55.5 / 0.0 ms  (average mu = 0.995, current mu = 0.995) last resort GC in old space requested
[3800:1D9E5ED8]    12021 ms: Mark-sweep (reduce) 123.2 (203.0) -> 122.9 (134.8) MB, 89.4 / 0.0 ms  (average mu = 0.987, current mu = 0.000) last resort GC in old space requested

<--- JS stacktrace --->

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
error Command failed with exit code 134.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Steps to reproduce
having more than 4 entry points in the renderer process seems to cause this to crash.
Forge.config

  renderer: {
          config: './webpack.renderer.config.js',
          entryPoints: [
            {
              html: './src/renderer/index.html',
              js: './src/renderer/windows/index.tsx', // For some reason we need a dummy file here
              name: 'main_window',
              preload: {
                js: './src/main/preload.ts',
              },
            },
            {
              html: './src/renderer/index.html',
              js: './src/renderer/windows/tray/index.tsx',
              name: 'tray_window',
            },
            {
              html: './src/renderer/index.html',
              js: './src/renderer/windows/face/index.tsx',
              name: 'face_window',
            },
            {
              html: './src/renderer/index.html',
              js: './src/renderer/windows/notifications/index.tsx',
              name: 'notifications_window',
            },
            {
              html: './src/renderer/index.html',
              js: './src/renderer/windows/tip/index.tsx',
              name: 'tip_window',
            },
            {
              html: './src/renderer/index.html',
              js: './src/renderer/windows/permissions/index.tsx',
              name: 'permissions_window',
            },
            {
              html: './src/renderer/index.html',
              js: './src/renderer/windows/shortcutHelp/index.tsx',
              name: 'shortcut_help_window',
            },
            {
              html: './src/renderer/index.html',
              js: './src/renderer/windows/markup/index.tsx',
              name: 'markup_window',
            },
            {
              html: './src/renderer/index.html',
              js: './src/renderer/windows/survey/index.tsx',
              name: 'survey_window',
            },
          ]
        },

Additional information
This does work on mac (64-bit), but crashes on windows (32-bit). Passing in max_old_space_size=4096 did not seem to solve this out of memory error
Stack trace for error after running electron-forge package
(node:3800) UnhandledPromiseRejectionWarning: DataCloneError: Data cannot be cloned, out of memory.
    at reportSuccess (C:\Users\XXXX\src\project\node_modules\terser-webpack-plugin\node_modules\jest-worker\build\workers\threadChild.js:69:32)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3800) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:3800) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:3800) UnhandledPromiseRejectionWarning: DataCloneError: Data cannot be cloned, out of memory.
    at reportSuccess (C:\Users\XXXX\src\project\node_modules\terser-webpack-plugin\node_modules\jest-worker\build\workers\threadChild.js:69:32)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3800) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:3800) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

<--- Last few GCs --->

[3800:1D9E5ED8]    11876 ms: Scavenge 221.1 (238.3) -> 221.1 (238.3) MB, 0.2 / 0.0 ms  (average mu = 1.000, current mu = 1.000) allocation failure
[3800:1D9E5ED8]    11931 ms: Mark-sweep (reduce) 221.1 (238.3) -> 123.2 (215.0) MB, 55.5 / 0.0 ms  (average mu = 0.995, current mu = 0.995) last resort GC in old space requested
[3800:1D9E5ED8]    12021 ms: Mark-sweep (reduce) 123.2 (203.0) -> 122.9 (134.8) MB, 89.4 / 0.0 ms  (average mu = 0.987, current mu = 0.000) last resort GC in old space requested

<--- JS stacktrace --->

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
error Command failed with exit code 134.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Unfortunately this looks like a problem with either terser-webpack-plugin or something else in your Webpack configuration, and not something directly related to Electron Forge.


Pokedrops still dropping multiple drops for mons with multiple forms

Pokemon such as Burmy, Wormadam, Lycanroc, Basculin, Castform and likely others still drop multiple sets of drops due to having multiple forms.
Some screenies:

My theory is that the stats files for all of these pokemon have not been properly refreshed when this issue was fixed in the mod. I have let Hacko know and will close once the files are fixed, thank you for the report c:

Fixed every multi-form pokemon I could think of. There may still be a few stragglers, but hopefully the majority should be fixed. Thanks for the report!


Add submit button near the URL input when connecting a dataset

leave the enter thing, but add the button.
28px height, grey style.

https://github.com/CartoDB/cartodb/commit/9c0a70439c589c4d890019dddebfa69df8709401


Update tc3_changelog.md

Added 4024.25
Added EDS parser update regarding TF6281 Ethernet/IP Scanner

Hi @JazLock ! Thanks for your PR. Do you also have a source of this change?

Hi @Roald87, If you add an EIP Scanner to the IO config, add a new EIP Box and finally right click and Append an IO connection on the settings tab you can see the version of the EDS parser etched in the bottom left.
You can see the difference by selecting the remote manager build of 4024.22 or 4024.25.
The optimization I have noticed because I have a slave which uses the config instance and it's generated incorrectly in 4024.22 but is handled properly in 4024.25.


v0.0.39 won't work with webpack

Reproduce this bug step by step:
➜  [test] date
Mon Sep 25 05:34:15 CST 2017

➜  [test] vue init webpack-simple test_project

➜  [test] cd test_project/

➜  [test_project] npm install
npm notice created a lockfile as package-lock.json. You should commit this file.
added 733 packages in 59.949s

➜  [test_project] npm install --save vue-mdc-adapter
+<EMAIL_ADDRESS>added 35 packages in 16.774s

➜  [test_project] vim src/main.js
➜  [test_project] cat src/main.js
import Vue from 'vue'
import App from './App.vue'
import VueMdcAdapter from 'vue-mdc-adapter'
Vue.use(VueMdcAdapter)
new Vue({
  el: '#app',
  render: h => h(App)
})

➜  [test_project] vim src/App.vue
➜  [test_project] cat src/App.vue
<template>
  <div id="app">
    <mdc-card>
    </mdc-card>
  </div>
</template>
<script>
export default {
  name: 'app',
  data () { }
}
</script>
<style>
</style>

➜  [test_project] npm run build
ERROR in build.js from UglifyJs
Unexpected token: name (MDCFoundation) [./~/@material/base/foundation.js:20,0][build.js:190,6]

mmmh :(

ok there are couple problems with using webpack simple template from scratch.

vue-mdc-adapter is distributed both as cjs (package.json:main) or es6 module (package.json:module)
By default, webpack will take the module version which is es6. so babel needs to be run on any vue-mdc-adapter and material dependencies. in the template, node_modules are excluded so the @ material code is not being transpiled and then uglify fails as uglifyjs is only es5.

then there is the sass issue. in order for people to be able to theme, I have split the sass from the module. so you need to import own sass file:

// mytheme.scss
$mdc-theme-primary: #212121;
$mdc-theme-accent: #41B883;
$mdc-theme-background: #fff;

@import "vue-mdc-adapter/components/styles";

samething here, most of the sass is imported from node_modules so for it to work, you need to add scss loaders rule to the webpack config and make sure configured which proper resolution of node_modules (includePaths: [path.resolve(__dirname, '../node_modules')])
or if you do  not want to play with sass theme, just add the  to css in your index.html :
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css">
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" type="text/css">
    <link rel="stylesheet" href="https://unpkg.com/vue-mdc-adapter/dist/vue-mdc-adapter.min.css">

I guess I need to add doc on how webpack is to be configured ...

you can check my cloud9 workspace for this issue https://c9.io/stasson/vue-mdc-adapter-issues
npm run build is fine
npm run dev dosn't seem to work with this webpack simple template. not sure why. probably issue with my cloud9 config...

So to resolve this issue I guess I just need to add some more doc on how to build with webapck
If I have some courage left next week,  I may also  create a webpack boilerplate which works with vue-mdc-adapter...

@stasson
Thank you so much 😍😍 . I will look into your code in c9.io after receiving my credit card and signing up for c9.io. Maybe this weekend.


Support for Safari Browser

Hi, does this support safari browser?

Yes, NatCorder works on macOS Safari 16.4+.


Fix getting model bounding box in world frame in TPE

By default the GetAxisAlignedBoundingBox feature requests a model's bounding box in world frame, and computes it by merging all child links and shapes' bounding boxes in the requested frame. The problem was that we did not have support for getting frame data for shapes in the KinematicsFeatures so the bounding box returned was incorrect. The PR adds an extra check in the collision (shape) list when searching for frame data.
Signed-off-by: Ian Chen<EMAIL_ADDRESS>

@osrf-jenkins run tests please


[custom_components.tuya_local.device] Failed to fetch device status for Floodlight Veranda

Describe the bug
Log file is flooding with the above messages, thousands of them, causing HA to crash every now and then.

To Reproduce
No idea, how to reproduce. I did see others reporting this and it was mentioned that it may be a problem with either the wifi or wrong protocol version.
Expected behavior
Errors should not be there, devices should work.
Additional context
All the devices dont work from tuya-local, but do work from regular Tuya in HA.  The protocols used for the devices are the ones Tuya-local suggested when the devices were added.
If the bug involves a device, then please include device diagnostics from
Settings / Devices & Services / Tuya Local (your device) / "1 device"
Please check if there are messages from Tuya Local in the Home
Assistant log (Settings / System / Logs), and include those too.

There is not enough detail given to diagnose what your problem might be.  You apparently got these devices set up once, but now they are failing. The debug log may show more details about the exact error that is preventing them from working.

But still the errors occur, while the ip's are fixed now. The deviced do work though from HA. It is just that the log flooding with these errors is annoying.

One more thing, One of the devices in tuya-local  was not working from tuya-local bur was working with the HA integeration. I removed and added again. No problem there. But soon the errors started appearing in the logs again. Abd the device logs show this:

But the same device in Tuya:

I was hoping for some more support. Trying my best to provide you with more information. I have a diagnostig log, but don't know how to get it to you. Posting it here does not look like a good option. Also I have questions, like when you add a device, you need to give the ip, does that mean the ip should remain static?   I thought maybe we cannot have the dvices in both Tuya and Tuya-Local. So I removed one from the Tuya app, it was automatically removed from HA, but the device in Tuya-Local went offline with that as well, and does not come back. Is that to be expected?


Info file parse errors

A handful of info files with missing quotation marks are in the 20241228 15.0 public update. In both sbotools-3.2.1 and sbotools-2.x, attempting to parse some malformed info files results in the script erroring out. As of commit e8f34fd, sbotools now repairs missing quotation marks, extraneous lines, bad whitespace, etc. before parsing.
There will be a new version incorporating the bugfix out in time for next weekend's SBo public update. In the meantime, a SlackBuild for the latest commit on master can be found at sbotools-git-slackbuild.

Version 3.3 has been released.
I don't normally do this, but because this particular error can easily cause sbocheck (and a few other things) to fail, I'm providing a copy of the SlackBuild files:

sbotools.tar (asc)

md5sum: 97c2717786b8aa56352ac74967c8ca78

The signature can be verified with the GPG key at https://pghvlaans.github.io/sbotools. Please note that because 3.3 is not yet on SlackBuilds.org, the package installs with a _pghv tag. Feel free to change that yourself if you like, of course.
Happy New Year!


feat(gitlab): Bump buildimages to the latest version

What does this PR do?
Bump buildimages to the latest version
Motivation
Have vault deployed in all images needed it. Relates to ACIX-445
Describe how to test/QA your changes
Validated on this pipeline
Possible Drawbacks / Trade-offs
Additional Notes

/merge


1991 Fixed issue with opening auth fragment when

This pull request fixes the issue when the Android App using the MSAL library builds the multiple client app the following code is used
AcquireTokenParameters.Builder().withFragment(fragment).
Issue: https://github.com/AzureAD/microsoft-authentication-library-for-android/issues/1991

https://github.com/AzureAD/microsoft-authentication-library-for-android/issues/1991#issue-2064163227

@microsoft-github-policy-service agree company="Microsoft"

@VolodaUa please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
@microsoft-github-policy-service agree [company="{your company}"]

Options:

(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.

@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement
Contribution License Agreement
This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”), and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your contributions to Microsoft open source projects. This Agreement is effective as of the latest signature date below.

Definitions.
“Code” means the computer software code, whether in human-readable or machine-executable form,
that is delivered by You to Microsoft under this Agreement.
“Project” means any of the projects owned or managed by Microsoft and offered under a license
approved by the Open Source Initiative (www.opensource.org).
“Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
Project, including but not limited to communication on electronic mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
discussing and improving that Project, but excluding communication that is conspicuously marked or
otherwise designated in writing by You as “Not a Submission.”
“Submission” means the Code and any other copyrightable material Submitted by You, including any
associated comments and documentation.
Your Submission. You must agree to the terms of this Agreement before making a Submission to any
Project. This Agreement covers any and all Submissions that You, now or in the future (except as
described in Section 4 below), Submit to any Project.
Originality of Work. You represent that each of Your Submissions is entirely Your original work.
Should You wish to Submit materials that are not Your original work, You may Submit them separately
to the Project if You (a) retain all copyright and license information that was in the materials as You
received them, (b) in the description accompanying Your Submission, include the phrase “Submission
containing materials of a third party:” followed by the names of the third party and any licenses or other
restrictions of which You are aware, and (c) follow any other instructions in the Project’s written
guidelines concerning Submissions.
Your Employer. References to “employer” in this Agreement include Your employer or anyone else
for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
Submission is made in the course of Your work for an employer or Your employer has intellectual
property rights in Your Submission by contract or applicable law, You must secure permission from Your
employer to make the Submission before signing this Agreement. In that case, the term “You” in this
Agreement will refer to You and the employer collectively. If You change employers in the future and
desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
and secure permission from the new employer before Submitting those Submissions.
Licenses.

Copyright License. You grant Microsoft, and those who receive the Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the
Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute
the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third
parties.
Patent License. You grant Microsoft, and those who receive the Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under
Your patent claims that are necessarily infringed by the Submission or the combination of the
Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
import or otherwise dispose of the Submission alone or with the Project.
Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
granted by implication, exhaustion, estoppel or otherwise.

Representations and Warranties. You represent that You are legally entitled to grant the above
licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
have disclosed under Section 3). You represent that You have secured permission from Your employer to
make the Submission in cases where Your Submission is made in the course of Your work for Your
employer or Your employer has intellectual property rights in Your Submission by contract or applicable
law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which
You later become aware that would make Your representations in this Agreement inaccurate in any
respect.
Information about Submissions. You agree that contributions to Projects and information about
contributions may be maintained indefinitely and disclosed publicly, including Your name and other
information that You submit with Your Submission.
Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and
the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County,
Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to
exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all
defenses of lack of personal jurisdiction and forum non-conveniens.
Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
supersedes any and all prior agreements, understandings or communications, written or oral, between
the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.

@microsoft-github-policy-service agree company="Globallogic"

@microsoft-github-policy-service agree company="Globallogic"

@VolodaUa please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
@microsoft-github-policy-service agree [company="{your company}"]

Options:

(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.

@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement
Contribution License Agreement
This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”), and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your contributions to Microsoft open source projects. This Agreement is effective as of the latest signature date below.

Definitions.
“Code” means the computer software code, whether in human-readable or machine-executable form,
that is delivered by You to Microsoft under this Agreement.
“Project” means any of the projects owned or managed by Microsoft and offered under a license
approved by the Open Source Initiative (www.opensource.org).
“Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
Project, including but not limited to communication on electronic mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
discussing and improving that Project, but excluding communication that is conspicuously marked or
otherwise designated in writing by You as “Not a Submission.”
“Submission” means the Code and any other copyrightable material Submitted by You, including any
associated comments and documentation.
Your Submission. You must agree to the terms of this Agreement before making a Submission to any
Project. This Agreement covers any and all Submissions that You, now or in the future (except as
described in Section 4 below), Submit to any Project.
Originality of Work. You represent that each of Your Submissions is entirely Your original work.
Should You wish to Submit materials that are not Your original work, You may Submit them separately
to the Project if You (a) retain all copyright and license information that was in the materials as You
received them, (b) in the description accompanying Your Submission, include the phrase “Submission
containing materials of a third party:” followed by the names of the third party and any licenses or other
restrictions of which You are aware, and (c) follow any other instructions in the Project’s written
guidelines concerning Submissions.
Your Employer. References to “employer” in this Agreement include Your employer or anyone else
for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
Submission is made in the course of Your work for an employer or Your employer has intellectual
property rights in Your Submission by contract or applicable law, You must secure permission from Your
employer to make the Submission before signing this Agreement. In that case, the term “You” in this
Agreement will refer to You and the employer collectively. If You change employers in the future and
desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
and secure permission from the new employer before Submitting those Submissions.
Licenses.

Copyright License. You grant Microsoft, and those who receive the Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the
Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute
the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third
parties.
Patent License. You grant Microsoft, and those who receive the Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under
Your patent claims that are necessarily infringed by the Submission or the combination of the
Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
import or otherwise dispose of the Submission alone or with the Project.
Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
granted by implication, exhaustion, estoppel or otherwise.

Representations and Warranties. You represent that You are legally entitled to grant the above
licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
have disclosed under Section 3). You represent that You have secured permission from Your employer to
make the Submission in cases where Your Submission is made in the course of Your work for Your
employer or Your employer has intellectual property rights in Your Submission by contract or applicable
law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which
You later become aware that would make Your representations in this Agreement inaccurate in any
respect.
Information about Submissions. You agree that contributions to Projects and information about
contributions may be maintained indefinitely and disclosed publicly, including Your name and other
information that You submit with Your Submission.
Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and
the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County,
Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to
exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all
defenses of lack of personal jurisdiction and forum non-conveniens.
Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
supersedes any and all prior agreements, understandings or communications, written or oral, between
the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.

@microsoft-github-policy-service agree

@fadidurah Could team review this pull request?

@rpdome @shahzaibj @melissaahn
Could you please help me and review this pull request? Please let me know if I need to do something.
Thanks a lot!

https://github.com/AzureAD/microsoft-authentication-library-common-for-android/issues/1669

When can we expect this to be merged.

When can we expect this to be merged.

Hi @nikhil4coding
I would like to merge as soon as possible, but I can't as it should be reviewed.
Unfortunately, no feedback and ignoring is present from this library team (((

Hi,
Could someone approve and run the workflows. I would like finally to merge the pull request.
🙏

/azp run Common4j - Build & Test

/azp run "Common4j - Build & Test"

/azp run "Common4j - Build & Test"

Hi @shahzaibj
Is there any chance of merging this pull request?
Thanks!