Support Graylog as logging target

Please add support for @lennartkoopmann's Graylog (and it's GELF format) https://github.com/graylog2 to the logging settings of clusters and projects.
gz#12973

Hopefully we can add it into v2.2
Maybe we can use https://github.com/bodhi-space/fluent-plugin-gelf-hs as the Fluentd plugin

+1
I would also be interested in GELF support in the Rancher logging settings.

As a workaround it's possible to use https://github.com/fluent/fluentd-kubernetes-daemonset. Based on this tutorial: https://supergiant.io/blog/cluster-level-logging-in-kubernetes-with-fluentd/
Steps to install:

Disable rancher logging
Create a GELF UDP input in Graylog
Create a kubernetes ServiceAccount and give the correct permissions

$ cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
  name: fluentd
  namespace: kube-system

---

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: fluentd
  namespace: kube-system
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - namespaces
  verbs:
  - get
  - list
  - watch

---

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: fluentd
roleRef:
  kind: ClusterRole
  name: fluentd
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: fluentd
  namespace: kube-system
EOF

Deploy the DaemonSet

$ cat <<EOF | kubectl apply -f -
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: fluentd
  namespace: kube-system
  labels:
    k8s-app: fluentd-logging
    version: v1
    kubernetes.io/cluster-service: "true"
spec:
  template:
    metadata:
      labels:
        k8s-app: fluentd-logging
        version: v1
        kubernetes.io/cluster-service: "true"
    spec:
      serviceAccount: fluentd
      serviceAccountName: fluentd
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      containers:
      - name: fluentd
        image: fluent/fluentd-kubernetes-daemonset:v1.3.3-debian-graylog-1.4
        env:
          - name:  FLUENT_GRAYLOG_HOST
            value: "<IP_ADDRESS>"
          - name:  FLUENT_GRAYLOG_PORT
            value: "12222"
          - name: FLUENT_UID
            value: "0"
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers
EOF

Replace FLUENT_GRAYLOG_HOST and FLUENT_GRAYLOG_PORT with your values.
Works exactly like the rancher implementation. I'm not sure they use this DaemonSet under the hood. If not, probably they should.

+1 (GELF). Thanks

Related PRs
https://github.com/rancher/fluentd/pull/28
https://github.com/rancher/types/pull/1067
https://github.com/rancher/system-charts/pull/142
https://github.com/rancher/rancher/pull/24911
https://github.com/rancher/ui/pull/3741

+1

It's worth noting that you can log to Graylog as a Syslog endpoint but there are known issues with this.  There may be solutions but since this is not a supported solution, I've not yet invested the time to delve into them.  Please post here if you find configurationns or workarounds that will resolve these or others you find:

Log metadata is not consumed by Graylog and instead becomes part of the message
Long messges are split into multiple log entries
Some messages are truncated.  Initially we thought this may be a UDP limitation but saw the same issues when using TCP

Right now I would recommend using Elasticsearch until this feature can be prioritized, as it's an easy substitution for most users.

+1 for GELF support, this should have been in Rancher years ago.

Since 2.5 Rancher is using the banzai logging operator. So this is now dependent on https://github.com/banzaicloud/logging-operator/issues/24. As soon as this is implemented and released, it an also be used in Rancher.

I wrote a pull request to support this in the upstream project: banzaicloud/logging-operator#705

it seems there was https://github.com/rancher/charts/tree/dev-v2.6/charts/rancher-logging/rancher-logging/100.0.1%2Bup3.15.0 pushed. Someone knows when this dev-v2.6 branch gets merged so the chart is available at charts.rancher.io?

Please backport to 2.5.x as well!

Closing as stale.


Get rid of os-homedir dependency

Fixes the following warning when installing buble v0.19.8:
npm WARN deprecated<EMAIL_ADDRESS>This is not needed anymore. Use `require('os').homedir()` instead.

os-homedir isn't needed since Node v2.3.0.

Awesome

Has this fix been released?


[Summer 2021] Coverage Improvements - tornado.web.RequestHandler subclassing

A way to define an HTTPRequest handler with tornado framework is to subclass tornado.web.RequestHandler and implement methods like "get", "post" . We should review Tornado RequestHandler API https://www.tornadoweb.org/en/stable/web.html and create a DSL model generator (documentation) to automatically create User Controlled models .
Given this class:
class WhateverHandler(tornado.web.RequestHandler):

    def get(self, path):
        pass

The DSL model generator should generate models like this:
def whatever.WhateverHandler.get(path: TaintSource[UserControlled]): ...

Claiming this issue!

Closed via https://github.com/facebook/pyre-check/commit/5108db9ab7f8006a955a6b26d9564b7562c2c1b6


Import customized map generated by Roadrunner using UE5 version

Hi,
I already built up the latest UE5.5 version of CARLA on Windows 11. Now I am trying import the map files (.fbx and .xdor) generated by RoadRunner using the make import  but it doesn't work right now. Here is the snapshot for this issue:

Anyone can help import the map?
Thanks

Put your new map file and JSON configuration file in the import folder.

Actually, I did try that and also used the '--no-carla-materials' tag without a JSON file, but neither worked

Put your new map file and JSON configuration file in the import folder.

Actually, I did try that and also used the '--no-carla-materials' tag without a JSON file, but neither worked

Check if your directory is correct.
Directly use "make import" to test.
you can share me more details about your directory and json file

Make import won't work in UE5 version


Add support  for Live Queries

First of all i apologize for the worst code ever.
I am getting this segmentation fault error

In the above image the data print statement is from within ws.read() and I see that I have received the live query response. I think this should have its own type. Being fairly new to go and channels, i created a go routine which keeps extracting data from the connection and i believe this is where i am going wrong
I am struggling to understand the reason, but from what I imagine it could be maybe from the ws.read() function since when the server sends the response back to the client, I am reading the response and trying to process it and send it to the response channel created. I think I need to create new set of channels similar to responseChannels and the locks, maybe naming it to notificationChannels but that is later.

I didn't go too far with reviews because of draft PR such as print statements...
other than it looking good :)
Thanks for your contribution. :+1:

@ElecTwix thanks but its not working lol

Yes I am getting segmentation fault. That's what's the issue is. I did mention a few points in the description before about why that might be but not sure if that is indeed the reason or not and how to resolve those

Yes I am getting segmentation fault. That's what's the issue is. I did mention a few points in the description before about why that might be but not sure if that is indeed the reason or not and how to resolve those

I will look into it when I had time
also in the meantime you could try to debug

I think i found the error. So in the gorilla.go file, we have the initialize method which also listens to the socket connection and reads incoming message. This along with the same socket listen code for notifications is problematic. once a response is read, it is "lost", as in both the instances cant read the same message, randomly either the initialize or the LiveNotification code will be invoked causing the other to fail and hence segmentation fault.
So this listening should be done centrally and the response should be handled accordingly. I am not sure how would that be done
Attaching the modified initialize function which works fine but not everytime
func (ws *WebSocket) initialize() {
	go func() {
		for {
			select {
			case <-ws.close:
				return
			default:
				var res rpc.RPCResponse
				err := ws.read(&res)
				if err != nil {
					ws.logger.Logger.Err(err)
					ws.logger.LogChannel <- err.Error()
					continue
				}
				var responseChan chan rpc.RPCResponse
				var ok bool
				if res.ID != nil && res.ID != "" {
					responseChan, ok = ws.getResponseChannel(fmt.Sprintf("%v", res.ID))
					if !ok {
						err = errors.New("ResponseChannel is not ok")
						ws.logger.Logger.Err(err)
						ws.logger.LogChannel <- err.Error()
						continue
					}
					responseChan <- res
					close(responseChan)
				} else {
					fmt.Println("res", res.Result.(map[string]interface{})["id"])
					responseChan, ok = ws.getResponseChannel(fmt.Sprintf("%v", res.Result.(map[string]interface{})["id"]))
					if !ok {
						err = errors.New("ResponseChannel is not ok")
						ws.logger.Logger.Err(err)
						ws.logger.LogChannel <- err.Error()
						continue
					}
					responseChan <- res
					// close(responseChan)
				}

			}
		}
	}()
}

Hey thanks for this!
Yes, the stack trace points at the line where nil isn't handled. Either handle or return an error there. It would be a separate PR and I would like a test. I haven't looked into it, but a different design may be viable as a solution as well: where nil isn't possible, for example.

@phughk i have pushed some new code. The local test worked fine for the TestLive testcase but apparently something is missing. I am not sure what the issue is. Could you please guide me on the latest code?

Can someone please take a look at this? I am out of ideas now 🤣

Guys lets get this closed soon please?

Guys let's get this closed soon please?

the late time I talked with @phughk he said the data structure can be changed for live queries when beta 10,
maybe we should for beta 10 to see those changes and implement them afterward and wait for that to happen?

ahh i seee ok ok

Heya both 👋
We did intend to change the message format. We probably won't. It won't be a big deal if we do, as the mechanism will be essentially the same. So it is safe to program against the current format.
The stack trace can be traced to the file gorilla.go line 273. I haven't looked, but I am guessing that is something uninitialised or defaulting to nil. Have a look at the cause inside the gorilla implementation.
I recommend merging with the main branch as a significant change landed that moves files around (and there are merge conflicts now). This should be done before debugging imo.

The stack trace can be traced to the file gorilla.go line 273. I haven't looked, but I am guessing that is something uninitialized or defaulting to nil. Have a look at the cause inside the gorilla implementation.

I looked into it before it was error caused because it is not killed and the RPC we made will also cause the live query to send back thing so we waited for 1 but we got 2 and that will block other RPC responds because go wait for channel to get that data, I was looking into killing live query after it but I was couldn't manage to do it I will look into it right now maybe I could manage to find, thanks for clarification also

just merged the main branch

Hey @Atoo35 I created PR for the loop fix https://github.com/Atoo35/surrealdb.go/pull/1
It is working nightly.
Also, @phughk thanks for this https://github.com/surrealdb/surrealdb/pull/2402 it helped a lot

@ElecTwix thanks for the help but i swear to god I tried this. why didn't it work lol. lemme try this again xD

@ElecTwix you are a saviour, i tried the kill but with an older nightly where it errored out. This is good to go now!!

Hi @Atoo35, I have added some review comments. The PR is good to be merged once the comments are resolved.

They should be visible now. Thanks @Atoo35 .

yes i can see them now. Will resolve asap. Thanks!

I left some comments on some of review's comments.
I think we need the clear them out before implementing.

Thanks @phughk , although this was something I very intially thought needs to be done but I guess we decided in between not to do that if I am not wrong. Anyway thanks for this and sorry for the delay

Hey @ElecTwix, @Atoo35, we added some fixes to the PR today. Do add your review comments regarding them. I will resolve the previous comments after your review comments.

@Atoo35 yes, must have misunderstood earlier if you were suggesting that already. Thanks for handling the fixes. Looks like i introduced some linting errors. Would it be possible to fix those by you? Or I can open a PR to do that as well.

I have made this an accepted pr for Hacktoberfest @Atoo35 :) Not sure if you are participating

Ooohhh cool... Yeah it's embarrassing but I forgot about hacktoberfest haha... Will fix the other PR hopefully tonight post work

Yeah no rush :)


App breaks when loading invalid RSS URL

Problem
When the user attempts to enter a URL which is invalid in the RSS dialog, the app breaks and an error is shown.

Possible solutions

Check if the URL returns a status of error (something like this):{
    "status":"error",
    "message":"You are converting new feeds in a short period, please try again later or use an api key."
}

Clear the localStorage if the following above happens using this code:window.localStorage.clear();
// or localStorage.clear();

This was already fixed long ago. Can't remember what commit it was though.


HTML characters in time series graph do not render correctly

Please look at screenshot

Closing as a duplicate of issue #174.


Cannot access internet or LAN addresses through PiVPN/Wireguard

In raising this issue, I confirm the following:
{please fill the checkboxes, e.g: [X]}

[X] I have read and understood the contributors guide.
[X] The issue I am reporting can be replicated.
[X] The issue I am reporting is directly related to the pivpn installer script.

Describe the bug
I run OMV6 on an old Dell Studio 1558 mohterboard. I installed PiVPN with Wireguard following the steps on the website. I connect through a No-IP address (joel.servegame.com).
I want to be able to access my SMB shares while away from home and also manage OMV/Docker etc. However when I connect via Wireguard I can't do so, and also most (?) websites won't load - as in, I can access www.bbc.co.uk/news and www.bbc/co.uk/sport but google/canyouseeme/speedtest.net for example won't load.
I have tested this both on my android phone (both through LTE and with LTE turned off) and on my windows laptop connected through my phone's hotspot.
Expected behavior
Connect via VPN, access local IP addresses and network shares.
Troubleshooting steps:
As per https://github.com/pivpn/pivpn/wiki/faq:
pivpn -d gave:
::: Generating Debug Output
::::            PiVPN debug              ::::
=============================================
::::            Latest commit            ::::
commit 5aa0de636f32fd674b77a2b3dd64d97b51680707
Author: 4s3ti<EMAIL_ADDRESS>Date:   Mon May 31 21:01:46 2021 +0200

    IRC From freenode to libera.chat

    Changed info about IRC Chanel,
    Chanel moved from freenode to libera.chat
=============================================
::::        Installation settings        ::::
PLAT=Debian
OSCN=bullseye
USING_UFW=0
IPv4dev=enp9s0
install_user=joel
install_home=/ssd/joel
VPN=wireguard
pivpnPORT=51820
pivpnDNS1=<IP_ADDRESS>
pivpnDNS2=<IP_ADDRESS>
pivpnHOST=REDACTED
INPUT_CHAIN_EDITED=0
FORWARD_CHAIN_EDITED=1
pivpnPROTO=udp
pivpnMTU=1420
pivpnDEV=wg0
pivpnNET=<IP_ADDRESS>
subnetClass=24
ALLOWED_IPS="<IP_ADDRESS>/0, ::0/0"
UNATTUPG=1
INSTALLED_PACKAGES=(wireguard-tools unattended-upgrades)
=============================================
::::  Server configuration shown below   ::::
[Interface]
PrivateKey = server_priv
Address = <IP_ADDRESS>/24
MTU = 1420
ListenPort = 51820
### begin joel ###
[Peer]
PublicKey = joel_pub
PresharedKey = joel_psk
AllowedIPs = <IP_ADDRESS>/32
### end joel ###
=============================================
::::  Client configuration shown below   ::::
[Interface]
PrivateKey = joel_priv
Address = <IP_ADDRESS>/24
MTU = 1420
DNS = <IP_ADDRESS>, <IP_ADDRESS>

[Peer]
PublicKey = server_pub
PresharedKey = joel_psk
Endpoint = REDACTED:51820
AllowedIPs = <IP_ADDRESS>/0, ::0/0
=============================================
::::    Recursive list of files in       ::::
::::    /etc/wireguard shown below       ::::
/etc/wireguard:
configs
keys
wg0.conf

/etc/wireguard/configs:
clients.txt
joel.conf

/etc/wireguard/keys:
joel_priv
joel_psk
joel_pub
server_priv
server_pub
=============================================
::::            Self check               ::::
:: [OK] IP forwarding is enabled
:: [OK] Iptables MASQUERADE rule set
:: [OK] Iptables FORWARD rule set
:: [OK] WireGuard is running
:: [OK] WireGuard is enabled (it will automatically start on reboot)
:: [OK] WireGuard is listening on port 51820/udp
=============================================

lsmod | grep wireguard gave:
wireguard              98304  0
libchacha20poly1305    16384  1 wireguard
ip6_udp_tunnel         16384  1 wireguard
udp_tunnel             20480  1 wireguard
libblake2s             16384  1 wireguard
curve25519_x86_64      36864  1 wireguard
libcurve25519_generic    49152  2 curve25519_x86_64,wireguard

I note that the installation settings (shown above) don't have entries for IPv4addr and IPv4gw but I don't know if those are only for OpenVPN?
ip -f inet address show enp9s0 gives:
2: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global dynamic enp9s0
       valid_lft 83708sec preferred_lft 83708sec

Packet capture gave a lot - here's the last bit:
14:42:21.822680 IP <IP_ADDRESS>.22628 > <IP_ADDRESS>.51820: UDP, length 112
14:42:21.830682 IP <IP_ADDRESS>.22628 > <IP_ADDRESS>.51820: UDP, length 96
14:42:21.830684 IP <IP_ADDRESS>.22628 > <IP_ADDRESS>.51820: UDP, length 96
14:42:21.838085 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 96
14:42:21.838100 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 96
14:42:21.890220 IP <IP_ADDRESS>.22628 > <IP_ADDRESS>.51820: UDP, length 96
14:42:21.890222 IP <IP_ADDRESS>.22628 > <IP_ADDRESS>.51820: UDP, length 96
14:42:21.898171 IP <IP_ADDRESS>.22628 > <IP_ADDRESS>.51820: UDP, length 608
14:42:21.905685 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 96
14:42:21.912296 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:21.912534 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:21.912547 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:21.912568 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 272
14:42:21.922958 IP <IP_ADDRESS>.22628 > <IP_ADDRESS>.51820: UDP, length 608
14:42:21.930095 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:21.930351 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 96
14:42:21.936799 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:21.937074 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:21.937234 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:21.937241 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 272
14:42:21.970679 IP <IP_ADDRESS>.22628 > <IP_ADDRESS>.51820: UDP, length 96
14:42:21.982686 IP <IP_ADDRESS>.22628 > <IP_ADDRESS>.51820: UDP, length 96
14:42:21.996059 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:21.996268 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:21.996275 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:22.007081 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:22.007089 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:22.007339 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:22.260814 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:22.270133 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:22.684841 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 144
14:42:22.692001 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:22.807919 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 96
14:42:22.821140 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:22.845844 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:22.909935 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 96
14:42:23.134032 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 144
14:42:23.146329 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
14:42:23.271444 IP <IP_ADDRESS>.51820 > <IP_ADDRESS>.22628: UDP, length 1452
^C
4046 packets captured
4046 packets received by filter
0 packets dropped by kernel

At this point I'm pretty much stuck!

I want to be able to access my SMB shares while away from home and also manage OMV/Docker etc. However when I connect via Wireguard I can't do so, and also most (?) websites won't load - as in, I can access www.bbc.co.uk/news and www.bbc/co.uk/sport but google/canyouseeme/speedtest.net for example won't load.

Could be this: https://github.com/pivpn/pivpn/issues/1329#issuecomment-874228371


Non-commercial license in incorrect_words.yaml

It looks like even though this library is released under MIT License, evaluation/incorrect_words.yaml is released under a non-commercial license. Would it be possible to exclude this from the released gem, given this seems to not be used at runtime?
We noticed this because this gem is bundled with the ruby 2.5 source code, which failed a licensing scan we run internally.

Very good question, thanks for catching that! I'll exclude the entire evaluation directory and cut a new release as soon as possible.

Version 1.2.1 ships without non-production code that has a non-commercial license. Thanks!


Error: Error in migration engine. Reason: [migration-engine/connectors/sql-migration-connector/src/sql_schema_differ/differ_database.rs:111:9] no entry found for key

Command: prisma db push
Version: 3.5.0
Binary Version: 78a5df6def6943431f4c022e1428dbc3e833cf8e
Report: https://prisma-errors.netlify.app/report/13596
OS: x64 linux <IP_ADDRESS>-microsoft-standard-WSL2
JS Stacktrace:
Error: Error in migration engine.
Reason: [migration-engine/connectors/sql-migration-connector/src/sql_schema_differ/differ_database.rs:111:9] no entry found for key

Please create an issue with your `schema.prisma` at
https://github.com/prisma/prisma/issues/new

    at handlePanic (/<...>/test/prisma/node_modules/prisma/build/index.js:100836:25)
    at ChildProcess.<anonymous> (/home/martin/dev/test/prisma/node_modules/prisma/build/index.js:100845:15)
    at ChildProcess.emit (events.js:400:28)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)

Rust Stacktrace:
Starting migration engine RPC server
Starting a sqlite connection.
[migration-engine/connectors/sql-migration-connector/src/sql_schema_differ/differ_database.rs:111:9] no entry found for key

Fixed in recent versions.


Remove prompt when there is only one build task

I only have one build task defined, but when I press Ctrl+Shift+B or "Run Build Task..." it prompts me to select from a list of one...

You can marks a task as the default build task then we don't prompt anymore. Run Tasks > Configure Default Build Task from the global menu.

Thanks - that does work, however I get a warning in the tasks.json, saying "Property group is not allowed"?

@Gruntfuggly this is strange. Can you post your tasks.json here.

{     // See https://go.microsoft.com/fwlink/?LinkId=733558     // for the documentation about the tasks.json format     "version": "0.1.0",     "runner": "terminal",     "tasks": [         {             "taskName": "buildme",             "command": "reset; docker exec -u whoami-itdocker ps | grep ivencs | cut -c1-12 bash -c \"cd ${workspaceRoot};. ~/workspace/init.sh; qmake CONFIG-=debug CONFIG+=nodebug CONFIG+=localemcs CONFIG+=extraDebug  && make -j 4 && qmake CONFIG+=localemcs ut/ut.pro -o Makefile.ut && make -j 4 -f Makefile.ut && ./ut/bin/debug/ut && qmake test/test.pro -o Makefile.test && make -j 4 -f Makefile.test\"",             "isShellCommand": true,             "isBuildCommand": true,             "showOutput": "always",             "problemMatcher": [                 {                     "owner": "cpp",                     "fileLocation": [                         "relative",                         "${workspaceRoot}"                     ],                     "pattern": {                         "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.+)$",                         "file": 1,                         "line": 2,                         "column": 3,                         "severity": 4,                         "message": 5                     }                 },                 {                     "owner": "cpp",                     "fileLocation": [                         "relative",                         "${workspaceRoot}"                     ],                     "pattern": {                         "regexp": "^(.*):(\\d+):\\s+(warning|error|note):\\s+(.*)$",                         "file": 1,                         "line": 2,                         "severity": 3,                         "message": 4                     }                 },                 {                     "owner": "ut",                     "fileLocation": [                         "relative",                         "${workspaceRoot}"                     ],                     "pattern": [                         {                             "regexp": "^(.*):(\\d+):\\s+(FAILED):",                             "file": 1,                             "line": 2,                             "code": 3                         },                         {                             "regexp": "\\s\\s(.*)",                             "message": 1                         }                     ]                 }             ],             "group": {                 "kind": "build",                 "isDefault": true             }         }     ] }

So I'm having the same issue... I have a single default build task and I'm getting prompted to chose from a list of one every time. The only time it doesn't prompt me is if I literally have the task as my active document. See my JSON below:
 {
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "typescript",
            "tsconfig": "tsconfig.json",
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

I can also get it to run without prompting if I close all open file editors. Any time one of my source files are open it prompts me to select the build task.

If I use the old task format everything builds fine so for now I'll just manually configure the task below for all new projects.
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "tsc",
    "isShellCommand": true,
    "args": ["-p", "."],
    "showOutput": "silent",
    "problemMatcher": "$tsc"
}

@Stevenic your problem is a dup of https://github.com/Microsoft/vscode/issues/31527.
@Gruntfuggly the new group property is only support for task version 2.0.0. I should handle this better when adding it through the action.

See https://github.com/Microsoft/vscode/issues/32083


EXE File not in the executable list to check if all uppercase

Hi!
In gameimage, when you get to the executable file list to select before packing, if the executable name is all uppercase ie. RUAN.EXE it will not show up in the list to choose. If it's renamed to ruan.exe or Ruan.exe then it shows and is selectable

Fixed, it was an issue with the regex not being case-insensitive. Thanks!


Remove teaclave patches as soon as v1.1.4 is released

Currently, a patch to a teaclave fork is needed to force mesalock libraries use the new teaclave version 1.1.4. These should be removes as soon as teaclave publishes it's new revison:
https://github.com/integritee-network/worker/blob/3fff25d00545a2d43e4c3b2df070656e24baca4c/enclave-runtime/Cargo.toml#L128-L139
&
https://github.com/integritee-network/worker/blob/3fff25d00545a2d43e4c3b2df070656e24baca4c/Cargo.toml#L50-L62
Additionally, all teaclave libraries pointing to branch = "v1.1.4-testing" should be changed to the official release.
https://github.com/integritee-network/worker/blob/3fff25d00545a2d43e4c3b2df070656e24baca4c/enclave-runtime/Cargo.toml#L27

v1.1.4 has been released: https://github.com/apache/incubator-teaclave-sgx-sdk/issues/360#issuecomment-979652553
So we can switch back to master branch. The patches can not yet be removed though - the mesalock libraries have not yet been updated. But maybe they should be updated to follow master branch.

Mesalock is still not updated...

We are now at version v1.1.6, and we have a similar problem, here I suspect we rather just migrate to teaclave-v2.0. 0soon.

Closing this in favor of https://github.com/integritee-network/worker/issues/1102.


Allow adding/renaming modules when the plugin is running (ie webpack hot-reload mode)

It should be possible to add/rename modules when the plugin is running. It could use jest-haste-map watch mode.

Closed by https://github.com/flegall/haste-map-webpack-resolver/commit/71c1fc9465c0adacba5d86395e30f6123109a779


Changing prefixed labels and text

I need to translate a few labels and text that is prefixed.
See image:

Is it possible? Did not get this function to work:
d3plus.viz()
.format({
"text": function(text, params) {
if (text === "Share") { return "StringOfYourLanguage"; } }})

duplicate of #653


Sentry Flutter 7.18.0 - flutterEngine.getPlugins().add(new io.sentry.flutter.SentryFlutterPlugin()); ERROR

Platform
Flutter Mobile
Obfuscation
Enabled
Debug Info
Enabled
Doctor
[√] Flutter (Channel stable, 3.19.3, on Microsoft Windows [Versi¢n 10.0.19045.4170], locale es-MX)
    • Flutter version 3.19.3 on channel stable at C:\src\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ba39319843 (12 days ago), 2024-03-07 15:22:21 -0600
    • Engine revision 2e4ba9c6fb
    • Dart version 3.3.1
    • DevTools version 2.31.1

[√] Windows Version (Installed version of Windows is version 10 or higher)

[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at C:\Users\...\AppData\Local\Android\Sdk
    • Platform android-34, build-tools 31.0.0
    • ANDROID_HOME = C:\Users\...\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.9.0)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.9.34607.119
    • Windows 10 SDK version 10.0.22621.0

[√] Android Studio (version 2021.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)

[√] VS Code (version unknown)
    • VS Code at C:\Users\...\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.84.0
    X Unable to determine VS Code version.

[√] Connected device (4 available)
    • HMA L09 (mobile)  • 123123123 • android-arm64  • Android 10 (API 29)
    • Windows (desktop) • windows          • windows-x64    • Microsoft Windows [Versi¢n 10.0.19045.4170]
    • Chrome (web)      • chrome           • web-javascript • Google Chrome 121.0.6167.187
    • Edge (web)        • edge             • web-javascript • Microsoft Edge 122.0.2365.52

[√] Network resources
    • All expected network resources are available.

• No issues found!

Version
7.18.0
Steps to Reproduce
Why with Sentry Flutter in the file GeneratedPluginRegistrant.java we have :
    try {
      flutterEngine.getPlugins().add(new io.sentry.flutter.SentryFlutterPlugin());
    } catch (Exception e) {
      Log.e(TAG, "Error registering plugin sentry_flutter, io.sentry.flutter.SentryFlutterPlugin", e);
    }

But with the package Sentry don't?
My pubspec.yaml is :
  sentry_dart_plugin: ^1.7.1
  sentry_flutter: ^7.18.0

sentry:
  upload_debug_symbols: true
  upload_source_maps: true
  upload_sources: true
  wait_for_processing: true
  project: ...
  org: ....
  auth_token: ...
  log_level: error

I already tried using :
flutter clean
flutter pub cache repair
flutter pub get
And nothing works!
Expected Result
Also i try to --obfuscate with symbols my APK and sent it to the Sentry but i doesn't work! But thats another error.
My main.dart is :
await Sentry.init(
    (options) {
      options.dsn = '';
      // Set tracesSampleRate to 1.0 to capture 100% of transactions for performance monitoring.
      // We recommend adjusting this value in production.
      options.tracesSampleRate = 1.0;

      // Set the tag environment mode
      if (foundation.kDebugMode) {
        options.environment = "debug;
        options.debug = true;
      }
      options.environment = "prod;
    },
    appRunner: () {
      runApp(
        const MyApp(),
      );
    },
  );

Actual Result
ote: C:\Users\...\AppData\Local\Pub\Cache\hosted\pub.dev\flutter_native_image-0.0.6+1\android\src\main\java\com\example\flutternativeimage\FlutterNativeImagePlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\Users\...\AppData\Local\Pub\Cache\hosted\pub.dev\open_file-3.3.2\android\src\main\java\com\crazecoder\openfile\OpenFilePlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
C:\Users\...\Documents\...\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java:69: error: cannot find symbol
      flutterEngine.getPlugins().add(new io.sentry.flutter.SentryFlutterPlugin());
                                                          ^
  symbol:   class SentryFlutterPlugin
  location: package io.sentry.flutter
1 error

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2m 23s
Running Gradle task 'assembleRelease'...                          144.6s
Gradle task assembleRelease failed with exit code 1

Are you willing to submit a PR?
None

Hi @kauzige
are you using sentry_flutter or sentry (dart) package in your project?
Also, if you are using sentry_flutter you should init it with SentryFlutter.init instead of Sentry.init

Hi @stefanosiano !
Sorry i didn’t change that but I’m using SentryFlutter, I changed to Sentry.init because I realized that in the package Sentry it works and I don’t have this error, but using as normally I do with SentryFlutter, it throws that error

Hi @stefanosiano !
Sorry i didn’t change that but I’m using SentryFlutter, I changed to Sentry.init because I realized that in the package Sentry it works and I don’t have this error, but using as normally I do with SentryFlutter, it throws that error

Hi @kauzige are you using sentry_flutter or sentry (dart) package in your project?
Also, if you are using sentry_flutter you should init it with SentryFlutter.init instead of Sentry.init

I don't undestand why it calls flutterEngine.getPlugins().add(new io.sentry.flutter.SentryFlutterPlugin()); ? Because that's the main reason that I can't create the APK

Ah ok, I understand.
The SentryFlutterPlugin is used by the Sentry Flutter SDK to communicate with the Sentry Android SDK (included in the Flutter SDK), in case of an Android application.
Doing so, we can instrument the native (Android) part of your Flutter app, capturing crashes happening in Java code, too.
Could you provide your full pubspec.yaml file, or a reproducible sample?
Adding the SDK to a new app just works, so probably there is something interfering with it in your configuration

This is weird. I have 2 projects, all settigs mostly similar. One compiles, other says
xxx\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java:54: error: cannot find symbol
      flutterEngine.getPlugins().add(new dev.fluttercommunity.plus.device_info.DeviceInfoPlusPlugin());
                                                                              ^
  symbol:   class DeviceInfoPlusPlugin
  location: package dev.fluttercommunity.plus.device_info
xxx\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java:164: error: cannot find symbol
      flutterEngine.getPlugins().add(new io.sentry.flutter.SentryFlutterPlugin());
                                                          ^
  symbol:   class SentryFlutterPlugin
  location: package io.sentry.flutter
2 errors

Unfortunately, I cannot share the projects.
I think it's may be related to Kotlin https://github.com/fluttercommunity/plus_plugins/issues/2245
Related: https://github.com/getsentry/sentry-dart/issues/1703
Using
  sentry: ^7.10.1
  sentry_flutter: ^7.10.1
  sentry_logging: ^7.10.1

buildscript {
    //https://kotlinlang.org/docs/gradle.html#targeting-multiple-platforms
    ext.kotlin_version = '1.9.0'
    repositories {
        google()
        mavenCentral()
        maven { url 'https://developer.huawei.com/repo/' }
    }

    dependencies {
		//https://developer.android.com/studio/releases/gradle-plugin
        classpath 'com.android.tools.build:gradle:8.1.1'
        classpath 'com.google.gms:google-services:4.3.15'
        classpath 'com.google.firebase:perf-plugin:1.4.2'
        //2.7.1 No value has been specified for property 'googleServicesResourceRoot'.
        //https://stackoverflow.com/questions/64276626/android-studio-4-0-2-gradle-error-no-value-has-been-specified-for-property-ena
        //Execution failed for task ':app:uploadCrashlyticsMappingFileRelease'.
        //> java.net.UnknownHostException: No such host is known (firebasecrashlyticssymbols.googleapis.com)
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.6'
        //https://documentation.onesignal.com/docs/huawei-sdk-setup
        //https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-apm-android-getstarted-0000001052887262
        //https://forums.developer.huawei.com/forumPortal/en/topic/0201726358681910005
        classpath 'com.huawei.agconnect:agcp:<IP_ADDRESS>0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.19.3, on Microsoft Windows [Version 10.0.19045.4170], locale de-DE)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Build Tools 2022 17.5.1)
[√] Android Studio (version 2023.1)
[√] VS Code (version 1.87.2)

compileSdkVersion 34

ndkVersion flutter.ndkVersion

compileOptions {
	sourceCompatibility JavaVersion.VERSION_1_8
	targetCompatibility JavaVersion.VERSION_1_8
}

kotlinOptions {
	jvmTarget = '1.8'
}

sourceSets {
	main.java.srcDirs += 'src/main/kotlin'
}

I had this happen as well, what helped was killing all Gradle daemons and deleting ~/.gradle/caches.

Wow! After 2 days of search, this actually did the job!
I deleted ~/.gradle/caches and now it works. Miracle!
Thank you very much @kuhnroyal !


Fix/anon operations

This PR

Cart for non-registered
Order for non-registered user

And

Add image to order
Add payment method contrareembolso user-
Get cart products from cart instead of parsing json

To run this branch it is necessary to run:
pip install -r requirements.txt

As new dependencies have been included

It would be nice to add some padding.


Add Redash repo.

This chart started life in a charts/stable repo PR but was adopted by the Redash organization and has since had several improvements and a recent 2.0.0 release. Corresponding upstream issue https://github.com/getredash/contrib-helm-chart/issues/4

@grugnog The Artifact Hub is live. You can also list your Helm repo there. To do that, you login (or create an account), and list your repository. You can link it to a user or organization.

@mattfarina thanks - I'll add it there too!


Backfilling normal and incident data with eventgen

I am using eventgen version 6.2.1 in Splunk. Currently, I am using two sets of stanza for generating normal and incident data without overlap by minuteOfHourRate so that the incident will happen every 10 minutes.
For some reason, I need to backfill one hour of data every time I startup Splunk. However, I found that either only the normal data or the incident data will be backfill in Splunk, depending on the time the Splunk starts. Is there any way I can generate the events so that it follows the pattern that every 10 minutes an incident will occur?
Below are my current configuration,
eventgen.conf
`[global]
disabled = false
debug = true
verbose = true
maxIntervalsBeforeFlush = 1
#####################################
######### Normal Sample #############
#####################################
[normal.sample]
mode = sample
interval = 10
sampletype = raw
index = test
earliest = now
latest = now
sourcetype = _json
minuteOfHourRate = { "0": 1, "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 0, "10": 0, "11": 0, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 0, "20": 0, "21": 0, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 0, "30": 0, "31": 0, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 0, "40": 0, "41": 0, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 0, "50": 0, "51": 0, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1 }
backfill = -1h
token.0.token = "time":(\d+)
token.0.replacementType = timestamp
token.0.replacement = %s
token.1.token = "temp":"(\d+).0"
token.1.replacementType = random
token.1.replacement = integer[25:28]
#####################################
######### Incident Sample ###########
#####################################
[incident.sample]
mode = sample
interval = 10
sampletype = raw
index = test
earliest = now
latest = now
sourcetype = _json
minuteOfHourRate = { "0": 0, "1": 0, "2": 0, "3": 0, "4": 0, "5": 0, "6": 0, "7": 0, "8": 0, "9": 1, "10": 1, "11": 1, "12": 0, "13": 0, "14": 0, "15": 0, "16": 0, "17": 0, "18": 0, "19": 1, "20": 1, "21": 1, "22": 0, "23": 0, "24": 0, "25": 0, "26": 0, "27": 0, "28": 0, "29": 1, "30": 1, "31": 1, "32": 0, "33": 0, "34": 0, "35": 0, "36": 0, "37": 0, "38": 0, "39": 1, "40": 1, "41": 1, "42": 0, "43": 0, "44": 0, "45": 0, "46": 0, "47": 0, "48": 0, "49": 1, "50": 1, "51": 1, "52": 0, "53": 0, "54": 0, "55": 0, "56": 0, "57": 0, "58": 0, "59": 0 }
backfill = -1h
token.0.token = "time":(\d+)
token.0.replacementType = timestamp
token.0.replacement = %s
token.1.token = "temp":"(\d+).0"
token.1.replacementType = random
token.1.replacement = integer[30:40]`
normal.sample
{"temp":"23.0","ip":"<IP_ADDRESS>","time":1528092000} {"temp":"23.0","ip":"<IP_ADDRESS>","time":1528092000}
incident.sample
{"temp":"23.0","ip":"<IP_ADDRESS>","time":1528092000} {"temp":"23.0","ip":"<IP_ADDRESS>","time":1528092000}

Backfill was broken in eg 6, and hopefully is fixed in 6.3, look for it soon!

Interval of 10 would mean 10 seconds interval :)

Is this still an issue?

Closing this, feel free to reopen if you still have a problem.


[SPARK-20532][SPARKR] Implement grouping and grouping_id

What changes were proposed in this pull request?
Adds R wrappers for:

o.a.s.sql.functions.grouping as o.a.s.sql.functions.is_grouping (to avoid shading base::grouping
o.a.s.sql.functions.grouping_id

How was this patch tested?
Existing unit tests, additional unit tests. check-cran.sh.

Test build #76294 has started for PR 17807 at commit 4f13b61.

Test build #76294 has finished for PR 17807 at commit 4f13b61.

This patch fails some tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/76294/
Test FAILed.

Test build #76296 has started for PR 17807 at commit 10fdaa5.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/76296/
Test FAILed.

Jenkins retest this please.

Test build #76299 has started for PR 17807 at commit 10fdaa5.

Test build #76299 has finished for PR 17807 at commit 10fdaa5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/76299/
Test PASSed.

Test build #76304 has started for PR 17807 at commit 93e1c10.

Test build #76304 has finished for PR 17807 at commit 93e1c10.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/76304/
Test PASSed.

Didn't we added something_col recently? I worry if the meaning diverge from the earlier case.
Also if grouping_id(a$col) == grouping(a$col) maybe we just need one, grouping_id is good enough?

Didn't we added something_col recently?

I don't think we did. There was itemsCol in fpGrowth, but it is not relevant here.  git grep "_col" | grep "\.R" shows only a bunch of _colors, _collections and _collected used for tests and examples.
is_grouping is probably not so fortunate choice, because if column is used for grouping, it is set to 0.

Also if grouping_id(a$col) == grouping(a$col) maybe we just need one, grouping_id is good enough?

This is certainly a good point, but we won't get away with it. I don't know if is standard or not but grouping_id(...) has to match groupBy(df,  ....).
Luckily we don't have to worry about group_id :)

right, there's a bunch of *Col in ml. I think people would associate col to a reference to a/another column in the dataframe
I do see your point about is_grouping, and also that grouping_id is not a substitute. It is unfortunate R's grouping is conflicting with this. I'm not sure if I have a good name suggestion. We in occasion have workaround issue like this - since this is S3 method we could add a generic etc to route the call to get it to be compatible. do think in this case it is worthwhile to do though?

What happens if we just mask base::grouping? It is just a gut feeling but I don't think it is the most widely used function ever. I doubt I ever used it in my own code, and cannot recall seeing it anywhere else.
We won't brake any packages, and accessing base version via it's full qualified name will work just fine. And it won't be the the first function we mask.

I understanding what you are saying and for frequent R users this might not really be a big issue, so far we are taking the view of avoiding masking any inconvenience, if we if at all could.
Ideally, I'd prefer to eliminate any conflict with cov, filter, and sample as well.
This is what I'm referring to re: the workaround for drop. If the signature isn't too strange or different, we should try to export a generic + stub that makes the base:: function still callable without a namespace prefix.
From a quick check I think what we have for drop could apply to grouping as well - would you like to give it a shot?

I thought about it before, but there are two or three problems:

base::grouping has ... signature so it is not possible without changing behavior or adding nullary variant.
It makes impossible to add SparkR::grouping which accepts characterOrColumn (and this something that we should do to achieve consistent API).
Finally it won't  work that well if we decide to use some form of NSE.

There can be some other problems I am not aware of.
In general I fully agree that we should avoid conflicts when possible, but I am skeptical about dispatching hacks, which in some border cases could actually brake user code.
There are some other options we can explore:

Adding common prefix like sql.some_name - a bit to verbose for my taste.
Using _ suffix. This is fine but can be confusing for advanced user who may expect standard vs. non standard evaluation.

I trust your judgment so if you think that generic option is the best I'll go with it.

Test build #76330 has started for PR 17807 at commit abee444.

Test build #76330 has finished for PR 17807 at commit abee444.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/76330/
Test PASSed.

Merged build finished. Test PASSed.

To keep this option open https://github.com/zero323/spark/commit/a67c77e7bdf40ea40807e9d984975c04738d327d

yea, I agree it's not ideal and I'm not in favor of dispatch hacking either.
I think the latest you have is reasonable... but as you say, perhaps this isn't worthwhile to iterate that much with. Either that or what if we name this something else, like perhaps grouping_bit to distinguish with grouping_id?

strange error with AppVeyor..

strange error with AppVeyor..

Indeed strange. tempfile conflict is not likely, is it?

What I like about masking is that is relatively explicit:
> library(SparkR)

Attaching package: ‘SparkR’

The following objects are masked from ‘package:stats’:

    cov, filter, lag, na.omit, predict, sd, var, window

The following objects are masked from ‘package:base’:

    as.data.frame, colnames, colnames<-, drop, endsWith, grouping,
    intersect, rank, rbind, sample, startsWith, subset, summary,
    transform, union

When we use generic tricks things get fuzzy. Like drop above. Is it masked? Based on what I see above I would expect it is.
While grouping is probably of the least concern, I think this is actually an important discussion.

I'm not sure there is one rule for this - we would need to look at it on a case-by-case basis. Generally we should try to avoid conflict, because it is inconvenient and breaks any existing code users might have.
The "masked" message unfortunately isn't that accurate either - in reality, we only masked 3 methods (and we have to document them and so on) and not the 23 listed there. For many, there isn't any hack - just the mere act of adding a generic is triggering inclusion in this message, and in which case nothing is "wrong" - say, predict for example. That's why we have tests here and here to make sure it is not broken.

Don't take away my hope :)
i think that grouping_bitis OK. It is descriptive, doesn't introduce generic _col and we can avoid masking. I'll resolve the conflicts and update PR in a moment.

Test build #76340 has started for PR 17807 at commit b4cccd9.

let's just say, happy to discuss :)

Test build #76340 has finished for PR 17807 at commit b4cccd9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/76340/
Test PASSed.

merged to master, thanks!


Gradle Build issue

Hello, I've try  gradle build
and get this result on a Mac OS Ventura 13 , openjdk 11, any idea of what's wrong ?
FAILURE: Build failed with an exception.

What went wrong:
Could not determine the dependencies of task ':distTar'.

Could not resolve all dependencies for configuration ':runtimeClasspath'.
Failed to calculate the value of task ':compileJava' property 'javaCompiler'.
No matching toolchains found for requested specification: {languageVersion=17, vendor=any, implementation=vendor-specific}.
No locally installed toolchains match (see https://docs.gradle.org/8.0.1/userguide/toolchains.html#sec:auto_detection) and toolchain download repositories have not been configured (see https://docs.gradle.org/8.0.1/userguide/toolchains.html#sub:download_repositories).

Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 558ms

Java 11 is not supported (a lot of cryptography from JDK 15 is required for example), please update to the latest LTS version (JDK 17.0.6) or the newest version (19.0.2 or 20 GA).
You can download a modern JDK like Eclipe Temurin here https://adoptium.net/temurin/releases/?version=17 (select Operating System macOS).


Added new pulgin for "findViewById"

A plugin for android developer, with the plugin you can generate "findViewById" code quickly.

Thanks for sharing. I guess "http://jaeger.itscoder.com/android/2015/11/27/find-view-by-me.html" link will be also fine.

Ya its fine but links may be dead any time achieve likes more relabel and its in other language so i have put translated link

Thank you @milaptank for sharing links.


helm-omni freezes periodically

Session can be recovered with C-g, however the helm session is lost in the process.

This appears to be related to fuzzy sorting in helm-locate.


Software Users and Owners

Could we come up with a definite list of all the software and apps we use, and who the owner (or equivalent) is. Andrew Isaac should always be the owner and if we can add more than one, then we add Matt Howley too .
We had an issue with Sentry where the admin was a leaver from 2 years ago that couldn't be removed/updated and resulted in us loosing access because our payment card expired

@warrensearle  and @tomlovesgithub can u review the document and comment on the document so we can close this off

https://drive.google.com/drive/folders/1R7XF1fecakMDNR7ZIftSlnu0F5NbUwh7

@warrensearle and @tomlovesgithub can u review the document and comment on the document so we can close this off

Sure, have added @tomlovesgithub and @warrensearle as assignees so it's on our radar as there are a few more to add in

I've added a few more and we can keep the sheet updated now it is in a shared location.
@andrew-isaac there are a couple of actions for you. When they're done we can close this ticket

[ ] @warrensearle Place a link to the spreadsheet on our documentation site


Update _WD_Capabilities

Pull request
Proposed changes

Wrap keys in double quotes to avoid truncation
Add webSocketUrl to $_WD_KEYS__STANDARD_PRIMITIVE

Checklist
Put an x in the boxes that apply. If you're unsure about any of them, don't hesitate to ask. We are here to help!
This is simply a reminder of what we are going to look for before merging your code.

[x] I have read and noticed the CODE OF CONDUCT document
[x] I have read and noticed the CONTRIBUTING document
[ ] I have added necessary documentation or screenshots (if appropriate)

Types of changes
Please check x the type of change your PR introduces:

[x] Bugfix (change which fixes an issue)
[x] Feature (change which adds functionality)
[ ] Code style update (formatting, renaming)
[ ] Refactoring (functional, structural)
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?
When $s_Notation = [capabilities][alwaysMatch][moz:debuggerAddress], the portion following the colon gets truncated
_WD_CapabilitiesAdd: #177 :      $key = moz:debuggerAddress     $value1 = True     $value2 =
_WD_CapabilitiesAdd: #217 #273 :      $key = moz:debuggerAddress     $value1 = True     $value2 =     $s_Notation = [capabilities][alwaysMatch][moz:debuggerAddress]   <<<<  True
_WD_CapabilitiesAdd ==> Success [0] : Successfully added capability

+-> .capabilities.alwaysMatch.browserName  =firefox
+-> .capabilities.alwaysMatch.acceptInsecureCerts  =True
+-> .capabilities.alwaysMatch.webSocketUrl  =True
+-> .capabilities.alwaysMatch.moz  =True

_WD_CapabilitiesDump: JSON structure starts below: 21
{
    "capabilities":{
        "alwaysMatch":{
            "browserName":"firefox",
            "acceptInsecureCerts":true,
            "webSocketUrl":true,
            "moz":true
        }
    }
}

What is the new behavior?
No truncation occurs when $s_Notation = [capabilities][alwaysMatch]["moz:debuggerAddress"].
_WD_CapabilitiesAdd: #177 :      $key = moz:debuggerAddress     $value1 = True     $value2 =
_WD_CapabilitiesAdd: #217 #273 :      $key = moz:debuggerAddress     $value1 = True     $value2 =     $s_Notation = [capabilities][alwaysMatch]["moz:debuggerAddress"]   <<<<  True
_WD_CapabilitiesAdd ==> Success [0] : Successfully added capability

+-> .capabilities.alwaysMatch.browserName  =firefox
+-> .capabilities.alwaysMatch.acceptInsecureCerts  =True
+-> .capabilities.alwaysMatch.webSocketUrl  =True
+-> .capabilities.alwaysMatch.moz:debuggerAddress  =True

_WD_CapabilitiesDump: JSON structure starts below: 21
{
    "capabilities":{
        "alwaysMatch":{
            "browserName":"firefox",
            "acceptInsecureCerts":true,
            "webSocketUrl":true,
            "moz:debuggerAddress":true
        }
    }
}

Additional context
Add any other context about the problem here.
System under test
Please complete the following information.

OS: [e.g. Windows 10]
OS Arch.: [e.g. X64]
Browser [e.g. firefox]
Browser version [e.g. 96.0.3]

@mlipok Please review

ASAP

I was wondering why moz:firefoxOptions works.
And I found that the same solution as you provide in this PR was previously done by me:
$_WD_NOTATION__SPECIFICVENDOR = '["' & $_WD_SupportedBrowsers[$iIndex][$_WD_BROWSER_OptionsKey] & '"]'

Only that I just did not take into account that other KEYS may also require such a procedure.
Thanks for fixing this error.
btw.
you should also modify
; Modified ......: Danp2

as a side note.... works well ;)
Can be merged.


pagination

Integrate Pagination functionality
Edit pagination styling
Add a back-to-beginning button to pagination

Overview
This PR includes the following proposed change(s):

{List all the changes, if possible add the linked issue/ticket #}
#2191
Created simple pagination for record set tables with next page, prev page and start page buttons

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Refactoring / Documentation
[ ] Version change

if your change is a breaking change, please add breaking change label to this PR
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.

tested manually by clicking new buttons and verifying the results on datasets with more than one page available

Screenshots
Please add any relevant UI screenshots if applicable.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation
[ ] New and existing unit tests pass locally with my changes

Bumps in to other branches a bit, didn't want to take a chance at just guessing.  Will let you update the branch and retest.


Update UI using latest version of Bootstrap Elements

Revamp the project with latest version of Bootstrap CSS Framework.
Use Bootstrap Components throughout the site, leaving the JS as it is.
Add your name in footer by updating the designed by section.

This PR is a good starting point https://github.com/prabhuomkar/json-coder/pull/26

@prabhuomkar could you assign this one to me ?

Yeah you can take it


Chainable Actions

Removing the distinction between Interaction and Action is worthwhile as it will allow actions to compose far easier. With the presence of Defaults to pass through 'the last Simulator we called' chains with booting and listening become easy:
fbsimct create 'iPhone 5' boot --direct-launch --record-video listen --http 8090 shutdown diagnose
This will create then boot a simulator, recording the Framebuffer's video, then listen on port 8090. When a SIGTERM is sent to the process, it will shutdown and print out the logs.
This should also make it a bit easier to write help.

@facebook-github-bot shipit


[distributed][Tensor Parallelism] Implement Column-wise Linear

this implements a trace transform that converts one or more linear layers into column-wise tensor parallel ones by (1) sharding their weight and bias and (2) inserting needed communication after the modified linear layers.

example
class Model(nn.Module):
    def __init__(self, n_in: int, n_hidden: int, n_out: int) -> None:
        self.l1 = nn.Linear(n_in, n_hidden)
        self.l2 = nn.Linear(n_hidden, n_out)

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        return self.l2(F.gelu(self.l1(x))

device = torch.device(f"cuda:{rank}")

model = Model().to(device)
jitted_model = thunder.jit(model)
colwise_jitted_model = thunder.distributed.convert_module_to_columnwise_parallel(jitted_model, ("l1", "l2"))

x = torch.randn(..., device=device)
y = colwise_jitted_model(x)
assert y.size(1) == n_out

cc @borda @apaz-cli @carmocca @awaelchli @crcrpar

The failures as of https://github.com/Lightning-AI/lightning-thunder/commit/f724a886639bc616c93879435efcbbeb4c8ac2fe look related to https://github.com/Lightning-AI/lightning-thunder/issues/432.


Don't query for available topics in list views

Right now the topics available for adding as parents to a topic or link are included in the main query behind the lists of topics and links.  This should be moved below a new QueryRenderer so that we're not doing unnecessary querying.

Fixed with https://github.com/emwalker/digraph/commit/0ff577656d976b3fb55548161127e41c241e1fb9.


Strange Issue with Maximum and Minimum Year Range

If i choose the year and scroll down to year 2050 after selecting it, the month shows wrong year...
I change the maximum year to 2036 and it works ok but the same thing happens if i choose year below 1902.
Why is this happening ?
Also when i set for a date the month has a one number down difference.  try to choose March of 2015. it returns 02 of 2015 and not 03.

Hi, the month number is by design. The standard datepicker in Android uses zero based indexing for the month. I decided to stick to that convention, to keep the API similar.
Do you have screenshots of the first issue? I can't seem to reproduce it here.

So for the month we are ok since Android uses zero based indexing.
As for the second issue
Steps to reproduce.

Tap Year
Scroll down to year 2050
Notice the year below in the Calendar

it goes like this until year 2036. The same goes also if i choose year below 1902.
The issue seams to appear in Jellybean 4.1.1 since i tested in  4.4.4  and it works fine

It looks like this is a bug in the underlying system libraries.
Time is represented as a long: the number of milliseconds since the epoch, which somewhere in the 1970s. Dates before that are negative. It looks like the internal representation overflows and wraps around.
I'll see if I can find some bug reports on this and figure out in which version of android this could have been fixed.
I cannot reproduce it on Android 4.4

Yes in Android 4.4 and above it seems to work fine.

The picker in the android calendar app (on which this one is based), just limits the year selection to the range where the rendering actually works (1970 - 2036).
You can use the setMinDate(Calendar c)and setMaxDate(Calendar c) values to accomplish this.
I'm going to close this as a wontfix for the moment, but feel free to re-open it if you've found a good solution.


[#3430] improvement(hdfs):  Add a docker kerberosized ci image to test kerberos authentication

What changes were proposed in this pull request?
Add a docker kerberosized ci image.
Why are the changes needed?
We need this image to test kerberos authentication for HDFS.
Fix: #3430
Does this PR introduce any user-facing change?
N/A.
How was this patch tested?
Test locally, IT test in the next PR will confirm it.

Shall we have a kerberized hdfs or we add HMS also?

Shall we have a kerberized hdfs or we add HMS also?

As the version of HDFS in HMS and HDFS clusters is not the same( v2.6 & v3.1), I'm afraid that we cannot merge them and both are necessary. For the kerberized HMS, @qqqttt123 has prepared a draft PR for it.

Why do we choose Hadoop 3.1 rather than Hadoop 2.6?

The version of Hadoop in Hadoop-catalog is 3.1, so I created a Hadoop 3 cluster to test its functionality. I'm not completely sure Hadoop 2.6 is suitable for this module.

@qqqttt123
Would you like to take another look at the document?

Another thing is that you still need to have a kerberized image for Hive, so this will be a duplicated work because you need to do it again when you test hive catalog with Keberos enabled.

Another thing is that you still need to have a kerberized image for Hive, so this will be a duplicated work because you need to do it again when you test hive catalog with Keberos enabled.

The question is: whether we need to provide a different version of HDFS such as Hadoop 3 for the Hadoop catalog, if this is unnecessary, I think @qqqttt123 should move forward https://github.com/datastrato/gravitino/pull/2364 and I can reused it.

whether we need to provide a different version of HDFS such as Hadoop 3 for the Hadoop catalog
It's not necessary to have a separate image for Hadoop catalog. I've already used Hive image for IT, we can reuse it for kerberos enabled test.

I think @qqqttt123 should move forward https://github.com/datastrato/gravitino/pull/2364 and I can reused it.
I don't think @qqqttt123 has enough time to do so. It would be good if you can continue on his work.

This is not needed, right? @yuqi1129 can you please close this PR?

This is not needed, right? @yuqi1129 can you please close this PR?

Yeah, I will close it.

It's not necessary as #2368 has been merged.


alias for rset and rpc to be more clear

rset and rpc are confusingly named I suggest a better name for them
net_call()
net_set()
mayber a net_get() as well?

Linking to tracker: #16863
Keep in mind that multiplayer does not need to be over a network. For example, you might have multiplayer over bluetooth. Should the functions be called blue_call and blue_set then?
net_get is probably a bad idea, as it would have a high latency before the response is received, while being mostly useless in both server-authoritative and peer-to-peer games.

remote_call() / remote_set?

I like Zylann's idea
whatever to make them more clear.

Closing in favor of #16863.


Carousel Generator not importing json files

Description: I am having trouble importing a JSON file into my project. The current implementation and proposed solutions for file import are not working as expected, and I keep encountering errors.
Details:
Error: I consistently receive errors like:

ZodError: Expected array, received object

I have tried wrapping the JSON data in an array as suggested, but this has not resolved the issue.

Steps to Reproduce:
I am using a file input to import a JSON file into the application.
The JSON structure follows the schema defined in the project, but I get Zod validation errors.

What I've Tried:
Wrapping the JSON content in an array.
Ensuring that the JSON structure matches the Zod schema (checked brand, theme, fonts, pageNumber fields).

Expected Behavior: The JSON file should be parsed correctly, and the imported data should match the defined Zod schema.
Actual Behavior: The JSON fails validation, showing Zod errors that indicate the schema expects an array, but the input is being recognized as an object, despite the JSON structure being correctly formatted.
JSON File Example: Here is an example of the JSON structure I am using:
json
[
{
"brand": {
"avatar": {
"type": "Image",
"source": {
"type": "UPLOAD",
"src": "https://example.com/avatar.png"
},
"style": {
"opacity": 100
}
},
"name": "Example Brand",
"handle": "@examplehandle"
},
"theme": {
"primaryColor": "#ff0000",
"secondaryColor": "#00ff00",
"backgroundColor": "#ffffff",
"isCustom": true,
"palette": "custom-palette"
},
"fonts": {
"bodyFont": "Arial",
"headingFont": "Helvetica"
},
"pageNumber": {
"showPageNumber": true,
"position": "bottom-right"
}
}
]
Request: Could you help me understand what might be causing the import to fail, and provide guidance on the correct way to import JSON data into the application? Any further insights or suggestions for troubleshooting this issue would be appreciated.
Thanks

Hi @FranciscoMoretti,
Thank you for your feedback.
I tried to use the default schema and the error persists (please have a look at the screenshot below).

May this be due to the errors I came across upon installing npm?
npm error code ERESOLVE
npm error ERESOLVE unable to resolve dependency tree
npm error
npm error While resolving<EMAIL_ADDRESS>npm error Found<EMAIL_ADDRESS>npm error node_modules/tailwindcss
npm error<EMAIL_ADDRESS>from the root project
npm error
npm error Could not resolve dependency:
npm error peer<EMAIL_ADDRESS>|| insiders" from<EMAIL_ADDRESS>npm error node_modules/tailwindcss-animate
npm error<EMAIL_ADDRESS>from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error C:\Users\Utente\AppData\Local\npm-cache_logs\2024-09-27T10_52_11_597Z-eresolve-report.txt
Then I ran npm install --force and apparently it worked, The json file cannot be imported though,
Thanks again for your help.
Francessco

It seems you are trying to "Import content" instead of settings.
In that case, you can start by exporting the content.
https://github.com/user-attachments/assets/81e9c185-b68a-4c8b-9218-01a53ab3c928
Additionally, you can use the deployed address to verify if this is an error with your installation or with the project https://carouselgenerator.vercel.app/
I'm taking a look into supporting npm without errors

I simplified dependencies a bit and pushed an update. You should be able to install with npm without needing to use the --force flag

@FranciscoMoretti
apologies for bothering again.
There seems to be a minor bug upon downloading the carousel file. The default file can be dowloaded without issues. When I try to download my own though, it does not work.
Thank you having a look at it and letting me know.
francesco


Infinite redirect loop with basic docker setup

Been trying to play with keycloak + proxy in docker and am running into this snag :/
Here's my docker-compose.yml
version: '3'

networks:
  keycloak-network:

services:

  keycloak:
    image: jboss/keycloak
    container_name: keycloak
    restart: unless-stopped
    depends_on:
      - postgres
    networks:
      - keycloak-network
    links:
      - postgres
    ports:
      - "7080:8080"
    environment:
      PROXY_ADDRESS_FORWARDING: "true"
      KEYCLOAK_USER: "admin"
      KEYCLOAK_PASSWORD: "admin"

      POSTGRES_DATABASE: "keycloak"
      POSTGRES_USER: "keycloak"
      POSTGRES_PASSWORD: "password"
      POSTGRES_PORT_5432_TCP_ADDR: "postgres"
      POSTGRES_PORT_5432_TCP_PORT: 5432

  postgres:
    image: postgres:9.6-alpine
    container_name: keycloak_postgres
    restart: unless-stopped
    networks:
      - keycloak-network
    volumes:
      - ./keycloak-postgres-data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: "keycloak"
      POSTGRES_USER: "keycloak"
      POSTGRES_PASSWORD: "password"

  keycloak-proxy:
    image: quay.io/gambol99/keycloak-proxy
    container_name: keycloak-proxy
    depends_on:
      - keycloak
    networks:
      - keycloak-network
    ports:
     - "6080:80"
     - "6443:6443"
    volumes:
     - ./config.yml:/opt/config.yml:ro
     - ./ssl:/ssl:ro
    entrypoint: ["/opt/keycloak-proxy", "--config", "/opt/config.yml"]

Here's my config.yml that's fed into ketcloak-proxy:
verbose: true
secure-cookie: false

discovery-url: http://server:7080/auth/realms/master
listen: <IP_ADDRESS>:80
#redirection-url: http://<IP_ADDRESS>:80
upstream-url: http://<IP_ADDRESS>:80

client-id: testClient
client-secret: testClient

resources:
- uri: /status-devices.asp

Here's the successful startup of keycloak-proxy:
keycloak-proxy    | 1.5172872957784212e+09      info    keycloak-proxy/server.go:644    successfully retrieved openid configuration from the discovery
keycloak-proxy    | 1.5172872957902608e+09      info    keycloak-proxy/server.go:151    enabled reverse proxy mode, upstream url        {"url": "http://<IP_ADDRESS>:80"}
keycloak-proxy    | 1.5172872957905526e+09      info    keycloak-proxy/server.go:224    protecting resource     {"resource": "uri: /status-devices.asp, methods: DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE, required: authentication only"}
keycloak-proxy    | 1.517287295790631e+09       warn    keycloak-proxy/server.go:243    no redirection url has been set, will use host headers
keycloak-proxy    | 1.5172872957913888e+09      info    keycloak-proxy/server.go:345    keycloak proxy service starting {"interface": "<IP_ADDRESS>:80"}

I hit the upstream URL at / and i'm allowed in without auth (as expected)
I hit the /status-devices.asp page, get the login page, log in and then I get
keycloak-proxy    | 1.5172873101173725e+09      error   keycloak-proxy/middleware.go:110        no session found in request, redirecting for authorization      {"error": "malformed JWS, only 1 segments"}
keycloak-proxy    | 1.5172873101296835e+09      debug   keycloak-proxy/handlers.go:80   incoming authorization request from client address      {"access_type": "", "auth_url": "http://server:7080/auth/realms/master/protocol/openid-connect/auth?client_id=testClient&redirect_uri=http%3A%2F%2Fserver%3A6080%2Foauth%2Fcallback&response_type=code&scope=openid+email+profile&state=L3N0YXR1cy1kZXZpY2VzLmFzcA%3D%3D", "client_ip": "<IP_ADDRESS>:52206"}
keycloak-proxy    | 1.5172873151822534e+09      info    keycloak-proxy/handlers.go:159  issuing access token for user   {"email": "", "expires": "2018-01-30T04:42:55Z", "duration": "59.817748704s"}
keycloak-proxy    | 1.5172873151894944e+09      error   keycloak-proxy/middleware.go:110        no session found in request, redirecting for authorization      {"error": "malformed JWS, only 1 segments"}
keycloak-proxy    | 1.5172873151966324e+09      debug   keycloak-proxy/handlers.go:80   incoming authorization request from client address      {"access_type": "", "auth_url": "http://server:7080/auth/realms/master/protocol/openid-connect/auth?client_id=testClient&redirect_uri=http%3A%2F%2Fserver%3A6080%2Foauth%2Fcallback&response_type=code&scope=openid+email+profile&state=L3N0YXR1cy1kZXZpY2VzLmFzcA%3D%3D", "client_ip": "<IP_ADDRESS>:52206"}
keycloak-proxy    | 1.517287315302124e+09       info    keycloak-proxy/handlers.go:159  issuing access token for user   {"email": "", "expires": "2018-01-30T04:42:55Z", "duration": "59.697879001s"}
keycloak-proxy    | 1.5172873153103437e+09      error   keycloak-proxy/middleware.go:110        no session found in request, redirecting for authorization      {"error": "malformed JWS, only 1 segments"}
keycloak-proxy    | 1.517287315317877e+09       debug   keycloak-proxy/handlers.go:80   incoming authorization request from client address      {"access_type": "", "auth_url": "http://server:7080/auth/realms/master/protocol/openid-connect/auth?client_id=testClient&redirect_uri=http%3A%2F%2Fserver%3A6080%2Foauth%2Fcallback&response_type=code&scope=openid+email+profile&state=L3N0YXR1cy1kZXZpY2VzLmFzcA%3D%3D", "client_ip": "<IP_ADDRESS>:52206"}
keycloak-proxy    | 1.517287315411422e+09       info    keycloak-proxy/handlers.go:159  issuing access token for user   {"email": "", "expires": "2018-01-30T04:42:55Z", "duration": "59.58858209s"}
keycloak-proxy    | 1.5172873154191618e+09      error   keycloak-proxy/middleware.go:110        no session found in request, redirecting for authorization      {"error": "malformed JWS, only 1 segments"}
keycloak-proxy    | 1.5172873154266746e+09      debug   keycloak-proxy/handlers.go:80   incoming authorization request from client address      {"access_type": "", "auth_url": "http://server:7080/auth/realms/master/protocol/openid-connect/auth?client_id=testClient&redirect_uri=http%3A%2F%2Fserver%3A6080%2Foauth%2Fcallback&response_type=code&scope=openid+email+profile&state=L3N0YXR1cy1kZXZpY2VzLmFzcA%3D%3D", "client_ip": "<IP_ADDRESS>:52206"}
keycloak-proxy    | 1.517287315558797e+09       info    keycloak-proxy/handlers.go:159  issuing access token for user   {"email": "", "expires": "2018-01-30T04:42:55Z", "duration": "59.441209006s"}
keycloak-proxy    | 1.5172873155667815e+09      error   keycloak-proxy/middleware.go:110        no session found in request, redirecting for authorization      {"error": "malformed JWS, only 1 segments"}
keycloak-proxy    | 1.517287315572625e+09       debug   keycloak-proxy/handlers.go:80   incoming authorization request from client address      {"access_type": "", "auth_url": "http://server:7080/auth/realms/master/protocol/openid-connect/auth?client_id=testClient&redirect_uri=http%3A%2F%2Fserver%3A6080%2Foauth%2Fcallback&response_type=code&scope=openid+email+profile&state=L3N0YXR1cy1kZXZpY2VzLmFzcA%3D%3D", "client_ip": "<IP_ADDRESS>:52206"}
keycloak-proxy    | 1.517287315670206e+09       info    keycloak-proxy/handlers.go:159  issuing access token for user   {"email": "", "expires": "2018-01-30T04:42:55Z", "duration": "59.329799003s"}
keycloak-proxy    | 1.5172873156792266e+09      error   keycloak-proxy/middleware.go:110        no session found in request, redirecting for authorization      {"error": "malformed JWS, only 1 segments"}
keycloak-proxy    | 1.5172873156860926e+09      debug   keycloak-proxy/handlers.go:80   incoming authorization request from client address      {"access_type": "", "auth_url": "http://server:7080/auth/realms/master/protocol/openid-connect/auth?client_id=testClient&redirect_uri=http%3A%2F%2Fserver%3A6080%2Foauth%2Fcallback&response_type=code&scope=openid+email+profile&state=L3N0YXR1cy1kZXZpY2VzLmFzcA%3D%3D", "client_ip": "<IP_ADDRESS>:52206"}

At which point the browser gives up.
Yes, secure-cookie was set to false.

Forgot to mention this happens for a custom client, not the main admin site on the master realm.
Also, my testClient type is public vs confidential hence the same secret per keycloak docs. I tried confidential with the guid password and it made no difference.
I will look closer at the keycloak configuration of testClient to see if something there is causing an issue

I think I figured out my issue.
I didn't realize that an upstream site which had its own basic auth would mangle the keycloak negotation. Furthermore, to get an upstream without any auth to work, I had to clear my browser cache.
Looking at the code, it appears we look at the authorization header first, before attempting to look for the kc-access cookie.
https://github.com/gambol99/keycloak-proxy/blob/5fc685aaeb22cac18f78f16a0486a2c8358282f8/session.go#L74
I think my case with an upstream basic auth and perhaps other would be solved if we looked for the cookie first.
Can we do that? Any reason why we look for the Authorization header first?

getTokenInBearer also should not affect headers with Authorization: Basic when only Bearer authentication is intercepted. This issue makes it impossible to use graylog in combination with keycloak-proxy. Graylog gets an API token for it's own REST API and transmitted it to the REST API in 'Authorization: Basic ' to all requests ending with /api/. The keycloak-proxy then erroneously consumes the Authorization header, which bricks the API communication from the single-page application.

@danbo thanks for taking your time reporting this. The repository keycloak-proxy was moved to Keycloak organization and renamed to keycloak-gatekeeper. If you still think this issue is valid, please read https://www.keycloak.org/community.html and report your bug/feature request to https://issues.jboss.org/browse/KEYCLOAK.


Add support for off-the-record (incognito) mode

This commit adds a new browser context to WolvicMainParts that could be used for off-the-record browsing. Tabs got a new parametter on creation that specifies whether or not to use an off-the-record browsing context.

Wolvic part implemented here https://github.com/Igalia/wolvic/pull/986

Can be tested using this demo for example


ability to specify cache-control header in config

Ability to tell what cache-control header we want the assets loaded with
This will solve the issue https://github.com/rails/propshaft/issues/90
Solution proposed by @dhh  in issue 94 :

two things here:
1. no-cache header
no-cache works but maybe no-store  is more what we want (source)

... I don't mind either
2. this could be simpler?
I'm not sure if I didn't overkill this. Maybe something simpler would be enough eg:
# lib/propshaft/server.rb
       {
          #...
          "cache-control"   => Rails.development? ? 'no-store' : "public, max-age=31536000, immutable"
       }

...let me know I can simplify it

🤔 wait a minute, now I'm re-reading @brenogazzola comment

...hmm I'm not sure about the prod but this solved the dev isuue 🤔

Video looks a bit strange to me. The digest of application.css did not change, which means the @include "my-custom.css" should still be pointing to 8ffbe1. So how did the browser know it had to fetch f4b376 after refresh?

Sorry for the late reply @brenogazzola , I'm in  middle of Job search, those damn tech interview keep me busy :)
Ok took me a while to realise what's happening:

yes application-xxxxxxxx.css digest don't change
yes I agree theoretically it should (as digest is calculated from content and @import url('/my-custom.css'); is translated to @import url('/my-custom-mmmmmmm.css'); = application.css content changed so it should be  application-yyyyyy.css ... but it's not!)

To see what I mean please watch https://youtu.be/cqQHyJj7few

one more thing - during testing the above I've stumbled upon an edegecase:
My PR proposes the no-store header by default for Development env(therefor no such issue as #90) 👍.
If a developer switch the non-cache header to any form of cache header and then switch back to no-store again, his/her browser will be stuck at old cache.
To see this in action pls watch https://youtu.be/3nmCubctHuk

Given on cache header browser will cache the old application-xxxxx.css
When I switch to no-store header browser still cache the old application-xxxxx.css
Therefore it will not pick up the fact the my-custom.css has a new digest
conclusion:

My PR works  👍
My PR solves #90 issue in development (tat means first time users will not have that issue as Development env fixed by default) 👍
If someone tries to test if cache works, they need to clear the browser cache or do a change in application.css (so new digest appears for application-yyyy.css) 😕

:muscle: I can confirm this fixes the problem. And yes, I had to wipe the cache locally first to get this change effective.

how come the digest of application-xxxxxxxx.css didn't change ? 🤷♂ my guess is that the digest of application.css is calculated on a file content before content gets digested (before my-custom.css turns to my-custom-nnnnnn.css

I'm a bit worried about this part. Yes, you are right, parent digest is calculated on the original content, not the one that was changed with the digest of the children imports.
This means this solution will give you a false impression that everything is working because in the development you are seeing the changes. But when you push to production, anyone who had already fetched the parent file (eg: your CDN which is sending the files to your users) will not fetch again it again, since its digest did not change and they think it's the same file.
This means that if you are using new classes that were added to the children files, your site is now broken (at least visually).
The only feasible solution I see is one that ensures that parent digest changes when children digest change

We need to fix this at the root. The no-cache setup isn't going to work for production either. Need to invalidate files when their dependencies have changed. There are several open approaches for that, so exploring those.


Translation to Brazilian Portuguese

I've created a translation of the guidelines for Brazilian Portuguese. I'm adding it to my fork of the repo. Furthermore, I've removed extra blank lines before two of the headers and made the title of the "Return and break early" header the same size as the others. Please accept. :)

Thanks!