feat(webhook-datasource): add enabling of Cloud pubsub API (SSPROD-45515)

@SKosier I understand the idea here to auto enable the apis needed for CDR. We already have a different way we want to do this in Modular install : https://www.figma.com/design/Ew1XcXFjr5ipwqx30TY2gN/D1456---Modular-Onboarding?node-id=6072-251832&node-type=SECTION&t=DByL7dyOSfVEmuEW-0
Basically as a separate step / TF prior to running the install TF scripts. The reasons for this are :

We want to give the user agency over what they would like enable before running it
We also want this general patten before each feature getting installed

So I would request you to close this one out and we will refer all future installs to use the modular GCP install workflow.
Let me know if there are any questions.
cc: @nkraemer-sysdig

Hey @haresh-suresh , @nkraemer-sysdig !
while modular GCP is on-the-way, we need to find the way to make current GCP onboarding flow 'working'. Often, our customers successfully onboard, the terraform deployment is successful, and all the right roles are provisioned. However, customers still see no events. I believe I have found the reason behind this issue.
For Pub/Sub service to work without any problems, there has to be a dedicated service agent created under-the-hood. Small context: service agents are created automatically when certain APIs or services are enabled in a project, and they handle the internal operations required to manage and execute (they are also Google-managed and hidden from users in the UI).
I managed to reproduce the issue our customers have and I noticed, the 'no-events issue' happens when pubsub service agent @gcp-sa-pubsub.iam.gserviceaccount.com is not present. One of the reasons for the missing pubsub service agent is if Pub/Sub API (in charge of creating it) has never been enabled.
I understand the reasons behind having a unique behavior towards enabling different APIs, but if we can make onboarding flow robust while we wait for the modular-CDR, I vote for that path forward.
cc @mbertrone @legobrick

After discussing offline, we agreed that it makes sense to go ahead with change in the uber / legacy TF snippets, with the following caveats:

We will not follow this pattern in Modular GCP install, in that case there will be a separate step for enablement for all apis needed.
This change only targets one project, whereas the one in Modular will attempt to auto enable it across all projects in an org
@SKosier will verify to see, if we need to update the pre-requisites in the legacy / uber wizards to make sure that an user has the right roles to perform the api enablement

Approving this in the meanwhile 👍


Reformat code blocks

Codecov Report
Patch and project coverage have no change.

Comparison is base (f267f7b) 100.00% compared to head (e644d66) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #51   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            9         9
  Lines          255       255
  Branches        55        55
=========================================
  Hits           255       255

Impacted Files
Coverage Δ

src/objectory/abstract_factory.py
100.00% <ø> (ø)

src/objectory/registry.py
100.00% <ø> (ø)

src/objectory/universal.py
100.00% <ø> (ø)

src/objectory/utils/name_resolution.py
100.00% <ø> (ø)

src/objectory/utils/object_helpers.py
100.00% <ø> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


discovery: Do not consider DD_TAGS for service name

What does this PR do?
According to the new requirements, DD_TAGS should not be searched for the service name.

Motivation
https://datadoghq.atlassian.net/browse/USMON-1212

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Talk to @dougqh before you go any further with this PR.


Make Mayhem Integration Work Again

Based on the error message on the Github action, I think it is some sort of permissions issue. The same commit successfully passes the Mayhem Github Workflow Action on my fork, as seen here.

Ok, will merge!


duplicated transection records and token cards for ETH and ETC networks, Build 2.0(267) and 2.0(277)

All the transaction I did on ETH network will create a duplicate copy on ETC network.
and some of the ETH network transections show as ETC network.

@hboon related to erc20Interactions?

@James-Sangalli yes. Should be a dup issue

Solved in #1305


Sidebar/END node bugs

When I search END in the sidebar, nothing comes up:

If I search "terminate" however, it does appear:

When I click on END, however, this node is not added to the canvas:

These are likely 2 separate bugs

@smahmed776 This is similar to the issue I tagged u yesterday, we need to clean it up haha.


Add paramter to turn off EscapeControlCharactersOnReceive

This change adds a paramter to the client and server classes to support
setting EscapeControlCharactersOnReceive to off.

Nevermind, switched to using rsyslog::snippet instread.
 ::rsyslog::snippet{ '00-disable-EscapeControlCharactersOnReceive':
   content => '$EscapeControlCharactersOnReceive off'
 }


unescape step missing for the user name

This is an example:

Note: in the info wideget is seems to be handled correctly

the same issue in the last comments widget

What kind of escaping backend does? Don't we do double work here? Why api can't return unescaped username (as well as id)? React does the job of preventing xss.

the backend does sanitize with template.HTMLEscapeString(c.User.Name). The goal was to prevent html tags and potential js code to be returned and rendered by UI.

I'm trying to find common ground on what should I unescape and what not. I made username bold with dev provider. And getting his info failing as remark cannot find user with id bold. I think it expects escaped id in http://<IP_ADDRESS>:9000/api/v1/comments?user=... which kinda odd.

React does job of sanitizing incoming html by itself. There is no need to escape username and id. Though comment sanitizing still necessary.

the same thing what user's widget unescape? I think it is limited to &, ", ' and things like this

React does job of sanitizing incoming html by itself

This makes me nervous as I don't trust frontends to do backend's job ;) Maybe react is a good one and does everything correctly but someday someone, somewhere will use it wrong or will make a different frontend with a less-clever framework.

User's widget name is unescaped by "lucky" accident as it gets passed with via url param and something occurs while these steps. I think it's more of a bug rather then proper work.

I see. However you do perform some of un-escaping on the comment itself, right? Maybe the same function can do its things here?

This makes me nervous as I don't trust frontends to do backend's job ;)

Well, look, how it goes with react, I can do this:
const xss = "";
const element = {xss} // this is JSX syntax. Everything gets properly escaped

// in plain dom equivalent will be
const el = document.createElement("span")
el.innerText = xss

// to actually make xss work I need to make like this
const element =

// ...again, equivalent
const el = document.createElement("span")
el.innerHTML = xss

...the same thing (dangerouslySetInnerHTML) I have to do with your escaped name, which is I don't like either as I think html sanitation can't be done only with string escaping. There is whole set of apis in the DOM to set content properly and safe. Also I don't like this from perspective that this all will be runtime manipuations. I'm talking not only of username. What is harder is to handle id properly as we constantly pass it concatenated in url. And I have to first unescape it from html entities and then reescape it as url params.

What is harder is to handle id properly as we constantly pass it concatenated in url.

Technically is is correct, User.ID wrapped HTMLEscapeString. However, this step is really over-paranoid on my side as ids generated by backend and I don't see how we can get anything escaped in. I didn't know the frontend even does all of this unescape/reescape for ids and don't think it is necessary unless I'm missing something.

fyi: this is the list of things we may want to unescape here (took it from go's HTMLEscape code):
	htmlQuot = []byte(""") // shorter than """
	htmlApos = []byte("'") // shorter than "'" and apos was not in HTML until HTML5
	htmlAmp  = []byte("&")

So, right now I see two ways:

Disable escaping of username and id on the server
Unescaping response right after api call, which will be equivalent to server unescape, but will be executed after every call in runtime, which I don't like.

There is the third way, something in between - to do the partial unescape for quotes, apostrophes and & on the server-side. This is a trivial change on my side and it should resolve the immediate problem.

There is some inconsistency in calls.
Lets take user bold.
His id would be <b>bold</b>
Trying to fetch user comments fails if we don't urlescape his id ()
http://<IP_ADDRESS>:9000/api/v1/comments?user=<b>bold</b>&limit=10&site=remark

{"code":1,"details":"can't get comment by user id","error":"invalid count request {Locator:{SiteID:remark URL:} UserID: Sort: Since:0001-01-01 00:00:00 +0000 UTC Limit:0 Skip:0}"}

it also fails if we htmlunescape it and urlescape it (not found)
http://<IP_ADDRESS>:9000/api/v1/comments?user=%3Cb%3Ebold%3C%2Fb%3E&limit=10&site=remark

{"code":1,"details":"can't get comment by user id","error":"no comments for user \u003cb\u003ebold\u003c/b\u003e in store"}

but just urlescaped htmlunescaped  goes fine:
`http://<IP_ADDRESS>:9000/api/v1/comments?user=%26lt%3Bb%26gt%3Bbold%26lt%3B%2Fb%26gt%3B&limit=10&site=remark`

... But, trying to block with same escaping fails, but fails in interesting way. Server says that user was blocked:
http://<IP_ADDRESS>:9000/api/v1/admin/user/%26lt%3Bb%26gt%3Bbold%26lt%3B%2Fb%26gt%3B?block=1&ttl=10080m&site=remark

{"block":true,"site_id":"remark","user_id":"%26lt%3Bb%26gt%3Bbold%26lt%3B%2Fb%26gt%3B"}

... but on get /blocked user appears with empty name
http://<IP_ADDRESS>:9000/api/v1/admin/blocked?site=remark

[{"id":"%26lt%3Bb%26gt%3Bbold%26lt%3B%2Fb%26gt%3B","name":"","time":"2019-08-27T17:06:12.95497335-05:00"},...]

... original user we tried to block remains unblocked (nice hack for trolls, though only works with  dev provider)
Same thing goes with verifying user.

So, my question is, should I first htmlunescape and then urlescape id in url, or just urlescape sanitized id?

Lets take user bold.

How do you even get such user id? The only way I can think about is via the anonymous provider. Is this the one you meant? If so, this is the issue with go-pkgz/auth library and I need to clean user names as user performs such authentication.

It was made with dev, not sure if it will pass with anonymous as such username blocked on ui level

should I first htmlunescape and then urlescape id in url, or just urlescape sanitized id?

I don't think you should do anything. With #415 it should be handled on the server-side as it does partial unescape. For dev provider - I wouldn't worry much as this one is not for real anyway. But I'll check anonymous and email provider and will make sure user_id doesn't include anything escapable.

oh, ok, good.

hmm, now confused for real. I don't get how you can even get such user id (except from the dev provider), as they all formed like <provider_name>_sha_of_something, i.e. anonymous_aff008275dd1f4966ff111ba2ad910b13e2224fa

Why confused? Yes, it was dev provider, only it generates such ids.

Maybe I misread your update? I've parsed it as you were able to simulate/reproduce the mismatch due to escaped symbols with anonymous

not sure if it will pass with anonymous as such username blocked on ui level
edit. No, it will not pass server.

No, I weren't, both ui and server reject such username

ok, i think we all good

I am confused why do you close this ticket as problem still stands and username is still escaped. I see you've added commit that escapes only partail of html entities but how it solves the issue?

this is my logic:

if someone uses a name with html tags in, this someone is asking for the problem and we better handle such names as invalid and rejected on auth level, i.e. as a part of auth library and, in addition on UI level (i think you do it already).
the particular case we had and the only one we have every run into was about '
if someone has quotes/apostrophes in his name we allow it and it will be passed unescaped back to ui

Am I missing something?

I'm trying to understand your confusion. I think by " how it solves the issue?" you actually meant existing comments? The change I've added was about future comments, not the existing one.

Hmm, I would like to agree, but I think it's a bit technological point of view. Imagine <<<<youtube influencer>>>> username. Perfectly valid but will be escaped.

Perfectly valid

Is it? Does google even allow such names? Anyway, my understanding is your PR got it covered, right?
just checked github, and it doesn't like such names

I think that if you add custom oauth provider later then ploblem will appear again. I don't know what valid names on google, facebook, github, yandex.
Yeah, my PR unescapes usernames. Don't know how to make you sure that there will be no xss (I am myself not sure 100%, and if there will it would be preact bug). I can only advise you to check yourself and try to break it.

can you limit unescape to the same 3 suckers we do on the server-side? This way we can be 100% sure and we keep it internally consistent, i.e. both sides perform the same partial/minimal unescaping for names.
If we run into ticky names with custom providers will handle it in some way or another, but for now, this is a very theoretical problem we don't see/have yet.

ok, maybe a better idea? I can get rid of name unescape all together and replace it by the same bluemonday.Sanitize we do for the comment itself. In this case name  will be passed as is, but crap like this blah XSS will become username
What do you think? To me it sounds as win-win - UI gets everyhting unsescaped but potentially bad things stripped by server side anyway. The only problem with this - UI should be avare about possible "formatting attack", i.e. if someone somehow push name in

Hm, and then
name
 will be passed unescaped in api? If so it will be great. I then remove unescaping on ui.

and you ok with suppressing styles here, right? We don't want name to be renederd as bold or header ;)

Yep, react already handles this, as I said earlier.
One thing is my concern is that search by username will work correctly (i.e sanitized name is the one that will be stored in db), but I think you understand what you're doing :-)

We don't have any searches by user name I'm aware of. The only API storage provides uses user_id

unfortunately sanitize is trying to be smart and probably doing the right thing here, but you won't like it:

name  -> name

name
 ->
name

but <name 123> 'blah'" ->  'blah'

Yeah, it seems it unpredictably smart. I'm going to sleep a bit. Let's think tomorrow.

"if someone uses a name with html tags in, this someone is asking for the problem" -- well if you made ' and " an exception from this assumption then nice (my case is done, and those weren't html syntax anyway), also I saw legit names with *-s and so on. I know you aren't a liberal Umputun, but you know well that names are to be respected. Just my 5 kopeks, I may have missed something. PS: We're living in 2020, and even emoticons become first class citizens in ids.

I saw legit names with *-s and so on

this is fine. dash isn't (and wasn't) affected by html escaping.

know you aren't a liberal Umputun, but you know well that names are to be respected

wat? It has nothing to do with respect to the names or my political views. The discussion we are having here is around technical limitations and protection against possible security flaws.
@Reeywhaar - I guess we are going to the orginal plan? I.e. ", ' and & unescape on both sides, unless you have some beter ideas not involving complete lack of name escaping on the backend.

Yep, nothing better comes to mind.
By the way, do backend sanitizer strips control characters? This concerns me more than visible symbols. Just as we going full paranoid :-)

sanitizer, the one used for the comment text, allows some, i.e. \n and \t intentionally.
For user name it just a direct html escaping not the full sanitizer and it doesn't handle control characters either. Maybe it should, I can strip them all with some nice regex ;)


Can not obtain Elastix command-line application

Dear @almarklein,
when I am trying to obtain a copy from http://elastix.isi.uu.nl/, I get the following message: Can’t reach this page.
Do you have any suggestion?

Looks like it now is https://elastix.lumc.nl/


Example for running fastsurfer with docker on Windows WSL: batch processing scripts

Documentation

...
I have used FastSurfer in my Linux machine (native) for my research work on 3D MRI Brain images from ADNI and OASIS. Currently, I am using FastSurfer via Docker GPU on my Windows machine.
As I needed to process more than 7/8K images, I created a bash script that takes all .nii.gz images from the input directory and does full work on all of them.
I wanted to add the script as documentation in this repository so others can also be benefitted.
Please let me know what you think about that. I can add a pull request, but I need to know do I need to add the entire thing in existing documentation within the Windows Docker GPU segment, or do I need to create a new MarkDown file and link that under the Windows Docker GPU segment.

We already recently added (and updated) two scripts that do that kind of thing.
See brun_fastsurfer.sh and srun_fastaurfer.sh
There is also some documentation in the readme.md.
I am not really sure if your script does something different... Please have a look and say if there is something you are missing.
We would not like to double this functionality, if possible.

It is always good to have examples to illustrate how fastsurfer can be run on different platforms, so we appreciate these examples as is.


Dao tests still use getValue for livedata when you have Flow returned from db

Tests for Dao are using livedata (assertThat(getValue(gardenPlantingDao.getGardenPlantings()).size, equalTo(2))) https://github.com/android/sunflower/blob/main/app/src/androidTest/java/com/google/samples/apps/sunflower/data/GardenPlantingDaoTest.kt and in actual implementation https://github.com/android/sunflower/blob/main/app/src/main/java/com/google/samples/apps/sunflower/data/GardenPlantingDao.kt koltin flow is used.

Fixed in #692

Fixed in #692


Add ServiceExport CRD

Adds the ServiceExport CRD for lighthouse U/S alignment, only
on the clusters where the operator is installed, not the broker.
Related-Issue: https://github.com/submariner-io/lighthouse/issues/78

This will need a SQUASH

Thanks for reverting the Ensure changes!
Thank you for noticing that!!!

And thanks for the review in general.


Cannot paste using the Windows clipboard

Cannot use shortcut key Win+V clipboard，When I use the Windows clipboard to paste, nothing happens

Which scrcpy version?
Which Android version?
Please follow the issue template to post an issue, this would avoid such round-trips.

哪个 scrcpy 版本？ 哪个安卓版本？
请按照问题模板发布问题，这将避免此类往返。

1.20 And 1.19

哪个scrcpy版本？ 哪个安卓版本？
请按照问题模板问题，这将避免出现问题。

Which scrcpy version? Which Android version?
Please follow the issue template to post an issue, this would avoid such round-trips.

Scrcpy 1.20 And 1.19
Android 11 and 10

Which scrcpy version? Which Android version?
Please follow the issue template to post an issue, this would avoid such round-trips.

Does Ctrl+v work?
Also: https://github.com/Genymobile/scrcpy/pull/1423#issuecomment-967771961

Ctrl+v

Ctrl+v works, but I want to use the WIN+V system clipboard, which allows me to use history more effectively

Does Ctrl+v work?
Also: #1423 (comment)

Ctrl+v works, but I want to use the WIN+V system clipboard, which allows me to use history more effectively

Ctrl+v works, but I want to use the WIN+V

In theory, it should do the very same thing, unless your device does not behave as expected when setting the device clipboard programmatically. For this problem, there is --legacy-paste. Which device is it?
Please read: https://github.com/Genymobile/scrcpy#copy-paste
And apparently, there is an option to change on some device to make it work (https://github.com/Genymobile/scrcpy/pull/1423#issuecomment-967771961).

Ctrl+v works, but I want to use the WIN+V

In theory, it should do the very same thing, unless your device does not behave as expected when setting the device clipboard programmatically. For this problem, there is --legacy-paste. Which device is it?
Please read: https://github.com/Genymobile/scrcpy#copy-paste
And apparently, there is an option to change on some device to make it work (#1423 (comment)).

It doesn't suit me, I am OnePlus 9R of Android 11 and want to use the Windows system clipboard. The situation is inconsistent

Ctrl+v works, but I want to use the WIN+V

In theory, it should do the very same thing, unless your device does not behave as expected when setting the device clipboard programmatically. For this problem, there is --legacy-paste. Which device is it?
Please read: https://github.com/Genymobile/scrcpy#copy-paste
And apparently, there is an option to change on some device to make it work (#1423 (comment)).

Can you use it, paste it from the Windows clipboard into the phone？

That is the expected behavior, yes.


delete persisted head block after failed db xxxx remove

Thank you for your help
I don't know why this problem occurs. After an interval of 4 hours, 2 hours of data will be lost.
I am using the default configuration.
prometheus  Version 2.18.1
Windows Server 2016
image:

log: It's all that kind of information
level=error ts=2021-07-02T05:00:01.788Z caller=db.go:667 component=tsdb msg="compaction failed" err="delete persisted head block after failed db reload:01F9JSD0DPACPW09RGEWXPDC7Z: remove E:\monitor\server\data\prometheus\01F9JSD0DPACPW09RGEWXPDC7Z\chunks\000001: The process cannot access the file because it is being used by another process."
level=error ts=2021-07-02T05:01:01.790Z caller=db.go:667 component=tsdb msg="compaction failed" err="plan compaction: open E:\monitor\server\data\prometheus\01F8KWMCDQ1EEQGEVDGQ6KBSVH\meta.json: The system cannot find the file specified."
level=error ts=2021-07-02T05:04:01.795Z caller=db.go:667 component=tsdb msg="compaction failed" err="plan compaction: open E:\monitor\server\data\prometheus\01F8KWMCDQ1EEQGEVDGQ6KBSVH\meta.json: The system cannot find the file specified."
level=error ts=2021-07-02T05:07:01.806Z caller=db.go:667 component=tsdb msg="compaction failed" err="plan compaction: open E:\monitor\server\data\prometheus\01F8KWMCDQ1EEQGEVDGQ6KBSVH\meta.json: The system cannot find the file specified."
level=info ts=2021-07-02T07:00:01.022Z caller=compact.go:495 component=tsdb msg="write block" mint=1625198400000 maxt=1625205600000 ulid=01F9K08QNXSAZFFRWEKS6QHZ87 duration=705.0403ms
level=error ts=2021-07-02T07:00:01.117Z caller=db.go:946 component=tsdb msg="failed to read meta.json for a block" dir=E:\monitor\server\data\prometheus\01F8KWMCDQ1EEQGEVDGQ6KBSVH err="open E:\monitor\server\data\prometheus\01F8KWMCDQ1EEQGEVDGQ6KBSVH\meta.json: The system cannot find the file specified."

Hello,
Could you please update your prometheus to the latest release and try to reproduce this issue? It is likely that the root cause is The process cannot access the file because it is being used by another process., but you should not lose data, compaction should just fail.

Any update on this? Please also confirm that the filesystem is NTFS.

Hello from the bug scrub!
With no new information provided in 3y, we are closing this.


Transfer call function

I have an old anaolog phone connected to a Grandstream, and I want to build a menu so my kids (3 and 5) can call us and the grandparents.
What I think I need to do is build a menu like this:
- id: "1704917611241"
  alias: TEST SIP
  description: ""
  trigger:
    - platform: webhook
      local_only: true
      webhook_id: sip_call_webhook_id
  condition: []
  action:
    - choose:
        - conditions: "{{ trigger.json.parsed_caller == '**621' }}"
          sequence:
            - service: hassio.addon_stdin
              data:
                addon: c7744bff_ha-sip
                input:
                  command: answer
                  number: "**621"
                  menu:
                    message:
                      Hello, dial 1 to call daddy, 2 for mommy
                    timeout: 30
                    choices:
                      "1":
                        id: dad
                        message: Hang up now, the phone will ring when daddy picked up
                        action:
                          domain: script
                          service: turn_on
                          entity_id: script.call_dad
                        post_action: hangup
                      "2":
                        id: mom
                        message: Hang up now, the phone will ring when mommy picked up
                        action:
                          domain: script
                          service: turn_on
                          entity_id: script.call_mom
                        post_action: hangup
  mode: single

Then script.call_dad should have a sequence like this:
service: hassio.addon_stdin
data:
    addon: c7744bff_ha-sip
    input:
        command: dial
        number<EMAIL_ADDRESS>        ring_timeout: 15 # time to ring in seconds (optional, defaults to 300)
        menu:
            message: Someone is trying to reach you, one moment, the call will be transferred.

The above works, I get called, and when I pick up I get the message.
But then I need to transfer this call from HA (**620) to the phone (**621)
I tried
service: hassio.addon_stdin
data:
    addon: c7744bff_ha-sip
    input:
        command: transfer
        number<EMAIL_ADDRESS>        transfer_to<EMAIL_ADDRESS>
Any advice how to achieve this?
Thanks (also for making this great add-on)

Hoi!
So basically transfer should work? Did I assume correctly the line should be free so I'm able to transfer the call? That's why I ask to hang up and wait until the phone rings in the menu.
what should be used for number: in the transer call action, is that the internal number HA is using, or the external phone number?

sorry, I indeed should have shared the log.
I tried this. In devtools > services I initiated this service call:
service: hassio.addon_stdin
data:
    addon: c7744bff_ha-sip
    input:
        command: dial
        number<EMAIL_ADDRESS>        ring_timeout: 60 # time to ring in seconds (optional, defaults to 300)
        menu:
            message: Hallo, hallo. Ik ga je zometeen doorverbinden. Wacht maar eventjes. 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0

Then, while my phone was still blabbing out this message (so I assume that would mean the call is ongoing, I tried this:
service: hassio.addon_stdin
data:
    addon: c7744bff_ha-sip
    input:
        command: transfer
        number<EMAIL_ADDRESS>        transfer_to<EMAIL_ADDRESS>
That gives the following in the log (I tried 3 times, and then disconnected):
09:21:56.226351 [ ] Got "dial" command for<EMAIL_ADDRESS>| &id001
| id: null
| message: Hallo, hallo. Ik ga je zometeen doorverbinden. Wacht maar eventjes. 10 9
|   8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3
|   2 1 0
| audio_file: null
| language: nl-NL
| action: null
| choices_are_pin: false
| choices: {}
| default_choice:
|   id: null
|   message: Unknown option
|   audio_file: null
|   language: en
|   action: null
|   choices_are_pin: false
|   choices: null
|   default_choice: null
|   timeout_choice: null
|   post_action:
|     action: return
|     level: 1
|   timeout: 300.0
|   parent_menu: *id001
| timeout_choice:
|   id: null
|   message: null
|   audio_file: null
|   language: en
|   action: null
|   choices_are_pin: false
|   choices: null
|   default_choice: null
|   timeout_choice: null
|   post_action:
|     action: hangup
|   timeout: 300.0
|   parent_menu: *id001
| timeout: 300.0
| post_action:
|   action: noop
| parent_menu: null
|
| 09:21:56.246561 [1] Registering call with id<EMAIL_ADDRESS>| 09:21:56.246972 [ ] Add to state<EMAIL_ADDRESS>| 09:21:56.260977 [1] Calling
| 09:21:56.342698 [1] Early
| 09:21:56.344079 [1] onCallMediaState call info state 3
| 09:21:56.344926 [1] Connected media 1
| 09:22:07.089752 [1] Call connecting...
| 09:22:07.091880 [1] onCallMediaState call info state 4
| 09:22:07.091993 [1] Connected media 1
| 09:22:07.092243 [1] Call connected
| 09:22:07.102799 [1] onCallMediaState call info state 5
| 09:22:07.102896 [1] Connected media 1
| 09:22:08.112505 [1] Call is established.
| 09:22:08.113082 [ ] Calling webhook sip_call_webhook_id with data {'event': 'call_established', 'caller'<EMAIL_ADDRESS>'parsed_caller': '+31123456789', 'sip_account': 1}
| 09:22:08.158056 [ ] Webhook response 200 b''
| 09:22:08.158848 [1] Playing message: Hallo, hallo. Ik ga je zometeen doorverbinden. Wacht maar eventjes. 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0
| 09:22:08.176539 [ ] Getting audio from "http://<IP_ADDRESS>:8123/api/tts_proxy/10966fca7eee401adfb0ba41924a3752a0e33fb8_nl-nl_dd0e95eb04_cloud.mp3"
| 09:22:10.373140 [1] No action supplied
| 09:22:14.924732 [ ] Warning: call not in progress<EMAIL_ADDRESS>| 09:22:23.724715 [ ] Warning: call not in progress<EMAIL_ADDRESS>| 09:22:33.564538 [ ] Warning: call not in progress<EMAIL_ADDRESS>| 09:22:37.366394 [1] Call disconnected
| 09:22:37.366707 [ ] Calling webhook sip_call_webhook_id with data {'event': 'call_disconnected', 'caller'<EMAIL_ADDRESS>'parsed_caller': '+31123456789', 'sip_account': 1}
| 09:22:37.380284 [ ] Webhook response 200 b''
| 09:22:37.380644 [ ] Remove from state<EMAIL_ADDRESS>

@catohagen parsed called is **621 or '+31123456789'
I don't see port numbers then. Unless you are referring to a different webhook.
Note that I'm not using phones directly connected to the Fritz!Box. I use a analog phone connected to a Grandstream via the network, and the HA SIP add-on itself.
In the end my goal that I can let the add-on make a connection between the Grandstream and an external number (using a choice menu). Maybe there is another approach here which would work better.

maybe I should initiate the transfer in the first service call, but I couldn't find how to add actions there.

'parsed_caller': '+31123456789'
I would try, number : +31123456789
I know I got transfer call working, I have two old analog phones, connected to a Grandstream HT802 (two ports), but I cant remember why, but I ended up using bridge call instead.
I got another HT802 on its way in the mail, so I might need to reconfigure everything again with 4 old phones calling eachother
Only thing thats bugging me now, is that if I call a phone, I dont know how to 'cancel' a call. If I call and hang up after 2 rings , the target phone just keeps ringing until timeout..

for bridge calls, this is working for me (calling from port_02 to port_01)
        '3':
            id: call_01
            message: stand by, calling kitchen
            action:
                domain: automation
                service: trigger
                entity_id: automation.webhook_call_port_01
            post_action: noop

then
addon: c7744bff_ha-sip
input:
  command: dial
  number: sip:port_01@<IP_ADDRESS>:5060
  ring_timeout: 15
  sip_account: 1
  webhook_to_call:
    call_established: sip_connect_call_bridge_01
    call_disconnected: sip_call_disconnected

then sip_connect_call_bridge_01  gets run when call_established:
addon: 8cd50eef-ha-sip-next
input:
  command: bridge_audio
  number: port_02
  bridge_to: sip:port_01@<IP_ADDRESS>:5060

maybe I should initiate the transfer in the first service call, but I couldn't find how to add actions there.
try with the 'webhook_to_call:' in your dial service call, and add the transfer stuff

  webhook_to_call:
    call_established: 'create_a_webhook_transfer_call'

When ha-sip throws the | 09:22:14.924732 [ ] Warning: call not in progress<EMAIL_ADDRESS>error, it means that it could not find the call under the given ID.
You can find out the internal ha-sip ID in the log by searching for Add to state<EMAIL_ADDRESS>The string after state is the one you need to use for number in commands. The first "add to state" log is unfortunately missing in the posted log.

I initiated a new call, here is the full log (added some extra lines at the top)
13:07:32.330503 [1] OnRegState: 200 OK
| 13:12:27.343418 [1] OnRegState: 200 OK
| 13:17:22.369197 [1] OnRegState: 200 OK
| 13:22:17.400937 [1] OnRegState: 200 OK
| 13:27:12.415472 [1] OnRegState: 200 OK
| 13:32:07.430417 [1] OnRegState: 200 OK
| 13:37:02.446813 [1] OnRegState: 200 OK
| 13:41:57.466965 [1] OnRegState: 200 OK
| 13:46:52.477881 [1] OnRegState: 200 OK
| 13:51:47.492313 [1] OnRegState: 200 OK
| 13:52:59.639612 [ ] Got "dial" command for<EMAIL_ADDRESS>| &id001
| id: null
| message: Hallo, hallo. Ik ga je zometeen doorverbinden. Wacht maar eventjes. 10 9
|   8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3
|   2 1 0
| audio_file: null
| language: nl-NL
| action: null
| choices_are_pin: false
| choices: {}
| default_choice:
|   id: null
|   message: Unknown option
|   audio_file: null
|   language: en
|   action: null
|   choices_are_pin: false
|   choices: null
|   default_choice: null
|   timeout_choice: null
|   post_action:
|     action: return
|     level: 1
|   timeout: 300.0
|   parent_menu: *id001
| timeout_choice:
|   id: null
|   message: null
|   audio_file: null
|   language: en
|   action: null
|   choices_are_pin: false
|   choices: null
|   default_choice: null
|   timeout_choice: null
|   post_action:
|     action: hangup
|   timeout: 300.0
|   parent_menu: *id001
| timeout: 300.0
| post_action:
|   action: noop
| parent_menu: null
|
| 13:52:59.662230 [1] Registering call with id<EMAIL_ADDRESS>| 13:52:59.662511 [ ] Add to state<EMAIL_ADDRESS>| 13:52:59.692217 [1] Calling
| 13:52:59.776537 [1] Early
| 13:52:59.777670 [1] onCallMediaState call info state 3
| 13:52:59.778943 [1] Connected media 1
| 13:53:06.042049 [1] Call connecting...
| 13:53:06.047898 [1] onCallMediaState call info state 4
| 13:53:06.048247 [1] Connected media 1
| 13:53:06.048895 [1] Call connected
| 13:53:06.059899 [1] onCallMediaState call info state 5
| 13:53:06.060154 [1] Connected media 1
| 13:53:07.061410 [1] Call is established.
| 13:53:07.062016 [ ] Calling webhook sip_call_webhook_id with data {'event': 'call_established', 'caller'<EMAIL_ADDRESS>'parsed_caller': '+31123456789', 'sip_account': 1}
| 13:53:07.109787 [ ] Webhook response 200 b''
| 13:53:07.110405 [1] Playing message: Hallo, hallo. Ik ga je zometeen doorverbinden. Wacht maar eventjes. 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0 10 9 8 7 6 5 4 3 2 1 0
| 13:53:07.125764 [ ] Getting audio from "http://<IP_ADDRESS>:8123/api/tts_proxy/10966fca7eee401adfb0ba41924a3752a0e33fb8_nl-nl_dd0e95eb04_cloud.mp3"
| 13:53:07.665150 [1] No action supplied
| 13:53:10.142194 [1] Call disconnected
| 13:53:10.142328 [ ] Calling webhook sip_call_webhook_id with data {'event': 'call_disconnected', 'caller'<EMAIL_ADDRESS>'parsed_caller': '+31123456789', 'sip_account': 1}
| 13:53:10.154199 [ ] Webhook response 200 b''
| 13:53:10.154777 [ ] Remove from state<EMAIL_ADDRESS>
There doesn't seem to be another Add to state: line

for bridge calls, this is working for me (calling from port_02 to port_01) /homeassistant/sip-1-incoming.yaml :
        '3':
            id: call_01
            message: stand by, calling kitchen
            action:
                domain: automation
                service: trigger
                entity_id: automation.webhook_call_port_01
            post_action: noop

then automation.webhook_call_port_01:
addon: c7744bff_ha-sip
input:
  command: dial
  number: sip:port_01@<IP_ADDRESS>:5060
  ring_timeout: 15
  sip_account: 1
  webhook_to_call:
    call_established: sip_connect_call_bridge_01
    call_disconnected: sip_call_disconnected

then sip_connect_call_bridge_01 gets run when call_established:
addon: c7744bff_ha-sip
input:
  command: bridge_audio
  number: port_02
  bridge_to: sip:port_01@<IP_ADDRESS>:5060

This looks really interesting, but how do I link that last action to the webhook, that's where I'm a bit lost

Okay, I'm still trying to figure this out.
My goal
To enable my kids to call parents and grandparents using the old analog rotary dial phone connected to a Grandstream HT801.
My devices currently used for testing

device
id

HA SIP add-on
**620

Granstream (with analog phone)
**621

My mobile phone
+316123456789

note: the mobile number is of course not my real number, but I didn't seem very wise to share it publicly on GitHub ;)

What I currently have
Based on my initial setup, and the comments above, I have now created a menu in which I call a script.
In the script I initiate the call to my mobile phone, and then after connection is established, I try to bridge audio with the HA SIP add on (which initiated the call) and the Granstream (and therefor the analog phone).
Automation with the menu
automation:
  - id: aef85bb7-d7c6-4727-84b7-c15f222d7f71
    alias: Menu for Grandstream
    trigger:
      - platform: webhook
        local_only: true
        webhook_id: sip_call_webhook_id
    condition: []
    action:
      - choose:
          - conditions: "{{ trigger.json.parsed_caller == '**621' }}"
            sequence:
              - service: hassio.addon_stdin
                data:
                  addon: c7744bff_ha-sip
                  input:
                    command: answer
                    number: "**621"
                    menu:
                      message:
                        Hallo, draai 1 om papa te bellen
                        om te stoppen.
                      timeout: 30
                      choices:
                        "1":
                          id: papa
                          message: Papa wordt gebeld
                          action:
                            domain: script
                            service: turn_on
                            entity_id: script.call_dad
                          post_action: noop
    mode: single

script which is called from the menu
script:
  call_dad:
    alias: Call dad
    mode: restart
    sequence:
      - service: hassio.addon_stdin
        data:
          addon: c7744bff_ha-sip
          input:
            command: dial
            number<EMAIL_ADDRESS>            ring_timeout: 60
            sip_account: 1
            webhook_to_call:
              call_established: sip_connect_call_bridge_621
              call_disconnected: sip_call_disconnected
      - wait_for_trigger:
          - platform: webhook
            local_only: true
            webhook_id: sip_connect_call_bridge_621
        timeout:
          minutes: 5
      - service: hassio.addon_stdin
        data:
          addon: c7744bff_ha-sip
          input:
            command: bridge_audio
            number: "**620"
            bridge_to<EMAIL_ADDRESS>
What happens during testing
what works

the menu works, and the it mentions that dad is being called
the call is initiated, my phone will ring and I can pick up the message
the script runs all it's actions

what doesn't work

audio is bridged to the grandstream. So both parties can't hear each other.

Log report (level 2)
looks like it's truncated to 100 lines
| 22:28:12.572833 [1] Connected media 1
| 22:28:12.578578 [1] Call connecting...
| 22:28:12.593258 [1] Call connected
| 22:28:13.604314 [1] Call is established.
| 22:28:13.604507 [ ] Calling webhook sip_call_webhook_id with data {'event': 'call_established', 'caller': '"HA SIP"<EMAIL_ADDRESS>'parsed_caller': '**621', 'sip_account': 1}
| 22:28:13.615879 [ ] Webhook response 200 b''
| 22:28:13.616201 [1] Playing message: Hallo, draai 1 om papa te bellen, 2 om mama te bellen en 3 om te stoppen.
| 22:28:13.639059 [ ] Getting audio from "http://<IP_ADDRESS>:8123/api/tts_proxy/0d6c71cb34afc69c8d79b3ab6420a184c9caf762_nl-nl_dd0e95eb04_cloud.mp3"
| 22:28:13.937746 [1] No action supplied
Could not deserialize JSON: "command":"answer","number":"**621","menu":{"message":"Hallo, draai 1 om papa te bellen, 2 om mama te bellen en 3 om te stoppen.","timeout":30,"choices":{"1":{"id":"papa","message":"Papa wordt gebeld","action":{"domain":"script","service":"turn_on","entity_id":"script.call_dad"},"post_action":"noop"}}}}
| 22:28:17.619169 [1] Playback interrupted.
| 22:28:17.619429 [1] Scheduled post action: noop
| 22:28:17.624295 [1] onDtmfDigit: digit 1
| 22:28:17.624406 [ ] Calling webhook sip_call_webhook_id with data {'event': 'dtmf_digit', 'caller': '"HA SIP"<EMAIL_ADDRESS>'parsed_caller': '**621', 'digit': '1', 'sip_account': 1}
| 22:28:17.632121 [ ] Webhook response 200 b''
| 22:28:17.632292 [1] Current input: 1
| 22:28:17.632333 [ ] Calling webhook sip_call_webhook_id with data {'event': 'entered_menu', 'caller': '"HA SIP"<EMAIL_ADDRESS>'parsed_caller': '**621', 'menu_id': 'papa', 'sip_account': 1}
| 22:28:17.644434 [ ] Webhook response 200 b''
| 22:28:17.644736 [1] Playing message: Papa wordt gebeld
| 22:28:17.656002 [ ] Getting audio from "http://<IP_ADDRESS>:8123/api/tts_proxy/9a1857f9f2a6f548df225dc970b507f01b95382f_nl-nl_dd0e95eb04_cloud.mp3"
| 22:28:17.760298 [ ] Calling home assistant service on domain script service turn_on with entity script.call_dad
| 22:28:17.778029 [ ] Service response 200 b'[{"entity_id":"script.call_dad","state":"on","attributes":{"last_triggered":"2024-01-13T21:28:17.770475+00:00","mode":"restart","current":1,"friendly_name":"Call dad"},"last_changed":"2024-01-13T21:28:17.770602+00:00","last_updated":"2024-01-13T21:28:17.770602+00:00","context":{"id":"01HM2BKF36HZEDHCJ5E17JDWRD","parent_id":null,"user_id":"5cca702da9834cdeacf34de267570551"}}]'
Could not deserialize JSON: "command":"answer","number":"**621","menu":{"message":"Hallo, draai 1 om papa te bellen, 2 om mama te bellen en 3 om te stoppen.","timeout":30,"choices":{"1":{"id":"papa","message":"Papa wordt gebeld","action":{"domain":"script","service":"turn_on","entity_id":"script.call_dad"},"post_action":"noop"}}}}
| 22:28:17.924123 [ ] Got "dial" command for<EMAIL_ADDRESS>| &id001
| id: null
| message: null
| audio_file: null
| language: en
| action: null
| choices_are_pin: false
| choices: {}
| default_choice:
|   id: null
|   message: Unknown option
|   audio_file: null
|   language: en
|   action: null
|   choices_are_pin: false
|   choices: null
|   default_choice: null
|   timeout_choice: null
|   post_action:
|     action: return
|     level: 1
|   timeout: 300.0
|   parent_menu: *id001
| timeout_choice:
|   id: null
|   message: null
|   audio_file: null
|   language: en
|   action: null
|   choices_are_pin: false
|   choices: null
|   default_choice: null
|   timeout_choice: null
|   post_action:
|     action: hangup
|   timeout: 300.0
|   parent_menu: *id001
| post_action:
|   action: noop
| timeout: 300.0
| parent_menu: null
|
| 22:28:17.926182 [1] Registering call with id<EMAIL_ADDRESS>| 22:28:17.926220 [ ] Add to state<EMAIL_ADDRESS>| 22:28:17.929656 [1] Calling
| 22:28:17.979517 [1] Early
| 22:28:17.979773 [1] onCallMediaState call info state 3
| 22:28:17.979811 [1] Connected media 1
| 22:28:20.037095 [1] Playback done.
| 22:28:20.040290 [1] Scheduled post action: noop
| 22:28:25.884630 [1] Call connecting...
| 22:28:25.886520 [1] onCallMediaState call info state 4
| 22:28:25.886581 [1] Connected media 1
| 22:28:25.886704 [1] Call connected
| 22:28:25.898348 [1] onCallMediaState call info state 5
| 22:28:25.898452 [1] Connected media 1
| 22:28:26.903964 [1] Call is established.
| 22:28:26.904038 [ ] Calling webhook sip_connect_call_bridge_621 with data {'event': 'call_established', 'caller'<EMAIL_ADDRESS>'parsed_caller': '+31123456789', 'sip_account': 1}
| 22:28:26.910687 [ ] Webhook response 200 b''
| 22:28:26.910822 [ ] Calling webhook sip_call_webhook_id with data {'event': 'call_established', 'caller'<EMAIL_ADDRESS>'parsed_caller': '+31123456789', 'sip_account': 1}
| 22:28:26.922122 [ ] Webhook response 200 b''
| 22:28:26.922231 [1] No action supplied
| 22:28:26.922292 [1] Scheduled post action: noop
| 22:28:26.924052 [ ] Warning: call not in progress: **620
| 22:28:39.456700 [1] Call disconnected
| 22:28:39.456788 [ ] Calling webhook sip_call_disconnected with data {'event': 'call_disconnected', 'caller'<EMAIL_ADDRESS>'parsed_caller': '+31123456789', 'sip_account': 1}
| 22:28:39.464117 [ ] Webhook response 200 b''
| 22:28:39.464264 [ ] Calling webhook sip_call_webhook_id with data {'event': 'call_disconnected', 'caller'<EMAIL_ADDRESS>'parsed_caller': '+31123456789', 'sip_account': 1}
| 22:28:39.471151 [ ] Webhook response 200 b''
| 22:28:39.471295 [ ] Remove from state<EMAIL_ADDRESS>| 22:28:42.821003 [1] Call disconnected
| 22:28:42.821063 [ ] Calling webhook sip_call_webhook_id with data {'event': 'call_disconnected', 'caller': '"HA SIP"<EMAIL_ADDRESS>'parsed_caller': '**621', 'sip_account': 1}
| 22:28:42.827213 [ ] Webhook response 200 b''
| 22:28:42.827404 [ ] Remove from state: **621
| 22:28:42.928156 [ ] Got "answer" command for **621
| 22:28:42.928208 [ ] Warning: call not in progress: **621

Could not deserialize JSON: "command":"answer","number":"**621","menu":{"message":"Hallo, draai 1 om papa te bellen, 2 om mama te bellen en 3 om te stoppen.","timeout":30,"choices":{"1":{"id":"papa","message":"Papa wordt gebeld","action":{"domain":"script","service":"turn_on","entity_id":"script.call_dad"},"post_action":"noop"}}}}
maybe there is something with this...I know I have seen this in my logs, but I dont remember what or if I did something to fix that..

just wanted to add, right after the brigde is done, I have this
  {{ iif(is_state_attr('automation.webhook_call_disconnected', 'current',  1),
  'True', 'False') }}
continue_on_timeout: false```

so it waits (loops) in this until automation.webhook_call_disconnected is runned, then in automation.webhook_call_disconnected it will hang up

service: hassio.addon_stdin
data_template:
addon: c7744bff_ha-sip
input:
command: hangup
number: port_01
its a choose: condition, if parsed caller is port_02 (port 2 in the ht802) it will hang up port_01 and vice versa

okay, that makes sense, but I'm still having issues with acuatlly bridging the call (or transfering it).

@TheFes
ok, I was hoping you got it working soon :)
....but I was thinking, you bridge **620 and that is your ha-sip, have you tried bridging **621 and mobile phone ?
command: bridge_audio
number: "**621"
bridge_to<EMAIL_ADDRESS>With my bridging, I only bridge the two phones, and not ha-sip itself

@catohagen
I will give that a try, but I assume the script (in my current setup) initiates a call from HA SIP to my mobile phone (as it runs on HA and I don't mention a device which does the calling) or am I just misunderstanding how this works (note I don't have a clue about telephony).
I'm also not sure what is expect as input for the fields number: and brigde_to_sip:
But I have changed it now to test your input, currently not in the livingroom where the phone is located, will give it a try in an hour.

@catohagen could you please change the number in your post to +3112346789? I see I forgot to change it..

@TheFes
I have no idea how all this works myself, I used a good week, figuring out how to transfer or bridge calls :)
We basicly do the same thing with the bridging, I dont understand why it doesnt bridge/transfer for you, its rock solid here

@catohagen many, many thanks! The bridging works with your suggestion!

@TheFes
Fantastic, thats great :)

Nice, that you found a solution @TheFes, and thank you very much for your support @catohagen. I'm always amazed what people create with ha-sip. My use-case is so much simpler!

just wanted to add, right after the brigde is done, I have this
wait_template: >-
  {{ iif(is_state_attr('automation.webhook_call_disconnected', 'current',  1),
  'True', 'False') }}
continue_on_timeout: false

so it waits (loops) here until automation.webhook_call_disconnected is runned, then in automation.webhook_call_disconnected it will hang up
service: hassio.addon_stdin
data_template:
  addon: c7744bff_ha-sip
  input:
    command: hangup
    number: port_01

its a choose: condition, if parsed caller is port_02 (port 2 in the ht802) it will hang up port_01 and vice versa

I am using the automation and script as discussed here successfully as well.
I also use the automation.webhook_call_disconnected , but I noticed that the 'webhook_call_disconnected is only running when the bridge_to number is ending the call. When the phone which started the call then ends the call that webhook is not run.
The default webhook sip_call_webhook_id is run however with 'event': 'call_disconnected' but that is to generic to use in this case. Did you found a solution for this?

@gerard33
 When the phone which started the call then ends the call that webhook is not run and the call stays open on the bridge_to number (in my case I have tested this with the Fritz fon app on my mobile phone).

The default webhook sip_call_webhook_id is run with 'event': 'call_disconnected' but that is to generic to use in this case. Did you found a solution for this?

I have atleast that working here (when the phone which started the call then ends the call) I get busy signal on the called/target phone.
But I have added a second Grandstream 802 added now, and 4 phones that can call eachother, so my configs are a mess now :)
I had to use some helpers to get this working..
GrandStream HT802 no1 : 2 phones, port_01 and port_02
GrandStream HT802 no2 : 2 phones, port_03 and port_04
helpers:
input_boolean.sip_port01_active
input_boolean.sip_port02_active
input_boolean.sip_port03_active
input_boolean.sip_port04_active
these booleans will be set to 1/True when 'call_established' and when you hang up they will be 0/False
input_text.sip_port01_target_port
input_text.sip_port02_target_port
input_text.sip_port03_target_port
input_text.sip_port04_target_port
I set "input_text.sip_port0x_target_port" with the "target" phone I'm calling
so if I call from phone 3 (port_03) to phone 4 (port_04) the input_text.sip_port03_target_port will be set to port_04
so this way I can hang up port_04 when port_03 hangs up, and also if  port_04 calls port_02, but if nobody picks up you can hang up on phone 4 and port_02 stops ringing (instead of ringing until timeout timer)
I'm not sure these helpers are the best way of achieving this, as the automations are getting large with lots of conditions,
but I think I get it working as a house intercom + extra menus for controlling home assistant stuff......in the end.


improve initial sync time

Hi!
I'm using Big Dipper on a cosmos chain with very low block time (1-2 sec) and I can't figure out how to speed up the initial sync. Based on my calculations it will take currently 10 days for me to sync-up, with a chain relatively young.
Any way to fasten this up? Is that purely based on RPC calls? Does disk speed matter? any settings I can tweak? or maybe use multiple RPC at same time?
Cheers

Hi @vincentgeneste ! Currently there is no way to sync data with multiple RPCs. To increase performance, make sure you are running the application in production build. The whole stack is Mongo, Node.js, React application. You may study which part can you increase the performance. It queries from the fullnode so the performance of the is also related.

Thanks a lot, will investigate all that!

We are maintaining another project BDJuno. It will be the backbone of the next version of Big Dipper. It separate the block indexing and data processing from different modules using subscriptions. You may take a look if you are interested.


ENTER key not working when navigating loaded json file

Hello,
When running gdu 'live' against, say, my home directory, e.g.:
$ gdu $HOME
...navigating in and out of subdirectories using the arrow keys and ENTER key works as expected.
However if I run gdu, save the analysis to an output file, and then later run gdu against that file, e.g.:
$ gdu $HOME -o home-dir-scan.json
$ gdu -f home-dir-scan.json

...trying to navigate into subdirectories using the ENTER key or up a level by highlighting ../ up top and hitting the ENTER key both do nothing.

Thanks for the eport. I'm able to reproduce and will investigate what's wrong.


Code causing Brackets to spin in Ubuntu 15.10 only.

Hi Folks,
After having no issues with Brackets in Ubuntu a particular project consistently causes Brackets to spin. I've cleared all Brackets config from .config and purged the package for a fresh install.
As soon as I open the project directory from the repo below Brackets spins to 100% CPU. I've tried without extensions enabled and on a clean install. Because this was driving me crazy I tried this on a Brackets install on windows and it didn't have a problem.
https://github.com/cloudynetwork/buildingnodejs/tree/jade001
This seems like some kind of bug but I don't know Brackets well enough to be sure.
Release: Brackets.Release.1.6.64-bit.deb

I can't repro this issue.
Does this happen on all projects or just the mentioned repo. The above project only has ~300 files. That should not be a problem to brackets.

@abose It's just this project. This could possibly be a system issue, however brackets has been working fine with this project for a couple of weeks. I've done a clean install (including deleting the .config/brackets stuff. I've also tried the same thing on a different user (so no leftover prefs files etc). Same result.
The only other unusual thing (and it's always been this way) is that I'm running libcrypt11 from an earlier Ubuntu version due to brackets depending on it (libgcrypt11_1.5.3-2ubuntu4.3_amd64.deb)
Are there any diagnostics I can provide?

Is the problem fixed ?
I open the project you mentioned but nothing weird happened to me.

Ubuntu 16.04 with LXQT
libgcrypt11_1.5.3
CPU i5-3230M

It's not fixed for me. Running 15.10 and it's consistent on this machine. Sure this may be an issue specific to some combination of packages or updates to packages on the system but I figured some feedback might be wanted. If nobody cares because they can't reproduce it (and don't want any diagnostic data from me) then go ahead and close the issue.

Same problem here with Ubuntu 16.04
theel0ja@mursu-3 ~ $ export LANG=C && sudo apt install brackets
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 brackets : Depends: libgcrypt11 (>= 1.4.5) but it is not installable
E: Unable to correct problems, you have held broken packages.
theel0ja@mursu-3 ~ $


Tite updates

Description of the change:
Reason for the change:
Link to original source:

Closes #

you've got a merge conflict here :)

Hello @Whatthefoxsays,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX


HSEARCH-4112 Hibernate Search + Spring-JTA fails because of closed entity manager

https://hibernate.atlassian.net/browse/HSEARCH-4112

Merged, thanks


assomme-font for title (phone, LinkedIn, ...)

The little logos before phone, email, LinkedIn are broken.
Idea: It seems the awesome-font package has been upgraded. (#import "@preview/fontawesome:0.5.0" instead of 0.2.2)

need to install the font locally ... my bad.
Thanks for your work.


Maint/issue 14 end production

A couple notes on this PR that aren't captured in that last commit message.

Since the ; is optional now, I removed it from the Display output, my preference is to default to not showing it.
I added a nom-y macro of my own. The behavior was I interested in was processing an undefined amount of input without actually consuming any of it. nom's peek macro lets you "look ahead" but if it finds the pattern it consumes it.

Coverage increased (+0.8%) to 83.913% when pulling<PHONE_NUMBER>8dd9877e6b501a398bb70c2285373c on maint/issue-14-end-production into c30232f9c4c4b1521bd2f4fa09a1b79fd84a90c2 on 0.2.0-devel.

closes #14


selfhost/codegen: Update seen_types to store TypeId

There were collisions in type ids due to seen_types not also storing the
ModuleId, resulting in no codegen for some enums/structs

Nevermind with this one, needs more work.


documentation idea (no main())

Have you though of gettign rid of main in a starter example? Iwthout main people can easily use code right away.
def main():
    """Main."""
    # Confirm a dialog

Here is asimplfied example I used to start with beaupy
from beaupy import confirm, console, select

names = [
        "Frodo Baggins",
        "Samwise Gamgee",
        "Legolas",
        "Aragorn",
        "[red]Sauron[/red]",
    ]

if confirm("Will you take the ring to Mordor?"):
    console.print("Who are you?")
    name = select(names, cursor="🢧", cursor_style="cyan")
    console.print("Alámenë", name)

This is a good point, if __name__=='__main__' block might be a bit confusing for people who are new to Python, despite being a best practice. I am going to adjust that and remove main in the next release.

Done! Thanks for a suggestion!


progress?

hi @btford
I'd like to request, in the most non demanding way, an update on the project. I see some work on the angular2 repo, and the most recent meeting notes mention that the new router will not be ready for angular 1.4. That's sad. Could you shout out a little update? Is angular2 a priority over 1.x now? It seemed like it was the other way around at one point.
Thanks!

+1
On Wed, 13 May 2015 17:57 Tim Whitbeck<EMAIL_ADDRESS>wrote:

hi @btford https://github.com/btford
I'd like to request, in the most non demanding way, an update on the
project. I see some work on the angular2 repo, and the most recent meeting
notes mention that the new router will not be ready for angular 1.4. That's
sad. Could you shout out a little update? Is angular2 a priority over 1.x
now? It seemed like it was the other way around at one point.
Thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/angular/router/issues/317.

+1.  Based on ng-conf in March I was figuring we'd be able to refactor from ui-router to this sometime in April

+1 I am definitely curious about the part of this question that talks about Angular 1.4 and the new router not being ready.....

+1, I have had to abandon use of it, mostly because of https://github.com/angular/router/issues/311. I'm using ui-router at this point, much better baked. I'm curious why, if it was considered at all, not adopted for angular 2.0. If the issue was an academic in it labeling itself as a "state" machine type routing, the fact that it's resolves and route configuration can now be defined in specific controller modules outweighs what I see so far in this new router as far as any best pattern practices I see being offered in this code base.

+1
I have been tracking the progress for a while and I have to say it's slow :/

+1

+2 @shawn-simon-developer

FYI I found this: https://www.youtube.com/watch?t=1956&v=sfV0ApyN5fM
That's about a week and a half old but it may provide some answers.

thanks @hannahhoward that was indeed helpful.
Am I right in understand that active development on the router is going in angular/angular atm? But that at some point it's going to shift back to this repo?

That's the idea. However, looking at the Angular weekly meeting notes, it seems like the router won't be out for a while, ng1 or ng2:

May 11th, 2015 (Proposed Agenda)

(igor): router
Too many rough edges, not ready for v1.4. Work with Brian and Matias to improve it.
Improve animation support. (directionality of the state transition)
Improved migration story.

Ahh well, that's a shame. I'm thinking of checking out the angular / angular repository and seeing if I can build an es5 new router out of it. Perhaps it's not too broken for my current project, which is just switching between tabs and views in a single page app. I don't need really need animation or a migration story.
Has anyone else had any luck extracting useful es5 routing code from angular / angular?

Haven't tried it with Angular 1.x, but for Angular 2 it's pretty much broken as well. AFAIK this is the latest version of the router https://github.com/btford/angular/tree/refactor-router-navigate, but I couldn't get it work with ng2.
Would be real nice to have a lil more info from @btford.

The Meeting Notes have a little more to say this week.

Brian and Matias will work with Igor on plug-ins for build improvements. File build issues under the "Build" milestone for angular 2 so we can find them.
Once typescriptification and build stability are in, router, decorators, custom render, and finalising the public api in the core (app injector, pipes, forms) are next in terms of urgency.

Looks like the router is taking a backseat to "typescriptification" atm...it sure is hard to keep up with the latest goings on.

The whole router story is nothing but sad...

+1
I switched to ngNewRouter for a new project, based on the ng-conf presentation too. So now I have to cut bait and retool with ui-router. Certainly discourages me from being an early-adopter in the future.

+1

+1

@dereklin A few weeks ago the new router was a few weeks away, but now it is more uncertain. This new router would work both in Angular 1 and 2, so it depends on how urgent you need a router. I wanted to use it with my current project, but now I probably should change to some other router.

Yes, I was very hopeful about Component Router, but have just spent ~4hrs pulling it out and replacing it with ui.router. It's not too bad a transition to go back from Component Router to ui.router. I think starting with Component Router gave our app a good component-based structure and will be an easier transition to new router and angular2 once they're ready.
I'm guessing the angular guys have disappeared into a migrating-to-TypeScript hole (a.k.a typescriptification), wondering when they will emerge :)
Cheers,
Geoff
Geoff Bush / Development Manager / iLign Ltd
T: + 64 4 910 5688, M: +64 21 104 2878
E<EMAIL_ADDRESS>W: www.ilign.com
Level 4, Anvil House, 138 – 140 Wakefield Street
PO Box 19-132, Te Aro, Wellington, 6149, New Zealand.

From: Frode Fikke<EMAIL_ADDRESS>Sent: Tuesday, 26 May 2015 10:53 a.m.
To: angular/router
Cc: Geoff Bush
Subject: Re: [router] progress? (#317)
@dereklinhttps://github.com/dereklin A few weeks ago the new router was a few weeks away, but now it is more uncertain. This new router would work both in Angular 1 and 2, so it depends on how urgent you need a router. I wanted to use it with my current project, but now I probably should change to some other router.
—
Reply to this email directly or view it on GitHubhttps://github.com/angular/router/issues/317#issuecomment-105330668.

I got think the proposed new router looks promising. Should be familiar to people who have used DurandalJS before.
Anyway, lazy loading does not seem to be slated for 1.4, but is instead targeted for 1.5
Got some more info regarding progress on the lazy loading component of the router via twitter
https://twitter.com/helgevold/status/600525678010839040

Just switched from the new router to ui-router.  It was pretty quick.  Also, we had a problem with a value not binding in a directive using the new router.  It's fixed when using ui-router.  The new router is buggy.  Hope all the bugs will be fixed soon and new features will be added.  Then we'll have one router to rule them all... (That's the message I got when I first used the new router)

Router was pulled from release:
http://angularjs.blogspot.com/2015/05/angular-140-jaracimrman-existence.html

Ok, so now the router has been officially pulled from the 1.4 release. But perhaps we at least could use the latest version of the new router, even if it is not 100% ready for official release? As I understand it, the latest version is not available here. The version that is here has too many limits for it to be used.

I am hoping the activity on this router will not suffer from the similarity to t-fords...

sorta update on remaining issues. Seems clear development is happening on angular/angular. https://github.com/angular/angular/issues/2329

Check the updates there https://github.com/angular/angular/issues/2329

The router is finally usable now with TypeScript typings. I have created an example here if you are interested:
http://www.syntaxsuccess.com/viewarticle/routing-in-angular-2.0
The code is also on Github (link in article)

This is the status currently

Now Angular issue #3774 seems like the interesting one to keep an eye on, from an Angular 1 perspective...

new code is here:
https://github.com/angular/angular/tree/master/modules/angular1_router
Anyone tried it with the examples and have success?


Create vccs.txt

Add Virginia's Community Colleges
url : http://www.vccs.edu/
IT-related long-term course url : http://courses.vccs.edu/courses/CSC-ComputerScience?filter=WW-ER
If you have any trouble, tell me about it.
Thanks.

@LoadedDK Hi.
Regrettably, vccs.edu gives email addresses in their email domain to strangers, not only students or teachers. You can read more about it if google for "get temporary email vccs.edu" or something similar.
In particular, you can read a relevant comment at https://www.spoofee.com/how-to-get-a-free-.edu-email-address/deals/848700. Thus, vccs.edu will not be added. Thank you for the understanding.


removed duplicate css styles

I removed duplicate css styles from the file

I am having merge conflicts I will resolve and I will open new PR

ok


fix(preload): Pass errors through successPromise.

Previously, preload errors were passed through the destroyPromise, which is contrary to our normal practices.

Actually, thinking about this some more, now that I have added successPromise_, destroyPromise_ doesn't really do anything anymore. It'd probably be better to just remove it, it was a sort of misleadingly named variable anyway.

@theodab please merge if you approve of the change I made

Looks like it's failing a test... my bad

I can't approve this since it's technically still my own PR, but I've looked over Joey's change and approve of it.


#24 support parameter in destroy method to force clean up animation

@hollowdoor Could you please review this PR for the issue #24

Could you add the change to the readme docs?

@hollowdoor It's ok now. Please take a look.

These changes are now published to npm.


exclude comprehension iteration variable from identity access tracker

comprehension iteration variable is not an identity the caller is interested in

I pushed two commits. Feel free to squash.

One is a small improvement for comparison of outputs in the test (using assert.ElementsMatch)
Another one exposes an issue in case of two levels of map (or other comprehensions). The second level undoes the exlusion added for the first level. I think we can fix it, if use a stack rather than a pointer for compIterVar and check against the whole stack.


Containerize your microservice using Docker

As a developer
I need to containerize my microservice using Docker
So that I can deploy it easily with all of its dependencies
Acceptance criteria
Given the Docker image named accounts has been created
When I use docker run accounts
Then I should see the accounts service running in Docker


EPIC: Cookie guidance

What
The cookie guidance and pattern is presently being worked on by one of the mission teams and when this work is completed it would be useful to share this work with the wider community in the form of guidance and potentially pattern.
Why
All sites need information on cookie banners and when the NHS UK site has revised it's usage this has been agreed at the highest level within the NHS IG Community and therefore should be used as best practice. This should enabke others to use the agreed wording and styles with minimal IG input as agreed nationally.
Must

[ ] Review work undertaken by mission team

[ ] Develop appropriate guidance to go alongside the patterns proposed

[ ] Undertaken any necessary user research to gauge the impact of the cookie guidance on end users of services.

[ ] Implement new guidance within the Service Manual

Should
Outcome
Cookie Guidance available for use across the NHS domain signed off by senior information governance team within NHS D and available for wider usage outside NHS D.

Informed that this was linked to changes GDS were making but they got push back-no one is working on this and there is no issue in the feature backlog.


Attempt at fixing resample failure with datetime

Checklist

[x] Enable and install pre-commit to ensure style-guides and code checks are followed.
[x] Include documentation when adding new features.
[x] Include new tests or update existing tests when applicable.

@matt-long, I tried patching #118 however, I still haven't found a solution to the first case scenario when dataset is opened with decode_times=True. The temporarily fix is to raise an exception. Should I merge this?

@andersy005, nice work. Go ahead and merge.


added check for docker or kubernetes platform

Signed-off-by: Neha Lohia<EMAIL_ADDRESS>Description
This PR fixes #3444
Notes for Reviewers
Signed commits

[ ] Yes, I signed my commits.

Codecov Report

Merging #3562 (bdbf12a) into master (fca60c0) will decrease coverage by 8.41%.
The diff coverage is 0.00%.

:exclamation: Current head bdbf12a differs from pull request most recent head 4d8ae5a. Consider uploading reports for the commit 4d8ae5a to get more accurate results

@@            Coverage Diff             @@
##           master    #3562      +/-   ##
==========================================
- Coverage   18.58%   10.16%   -8.42%
==========================================
  Files          37       37
  Lines        3299     3304       +5
==========================================
- Hits          613      336     -277
- Misses       2531     2901     +370
+ Partials      155       67      -88

Flag
Coverage Δ

gointegrationtests
?

unittests
10.16% <0.00%> (-0.02%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/system/start.go
1.18% <0.00%> (-53.04%)
:arrow_down:

mesheryctl/internal/cli/root/system/status.go
0.00% <0.00%> (-64.62%)
:arrow_down:

mesheryctl/internal/cli/root/system/stop.go
0.90% <0.00%> (-39.10%)
:arrow_down:

mesheryctl/internal/cli/root/system/check.go
1.48% <0.00%> (-22.23%)
:arrow_down:

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 fca60c0...4d8ae5a. Read the comment docs.

@nehaLohia27 I tweaked the formatting and language used.

thanks @leecalcote @hexxdump @metonymic-smokey @piyushsingariya  for the help.


Adds fromArray and of creation operators. Adds combine and zip operators. Adds tests. Fixes typos.

I didn't merge this because of the ongoing discussion about the higher-kindness issues, and the flux of the TC39 spec.  But I did try to use it as a reference point for the work. Thanks, so much, @trxcllnt, your input and expertise on this project has been insanely valuable. In particular, working through the code you originally wrote that I ported for the beginnings of this project.


fix: lookup photo based on md5 hash only for key-constraint requirements

I do not have the cleanest image directory structure, and I expect most users do not.
psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "api_photo_pkey"
DETAIL:  Key (image_hash)=(9964563822bd175171fe2412dac212431) already exists.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/code/api/directory_watcher.py", line 98, in handle_new_image
    photo = Photo.objects.create(
  File "/miniconda/lib/python3.8/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/miniconda/lib/python3.8/site-packages/django/db/models/query.py", line 433, in create
    obj.save(force_insert=True, using=self.db)
  File "/miniconda/lib/python3.8/site-packages/django/db/models/base.py", line 748, in save
    self.save_base(using=using, force_insert=force_insert,
  File "/miniconda/lib/python3.8/site-packages/django/db/models/base.py", line 785, in save_base
    updated = self._save_table(
  File "/miniconda/lib/python3.8/site-packages/django/db/models/base.py", line 890, in _save_table
    results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
  File "/miniconda/lib/python3.8/site-packages/django/db/models/base.py", line 927, in _do_insert
    return manager._insert(
  File "/miniconda/lib/python3.8/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/miniconda/lib/python3.8/site-packages/django/db/models/query.py", line 1204, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "/miniconda/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1394, in execute_sql
    cursor.execute(sql, params)
  File "/miniconda/lib/python3.8/site-packages/django/db/backends/utils.py", line 100, in execute
    return super().execute(sql, params)
  File "/miniconda/lib/python3.8/site-packages/django/db/backends/utils.py", line 68, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/miniconda/lib/python3.8/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/miniconda/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "/miniconda/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/miniconda/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
django.db.utils.IntegrityError: duplicate key value violates unique constraint "api_photo_pkey"
DETAIL:  Key (image_hash)=(9964563822bd175171fe2412dac212431) already exists.

I have duplicated images in different directorys. This violation of the key constraint is due to the lookup comparing the md5 hash and the file path. There is no uniqueness constraint in the database index for the path, thus this error will pop up and halt processing. The md5 uniqueness should be the truth for a unique image, this may have downstream effects. If those are undesirable, the database index should be updated to enforce uniqueness on md5 and the path if this is the desired approach.
My linter is also stripping whitespace.

Thanks for the pull request!
I think the idea was to also have a category of "moved images", where the program would update the file path. If we know that the file path is always valid, then we also can implement a function to clean the database. It would be possible to remove missing images by looking up the file at the file path.
But that is not implemented yet, so I think we can remove it for now.

@derneuere Alternatively, we could also return the lookup code on path (reversing this PR) and modify the calculate_hash function to include the path as part of the md5, then each image + path would be unique for a given user id.

I think it is fine for now.
The problem with your approach is, that you can't update the primary key in django. The primary key of the photo object is sadly the md5 hash of the photo. Also, the thumbnails are named after the hash.  If a photo gets moved, we would have to create a new photo with all the old data and relationships to other entities. We would then need to create new thumbnails.
In the future I would like to migrate the photo objects to use a UUID instead of a hash as a primary key. Then we can do lookups with a new image hash field and the path to implement moved images and deletion of images.

I pulled the last Docker image, the file scanner is broken:
2021-02-16 19:25:54,793 : directory_watcher.py : scan_photos : 242 : ERROR : An error occured:
Traceback (most recent call last):
  File "/code/api/directory_watcher.py", line 230, in scan_photos
    walk_directory(user.scan_directory, fc)
  File "/code/api/directory_watcher.py", line 173, in walk_directory
    if not is_hidden(fpath) and not should_skip(fpath):
  File "/code/api/directory_watcher.py", line 46, in should_skip
    skip_list = map(str.strip, skipList)
NameError: name 'skipList' is not defined
2021-02-16 19:25:54,800 : directory_watcher.py : scan_photos : 246 : INFO : Added 0 photos

@alexislefebvre Unrelated the this merged PR, but I have a new PR to fix it: https://github.com/LibrePhotos/librephotos/pull/173

My bad, I saw it in the diff, it's shown because it's following one change, but that line wasn't changed.


clarify the issue with where_object_changes for numeric values

History
The first problem mention.
The major issue with relevant discussions.
Details
I see the problem only with one specific case – when the method is where_object_changes and the serializer is YAML. Which is a default configuration.
I see there are 6 types of queries with a numeric value for where_object_changes and where_object (grabbed from version_spec.rb):
# where_object_changes
# 1
SELECT "versions".* FROM "versions" WHERE "versions"."item_id" = 1 AND "versions"."item_type" = 'Widget' AND (object_changes @> '{"an_integer":[1]}')  ORDER BY "versions"."created_at" ASC, "versions"."id" ASC

# 2
SELECT "versions".* FROM "versions" WHERE "versions"."item_id" = 1 AND "versions"."item_type" = 'Widget' AND ("versions"."object_changes" ILIKE '%
an_integer:
- 1
%' OR "versions"."object_changes" ILIKE '%
an_integer:
-%
- 1
%')  ORDER BY "versions"."created_at" ASC, "versions"."id" ASC

# 3
SELECT "versions".* FROM "versions" WHERE "versions"."item_id" = 1 AND "versions"."item_type" = 'Widget' AND (((object_changes->>'an_integer' ILIKE '[1,%') OR (object_changes->>'an_integer' ILIKE '[%,1]%')))  ORDER BY "versions"."created_at" ASC, "versions"."id" ASC

# where_object
# 4
SELECT "versions".* FROM "versions" WHERE (object @> '{"an_integer":1}')

# 5
SELECT "versions".* FROM "versions" WHERE (object->>'an_integer' = '1')

# 6
SELECT "versions".* FROM "versions" WHERE ("versions"."object" ILIKE '%
an_integer: 1
%')

The only problematic one is #2. It incorrectly matches object_changes like
---
name:
-
- Kimberli
an_integer:
-
- 0
created_at:
-
- 2017-09-28 18:30:13.369889000 Z
updated_at:
-
- 2017-09-28 18:30:13.369889000 Z
id:
-
- 1
---
name:
- foobar
- Hayes
an_integer:
- 77
- 1
updated_at:
- 2017-09-28 18:30:13.383966000 Z
- 2017-09-28 18:30:13.395539000 Z

@batter @jaredbeck correct me if I'm wrong.

Hi Sergey, Thanks for the contribution!
It sounds like where_object_changes+YAML has the same issue as where_object_changes+JSON-in-text-column, as described in https://github.com/airblade/paper_trail/issues/803. I think the same solution (https://github.com/airblade/paper_trail/pull/993) would be appropriate here.
What do you think?

It sounds like where_object_changes+YAML has the same issue as where_object_changes+JSON-in-text-column, as described in #803. I think the same solution (#993) would be appropriate here.

To clarify, I am suggesting that we raise an error when someone is storing YAML in a text column and they call where_object_changes. Sound good?

@jaredbeck I think applying a "solution" like #979 + #993 is better than not applying it.
Ideally such cases should be fixed, but I'm not interested in a text column.

FYI I fixed a failed spec example by changing
let(:int) { column_datatype_override ? 1 : rand(5) + 1 }

to
let(:int) { column_datatype_override ? 1 : rand(5) + 2 }

Initially I didn't take into account rand(5) + 1 may return 1 :flushed:

It sounds like where_object_changes+YAML has the same issue as where_object_changes+JSON-in-text-column, as described in #803. I think the same solution (#993) would be appropriate here.

To clarify, I am suggesting that we raise an error when someone is storing YAML in a text column and they call where_object_changes. Sound good?

@jaredbeck I think applying a "solution" like #979 + #993 is better than not applying it.

OK, raising an error is a breaking change, so we should start with a deprecation warning , just like we did in #979. If you agree, will you please add such a warning, Sergey? Thanks!

@jaredbeck I added a deprecation warning. Let me know if you think commits should be squashed.

Looks perfect! Thanks Sergey.

We'll wait a few months after this deprecation warning is released to give people a chance to discuss the issue here. Then, if no concerns are raised we will replace the warning with an error.


Deprecate the use of short key IDs

Some discussion here: http://security.stackexchange.com/questions/74009/what-is-an-openpgp-key-id-collision
With a link to the key take away at: http://tools.ietf.org/html/rfc4880#section-3.3
The long IDs already work fin but it would be nice to start throwing a warning message when the apt_repository resource is used with a short ID.

We've removed the apt_update and apt_repository resources from this cookbook as they were merged into core chef. I'm going to close this issue out now. If you think it's still valid against a new chef-client release please open it up against the chef/chef repo so we can work on it where the code now resides.


Produce a list of images used by a given istio release

Describe the feature request
It is desirable to have visibility to all list of images used by a given istio release, as the images are in different places among docker.io and quay.io.  One way is to reproduce this info to our existing istio.VERSION file so it captures not only control plane but also the data plane and the addons.
Describe alternatives you've considered
Doing this manually for each release and can be error prune.
Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ x] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@johnma14 - could you look at this?

@linsun will do. Thanks.

In 1.4 we plan to get rid of istio.VERSION via https://github.com/istio/istio/issues/16887. Just want to make sure we don't waste effort here


Use the Terraform Google Cloud VPC module and start managing main node pool service account

In this PR, we:

Refactor the resources to provision VPCs and subnets to use the Google Cloud network module.
Start managing the "main node pool" service account.

Other fixes:

Enable the cloudresourcemanager API before anything else because some Terraform resources depend on that API to be enabled.
Make the google_project.project data source that depend on the cloudresourcemanager API to be enabled to avoid concurrency issues.
Reference the google_project.project data source instead of the var.project_id variable for additional validation.
Reduce duplication by referencing local variables for the GKE cluster subnet secondary ranges.
Shorten the GKE cluster name to avoid validation errors when creating service accounts that depend on that name.
Configure IAM bindings for service accounts before using them for the cluster node pools.

LGTM


C++ SDK no destructor body

For some time now I got weird linker errors when I try to delete pointer to agones::SDK. When I looked at the source I saw that there is a destructor declared in the .h file, but it is missing in the .cpp file.
There are a few ways to fix it:

Delete the declaration in the header file: ~SDK();
Add empty body in cpp file: agones::SDK::~SDK() { }
Set it equal to default in the header file: ~SDK() = default;

Please submit a PR! My c++ is not good, as you can see!


Ionic 2 Gesture docs

From @rubimazaki on September 26, 2016 11:11
Please provide us with some basic docs/example of using Ionic2 Gestures?
Current state is most annoying, because you cannot use the old (mousedown) or (mousemove) to create your own mechanism, while gesture handling is provided by Ionic2 just not documented AT ALL. Not even some basic example in the source tree. Nothing...
Example anyone?
Thanks :-)
Copied from original issue: driftyco/ionic#8211

https://github.com/driftyco/ionic-site/issues/438

Really funny how you refer one open bug to another "closed" bug...
There are no docs for gestures, admit it instead of closing the issues. Yeah it looks bad on the statistics, but it is an open bug. And for what I understood, not only there are NO docs about gesture management, the code actually has at least 3~4 different mechanisms overlapping each other: UIEventManager, hammer.js TS wrappers (and Manymore...) with each of the undocumented classes (Gesture, PanGesture, SwipeGesture, ...) using a different API

Please see the comment on the original issue.
https://github.com/driftyco/ionic-site/issues/438#issuecomment-249786058
Some APIs are undocumented and hidden for a reason. They're internal to the framework and are not meant to be used by a developer.


Main.yml fails to build wheel when somoclu is a dependency

In a fresh fork of RAIL, I have:

a workflow run that fails the Install dependencies step (with the pyproject.toml exactly as in RAIL)
a workflow run that passes the Install dependencies step (and fails the somoclu tests, because I've taken somoclu out of the pyproject.toml)

Going to keep looking into this, but if anyone has any insight, that would be fantastic.
(For the record: I did change main.yml to use only python 3.10 to simplify isolating the issue. Also excluded the redundant pip install numpy line from main.yml, but I've checked since and the issue remains with or without it.)

Not for me--I did this in a fork after running into issues in my current PR on RAIL.

I see there is a separate pip install numpy in the main.yml GitHub action.  Josue pointed out that a new version of pip was released over the weekend, could there be some issue/change in dealing with multiple separate pip installs in a single action now, i.e. some sort of code isolation?  I'm totally guessing here, it could be coincidence that it is numpy giving us problems and being the only thing we install separately, but we could try removing that separate numpy install and see if anything changes.

I wondered about that too, but tried both with and without the explicit pip install numpy yesterday with no luck.


Feature/blockade monkey

WIP: In the direction of blockade chaos.

For the partition event N target containers are selected and each is put in its own partition.  All remaining containers are put in a single separate partition.  This allows for the user to have some limited degrees of chaos.  Another event should be added which allows for partitions to be created without any limits.

Overall looks good to me.


Intel views no longer link to blazer

This code will close https://github.com/brandnewbox/cppr-institute/issues/830.
The code stating "None set - add them in blazer" was being set by the docs.html.haml file in the blazer gem. This code was NOT in our bnb version of blazer so I added the file to our version and removed the links to blazer.
Note: I cannot seem to find a way to test this locally. @ashleyHutton do you know a way where we can test a local version of our blazer gem?

@ianfletcher314 can you follow the docs here to set it up locally? https://github.com/brandnewbox/bnb_blazer#development

@ashleyHutton I tested locally ran into some errors and found a solution.
Updated local view:

@ashleyHutton I updated the view code and it seemed todo the trick:


Ajax load / reload

Is it possible to load the datatable using Ajax onchange event in javascript?
In another way, initially created datatable on the page load and tried to reload as normal datatable,but couldnt.

Yes you can re-initialize the table but for this please refer to DataTables documentation.


There is one node work2 only in my k8s cluster, but the pod is scheduled to woker1

Describe your issue here

There is one node work2 only in my k8s cluster, but the pod is scheduled to woker1
to #16243

Useful
Info

Versions
Rancher v2.1.0 UI: v2.0.77

Route
containers.index

There is no reproduce steps.  We can not help
Can you supply more info on your setup (basically copy paste from this and fill in: https://raw.githubusercontent.com/rancher/rancher/master/.github/ISSUE_TEMPLATE.md)

You can find us in wechat by searching rancher2.


Password strength meter

solved issue #11
PASSWORD STRENGTH METER

hey @Rohit-sharma04,
please resolve the conflict

Important Announcement:
Dear Contributors,
I regret to inform you that our repository has been excluded from Hacktoberfest participation due to certain reasons. As a result, any contributions made to this repository during Hacktoberfest will not count towards the event.
We understand that many of you were eager to contribute to our project, and we sincerely apologize for any inconvenience this may cause. We value and appreciate your interest in our work.
If you're still interested in contributing to open source projects for Hacktoberfest, we encourage you to explore other repositories and communities that are participating in the event. There are many exciting projects out there that would greatly benefit from your contributions.
Once again, we apologize for any inconvenience and thank you for your understanding. We hope to welcome contributions to our repository in the future when it becomes eligible for such events.
Best regards,
Jayesh Jain


ARROW-10168: [Rust] [Parquet] Schema roundtrip - use Arrow schema from Parquet metadata when available

@nevi-me This is one commit on top of https://github.com/apache/arrow/pull/8330 that I'm opening to get some feedback from you on about whether this will help with ARROW-10168. I think this will bring the Rust implementation more in line with C++, but I'm not certain.
I tried removing the #[ignore] attributes from the LargeArray and LargeUtf8 tests, but they're still failing because the schemas don't match yet-- it looks like this code will need to be changed as well.
That build_array_reader function's code looks very similar to the code I've changed here, is there a possibility for the code to be shared or is there a reason they're separate?

Ok @nevi-me, I rebased this PR on the branch and I think this is ready for review now. It pushes more type information from the arrow metadata schema down into the reading code... the LargeBinary and LargeUtf8 tests are still failing, but no longer because their schemas don't match ;)

@carols10cents did you see https://github.com/integer32llc/arrow/pull/2/commits/55a049b2463b2d7804f91e38af0d56bf8c146ad5 from about 10 minutes before you force-pushed?

@nevi-me I saw it just after :) I'm looking at it now! I don't think there are conflicts, and I think my last commit is addressing a different issue than your last commit?

@nevi-me I saw it just after :) I'm looking at it now! I don't think there are conflicts, and I think my last commit is addressing a different issue than your last commit?

Yes, it addresses something different, as mine only really adds an alternative projection on columns, and preserves the metadata

@nevi-me I added your commit onto this branch!

Merged


Customising player movement?

I have a completely bonkers idea to restrict player movement/attacks based on class. Essentially I want chess-style movement. Some characters can only move diagonally - others can only move up and down etc. Can you give me some pointers on your code as to where I might start with this crazy endeavour? I see there is stuff to allow skills to have custom ranges (diamond, square, line). Could this be used for player movement too?

https://github.com/belmoussaoui/Tactics-System/blob/ed38d7c1e065dc3cc9eacdec505e11a2517c43bf/Tactics_Basic.js#L3119
the reference indicates the method that adds the valid tiles from an event (actor or enemy) with a distance (move point). from memory it uses the dijkstra algorithm. no, you can't use what was done with the action ranges for the move because the action range ignore the passable tiles.


SVGs not displaying when saving as PDF in MS Word

When the template has an SVG, the image renders as expected, but when saving the output document as PDF it shows 'This picture can't be displayed.
const buffer = await createReport({
  template: fs.readFileSync("template.docx"),
  additionalJsContext: {
        exampleSvg: async () => {
          return {
            width: 14,
           height: 8,
           data: [[SVG_BASE64_STRING]],
            extension: ".svg"
          };
        },
});
fs.writeFileSync("output.docx", buffer);

Example Base64 SVG used
Template used
Output document
Document saved as PDF

Environment:
MS Word 16.51
docx-templates v4.7.0
Node v14.2.0
Mac OS X v11.4
Reproduced using Preview and Adobe Acrobat Reader DC
Thank you

Thats super weird, I can't reproduce this when converting the output document you posted to pdf using Word 16.51. I could view it just fine, using Preview, macOS 10.14.6 (18G9216)).
Are there other factors at play that you can think of?

Oh how strange!
I have noticed that if you use Print as PDF it renders. It seems to only occur with electronic distribution enabled:

Can you reproduce it with that selected?

I have to change my privacy settings for that and checkbox some EULA, so i'd rather not try it...
Can you try what happens when you take docx-templates out of the equation entirely, and just copy the SVG into a new document just by using Word? If that works, it is likely a problem in the interaction between the mysterious 'microsoft online service' and SVG embeds, not docx-templates.

Sure, I have tested a blank doc with an SVG inserted manually (not generated) and it saves correctly.

Right clicking the generated SVG image and selecting 'Convert to Shape' fixes the issue if that helps narrow it down, let me know if theres anything else I can provide that might help.


moved configuration out of app.js and into project-level modules to b…

…etter follow our own best practicies. added inline comments explaining what's going on and beefed up the README just a little bit.

Should probably say:
jQuery and lodash (_)
On Thu, Mar 30, 2017 at 10:10 AM, Kerry Gilbert<EMAIL_ADDRESS>wrote:

@colpanik commented on this pull request.
In lib/modules/apostrophe-assets/public/js/site.js
https://github.com/punkave/apostrophe-boilerplate/pull/5#discussion_r108936003
:

@@ -0,0 +1,5 @@
+$(function() {

// Start with your project-level client-side javascript here.
// JQuery is included with Apostrophe, so no need to include it on your own
console.log('Hello world.');
+});

Happy to remove the js and just leave the comment in the empty file.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/punkave/apostrophe-boilerplate/pull/5#discussion_r108936003,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB9fTYvnf8r5sNz2tfU6ZnEpA_C1D2lks5rq7e8gaJpZM4MtYJF
.

--
*THOMAS BOUTELL, *SUPPORT LEAD
P'UNK AVENUE |<PHONE_NUMBER>  |  punkave.com


Add signup functionality

Add dropdown menu for logging out

Fix bug #99

Closes #99

Coverage decreased (-4.5%) to 66.082% when pulling 438bf0d4b0f879d0139e2a2d7678ffc2cc2406e7 on zackcarlson:master into bee8da10c6e31a4598560549ce4e708b67e17a17 on TIRaveler:master.