Does 'alterId''s value affects VPS performance?

Does the 'alterId''s value affect VPS performance?
The value in my server and client's config.json shows "alterId": 1024 (and it's working fine),but I just noticed that the default config.json in /etc/v2ray/ from right after running the install script shows "alterId": 64,should I change the value in my file to 64?
Does this affect anything?

alterId affects the amount of memory used by V2Ray process. The previous setting of 1024 causes over 50 MB usage. Combined with the dynamic port feature, total memory usage could be several hundreds of MB. I reduced the default value of "alterId" simply because many people complained about memory usage.
The communication speed of V2Ray is not affected by "alterId", unless V2Ray uses too much memory and triggers swapping.
More details here: https://www.v2ray.com/zh_cn/chapter_03/01_effective.html#alterid

Thanks for the clarification.

Depend on your network usage. I recommend the value to be the number of average network connections per second to your VPS. Say 30 to 40 for a regular usage. 100 is definitely safe for a single user VPS.

Though this issue was closed, I have to say that from what I've tested today, the 'alterid' value affects bandwidth a lot, especially on my low-end VPS server(1 CPU, 768M Memory, 25G SSD).
Before changing the value (alterid:1024), the test showed(sorry I forgot to do a screenshot) [PING:140 Download Speed:1.46Mbps Upload Speed:0.9Mbps], which was pretty sad.
After changing the value (alterid:200), the test showed

[PING:99 Download Speed:5.3Mbps Upload Speed:2.35Mbps],I‘m quite satisfied with this result now.

Can you choose a location with the same ping for test?

Actually both tests was on the same location, same server, just different alterid value. I don't have a clue why the ping value mismatch so much.
I'll try testing again tomorrow morning, and see if I can recreate the result.

I've done the testing this morning, in this method: test the speed---stop the v2ray service---change the alterid value in the config.json file on both server and client---start the v2ray service---test the speed  on the same location again after clean the browser's cache.
But, the result was really confusing...
TEST 1 [alterid 200]

TEST 2 [alterid 1024]

TEST 3 [alterid 200]

TEST 4 [alterid 1024]

All these tests were done in about 10 minutes, the speed was really unstable, maybe it's my VPS host's problem, or maybe it's not.
I turned on dynamic ports function on my server, could this be the problem?
Definitely need more tests.

I believe the results are reasonable. The difference in the speed is probably caused by some flakes in the network. You may try alterId=10 to confirm. I believe the value alterId has no impact on connection speed.

Yes, I've tested it once more this morning, I can confirm that the value of alterid does almost nothing to the bandwidth, maybe there is something wrong with the VPS host.
Thanks for the help.

I don't understand what alterId does, I've read the docs on VMESS, but the explanation is not clear for me.
Does alterId mean for example 2 devices can connect with same ID?

As far as I know alterId helps add further obfuscation and make your server less prone to being probed/blocked by a firewall.


PARQUET-1160: [C++] Implement BYTE_ARRAY-backed Decimal reads

This change enables support for DECIMALs backed by BYTE_ARRAYs on disk. It does this by creating a TransferFunctor routine that transforms a ByteArrayType to an ::arrow::Decimal128Type.
The routine does this by:

Creating an arrow::BinaryArray from the RecordReader's builder
Allocating a buffer for the arrow::Decimal128Array
Converting the big-endian bytes in each BinaryArray entry to two integers
representing the high and low bits of each decimal value.

rebased

@thaining ReadDecimals/TestArrowReaderAdHocSparkAndHvr.ReadDecimals/4 is failing in CI, can you have a look what's going wrong?

@xhochy, I am able to reproduce the problem locally by running 'ctest -L parquet'.  The problem is that the SHA for cpp/submodules/parquet-testing does not have the file byte_array_decimal.parquet needed for the test.   If I manually add that parquet file to $ARROW_ROOT/cpp/submodules/parquet-testing/data, the test passes.
When I do "git submodule update --init" on the arrow tree, it leaves the submodule at "HEAD detached at 48a657c".  That's the wrong SHA.  If I switch the submodule to the latest trunk, I get SHA 46ae260, which has the file.  The test also passes.


[feature]Request to save the entire HTML file instead of plain text

The current history is saved as plain text content. If we change to save the entire HTML content, we'll have more options when dealing with comparisons or other custom comparisons. Although storage adds space, the payoff is huge.

already noted in https://github.com/dgtlmoon/changedetection.io/issues/2254#issuecomment-2035432710 :)

You are kind of saying many mixed things in one line there
you mean most recent? or the HTML instead of the text? sometimes the HTML is 5-10mb... I dont think we should do this until we have some kind of quota management for disk space per watch

maybe better is to save the last 2

maybe better is to save the last 2

If we deploy it ourselves, we don't care too much about the file size. However, from the perspective of the commercial version you provide, you can provide the latest two days of record saving as an open source version for free. If users want more, they can pay for support.

https://github.com/dgtlmoon/changedetection.io/blob/d31fc860cc582b3a02569975777480f4b30baf47/changedetectionio/model/Watch.py#L547
ha, strangely, this is never called..

https://github.com/dgtlmoon/changedetection.io/blob/d31fc860cc582b3a02569975777480f4b30baf47/changedetectionio/model/Watch.py#L547
it gets called and saves one snapshot so far (tho only for the text-difference processor)


fix file_exists check

realpath returns false if file does not exist. Do we even need file_exists in that case?

Thanks!


Is that a right way that use docker entrypoint to excute .sh file and  put process /sbin/init into the CMD ?

Hi, it's me again, I have a question about process /sbin/init in docker,
here is my dockerfile :
Dockfile
and my script.sh file:
script.sh
and my docker-compose.yml:
docker-compose.yml
base on these file I build a image and named "base", and excecute cmd docker-compose up and the log information like this :

you see the output log information stuck  the message "Finished Update UTMP about System Runlevel Changes.", whereas I can still use ssh to visit the container , and so far everything is fine inside the container :

I worry about the situation that systemd log information stuck , here is my question:

Is there something wrong I don't know? if exist please tell me.
Is a right way that use docker entrypoint to excute script and  put process /sbin/init into the CMD ?

thanks,
Xiaotong.Zhao

Hi @XiaotongZhao, thanks again for using Sysbox.
I don't think it's working properly, as we would expect systemd to initialize. I suspect the problem is the way the CMD and ENTRYPOINT instructions are set up in the Dockerfile.
Question: what happens if you use only the ENTRYPOINT and remove the CMD instruction?
ENTRYPOINT [ "/sbin/init"]

Hi @ctalledo, thanks for your reply so fast,
Considering your question，I removed the CMD change dockerfile like this:

the log information like this:

as you see, the log information output successful, compare to log information before， it's just a little difference

Thanks @XiaotongZhao.

as you see, the log information output successful, compare to log information before， it's just a little difference

Did systemd reach the login prompt? It seems it got stuck too, but just a little bit later.

Hi, @ctalledo
If I use docker-compose to run container, it wouldn't reach the login prompt,
but if I run container base on the command like this :
docker run --runtime=sysbox-runc -it --rm -P --name=test  --hostname=syscont base
it would reach login prompt, like this:

Thanks,
Xiaotong.Zhao


Overlapping issue

Please use the below as a template when making your report.
Describe the bug
Overlapping MOdStarts right after the Vault
Is it already a known issue?
No
Steps to reproduce
happens every time i start a new game
Environment

OS: Win10
Hardware
Other details that you think may affect.

Contact:
Please list your discord name if you are in our discord:
Keldar

Additional context
This happened with the latest update as far as i know, 19:55 CET, wabbajack overwrite install. New Game ofc.
You can work aroung with keyboard, then use the mouse for the TAG Skills.
https://youtu.be/p-tiKPkTM7Y

Thank you, It's known at the moment. I can't fix it at this time, but click the option in the background as you did.


chore(java17): upgrading gradle to 7.2 and java11 to java17

btw gradle is 7.6 to match OSS and rest of the Armory services

@jasonmcintosh @edgarulg Since this isn't working when mixing 11 and 17, should I leave this for now and change the Jira ticket to block until we upgrade fully to 17?


Mollie is performing POST requests to the webhook url

Looks like this fix is not complete. I now get this error:
Uncaught PHP Exception Shopware\Storefront\Framework\Csrf\Exception\InvalidCsrfTokenException: "The provided CSRF token is not valid"

The webhook controller can now receive POST requests without the csrf being checked. Thanks for your input.

What was wrong with this MR? :thinking:


Sort imports using ruff

I have tried the ruff import tools, and I think they are going to work for us.
I tried it on a bunch of files, and it seems like it would work.
This solution was suggested by @drewj-tp , but I figure it would also have saved @mgjarrett some time in the past, too.

@opotowsky This is an easy PR, but I guess I am going to wait until the day after the release to make it happen.

Locally, running ruff check --select I --fix on select files helps in a pinch

Locally, running ruff check --select I --fix on select files helps in a pinch

After this PR, you will be able to do:

ruff check . --fix

And that will include imports along with all the other stuff.


Feature Request: View grids of image stack

🚀 Feature

I'd like to load a stack of images, and toggle view between single image and grid of chunk of images at a time.
Motivation

I work with non-3D stacks of images that I can look at frame by frame, but I'd like to look at a grid (say 6 x 10) at a time. When I started using Napari I thought toggle grid view would show me a grid of this stack, instead of showing a grid of all images loaded. This is useful to me (and others?) to quickly look at many images, or when labeling images for ground truth.
Pitch

I'd like a button or option for existing toggle grid view to display n x m grid of images from stack, with ability to scroll through all grids comprising the stack of images.
Alternatives

I can alternatively generate the grids myself and load them into Napari, but it's less flexible once in Napari

Just so you know, it's not a good idea right now to do labeling or annotation in grid mode, see https://github.com/napari/napari/issues/860 for an example of how that might cause problems. This is a problem that's actively being worked on, but it might take a fair bit of work (and time) to do.
If it's still useful to see your slices in grid mode (without annotating), it's probably easier to try adding each slice as it's own image layer and then clicking grid mode, instead of generating your own grids.

It also took me a minute to realize this feature request is not the same as https://github.com/napari/napari/issues/970, but I'm still going to link to that here because if anyone tries to adapt grid mode they will need to think about all these use cases.

@GenevieveBuckley I've done grid mode annotation before — it's 100% definitely feasible if you are careful with which layer is selected while clicking, and this can be achieved reasonably easily by setting up different colours for points in each layer.
@hectormz thanks for raising this issue! imho the best way to achieve this is to add "split selected image into layers" and "combine selected layers into image" functionality to the viewer.

@GenevieveBuckley thanks for pointing me to #860 ! Good to know!
@jni in the case of splitting image into layers, it would be as if I had loaded each image individually? Perhaps in that case they could be nested in the way that #970 suggests? I would most likely have a stack of ~10,000 images, so I wouldn't want to release them all to layers unless I could wrangle them.

@hectormz thanks for raising this issue! imho the best way to achieve this is to add "split selected image into layers" and "combine selected layers into image" functionality to the viewer.

I also think this would be a good feature to have.

@hectormz 😂 that would be a lot of layers, pretty sure we can't handle that many. One way to handle this case might be to use images = [da.roll(image, i, axis=0) for i in range(-12, 13)] (or whatever number of simultaneous slices you want) and pass those as independent layers to the viewer. Then when you use grid view you'll get the 25 slices around your current slice, which will be in the centre of the grid.

"split into layers" sounds very dangerous to me for cases with lots of images. and the inverse operation could open a can of worms. It seems like an cleaner way to solve the "view k different, adjacent slices of a dataset" is to just have k clipping planes. Geometrically this problem is actually very similar to orthoviews. Solve one and the other should be simple.

@d-v-b I think the split/merge operation would still be useful for many folks. (e.g. merge channels/split channels). We can build in sanity checks, "doing this would create a bajillion layers, are you sure you want to proceed?".
Agreed that the eventual orthoviews machinery can totally be repurposed for parallel views, but it'll need some UI/UX fiddling. In the meantime, this other solution might work fine for many use cases. (Pretty sure the da.roll thing works right now and should have the same performance properties as parallel views.)

@hectormz this might work for you: basically, I define a new, lazy array defined by the application of a montage function at every index (along one axis) of the input array.
import dask.array as da
import numpy as np
from skimage.util import montage
from dask import delayed
import napari

# create a montage of the planes before and after idx
def tiler(array, idx=0, sliding_axis=0, grid_shape=(3,3), padding_width=4):
    num_tiles = np.prod(grid_shape)
    # handle edges with np.clip
    indices = np.clip(idx + np.arange(num_tiles) - num_tiles // 2, a_min=0, a_max=array.shape[sliding_axis]-1)
    planes = np.take(array,indices , sliding_axis)
    montaged = montage(planes, grid_shape=grid_shape, padding_width=padding_width)
    return montaged

# make a lazy version of the tiler function applied at every index of the array
def make_lazy_tiles(data):
    planes = [delayed(tiler)(data, idx=idx, grid_shape=(3,3)) for idx in range(data.shape[0])]
    sample = planes[0].compute()
    return da.stack(da.from_delayed(p, dtype=sample.dtype, shape=sample.shape) for p in planes)

data = np.random.randint(0,128, (300,100,100)).astype('float32')
# jitter the mean of each image in the stack
data += np.random.randint(64,128, data.shape[0]).reshape(-1,1,1)
tiled_data = make_lazy_tiles(data)

with napari.gui_qt():
    viewer = napari.Viewer()
    viewer.add_image(tiled_data, name='tiled data')
    viewer.add_image(data, name='data')

@jni I realize it's quite a few images!
@d-v-b thanks for the work through, I've learned some things! For my particular use case, I only want to see each image once, so I modified your code a bit to suit my needs:
import dask.array as da
import napari
import numpy as np
from dask import delayed
from skimage.util import montage

# create a montage of the planes after idx
def tiler(array, idx=0, sliding_axis=0, grid_shape=(3, 3), padding_width=4):
    num_tiles = np.prod(grid_shape)
    # Truncate indices beyond array shape
    indices = idx + np.arange(num_tiles)
    indices = indices[indices < array.shape[sliding_axis]]
    planes = np.take(array, indices, sliding_axis)
    montaged = montage(planes, grid_shape=grid_shape, padding_width=padding_width)
    return montaged

# make a lazy version of the tiler function applied at every index of the array
def make_lazy_tiles(data, grid_shape=(3, 3)):
    planes = [
        delayed(tiler)(data, idx=idx, grid_shape=grid_shape)
        for idx in range(0, data.shape[0], np.prod(grid_shape))
    ]
    sample = planes[0].compute()
    return da.stack(
        da.from_delayed(p, dtype=sample.dtype, shape=sample.shape) for p in planes
    )

data = np.random.randint(0, 128, (301, 100, 100)).astype("float32")
# jitter the mean of each image in the stack
data += np.random.randint(64, 128, data.shape[0]).reshape(-1, 1, 1)
tiled_data = make_lazy_tiles(data, grid_shape=(3,3))

with napari.gui_qt():
    viewer = napari.Viewer()
    viewer.add_image(tiled_data, name="tiled data")

Now I realize that I don't know to get data from a points layer in the GUI (back in Jupyter etc). Is there a doc about this?

Okay, I've learned if I create a points layer named "Points" I can access it:
points_coords = viewer.layers["Points"].data

If I want to get these marked points and align them to my original stack of images I can do the following (not so elegant):
import dask.array as da
import napari
import numpy as np
from dask import delayed
from skimage.util import montage

# create a montage of the planes after idx
def tiler(array, idx=0, sliding_axis=0, grid_shape=(3, 3), padding_width=4):
    num_tiles = np.prod(grid_shape)
    # Truncate indices beyond array shape
    indices = idx + np.arange(num_tiles)
    indices = indices[indices <= (array.shape[sliding_axis] - 1)]
    planes = np.take(array, indices, sliding_axis)
    montaged = montage(planes, grid_shape=grid_shape, padding_width=padding_width)
    return montaged

# make a lazy version of the tiler function applied at every index of the array
def make_lazy_tiles(data, grid_shape=(3, 3), padding_width=4):
    planes = [
        delayed(tiler)(data, idx=idx, grid_shape=grid_shape, padding_width=padding_width)
        for idx in range(0, data.shape[0], np.prod(grid_shape))
    ]
    sample = planes[0].compute()
    return da.stack(
        da.from_delayed(p, dtype=sample.dtype, shape=sample.shape) for p in planes
    )

montage_padding = 4
grid_shape = (3, 3)
data = np.random.randint(0, 128, (301, 100, 100)).astype("float32")
# jitter the mean of each image in the stack
data += np.random.randint(64, 128, data.shape[0]).reshape(-1, 1, 1)
tiled_data = make_lazy_tiles(data, grid_shape=grid_shape, padding_width=montage_padding)

with napari.gui_qt():
    viewer = napari.Viewer()
    viewer.add_image(tiled_data, name="tiled data")
    viewer.add_points(np.empty((0,3)), size=8)

points_coords = viewer.layers["Points"].data
# Remove top and left padding
points_coords[:, 1:] -= montage_padding

# Find out of bounds points to ignore
out_of_bounds_points = np.logical_or(
    np.logical_or(
        points_coords[:, 1] < 0, points_coords[:, 1] > (grid_shape[0] * data.shape[1])
    ),
    np.logical_or(
        points_coords[:, 2] < 0, points_coords[:, 2] > (grid_shape[1] * data.shape[2])
    ),
)
points_coords = points_coords[~out_of_bounds_points]

# Convert coordinates to indices in 3D grid
points_coords[:,1] = np.floor(points_coords[:,1]/data.shape[1])
points_coords[:,2] = np.floor(points_coords[:,2]/data.shape[2])
points_coords = points_coords.astype(int)

# Convert zyx coordinates of 3D grid to 1D indices of original image stack
marked_indices = np.ravel_multi_index(
    (points_coords[:, 0], points_coords[:, 1], points_coords[:, 2]),
    tiled_data.shape[0:1] + grid_shape,
)


extend hide login button  to hide add userprofile button

coverage: 85.184% (+0.002%) from 85.182%
when pulling ee99ca0c1c2ae1a49f50fbd6c290529a3ede7e4c on hide-create-user-button
into 91fb9c0af2ea347153c8bbf59f8350d4fcb8b618 on main.


Soft match on UPN only works on non-federated accounts

It appears that all forms of soft matching won't work if an AAD account is created with a UPN suffix from a federated domain. Nor can the immutableId be changed for an AAD account (even when not yet synced) that is in a federated domain. The PowerShell Set-MsolUser command gives the error "You must provide a required property: Parameter name: FederatedUser.SourceAnchor" but that property is hidden from us. Nor can you create an AAD account in a federated domain without setting the immutableId. If an AAD user object is created with a federated UPN, then AADC sync duplicate attribute resiliency kicks in to create a second "quarantined" object rather than doing a soft match.

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

ID: efea1843-e7fa-ae34-c82f-1f58f0a341f7
Version Independent ID: 70cdc127-b82f-363b-866b-44c04d270a8e
Content
Content Source
Service: active-directory

@erickool We are looking into this and will get back to you.

@erickool Thanks. I am assigning this to author to add more details on UserPrincipalName soft match section based on your feedback.

@erickool  Thanks for the feedback.  Let me verify this with some of the developers and follow up with you.  We have some additional UPN info here:  https://docs.microsoft.com/en-us/azure/active-directory/connect/active-directory-aadconnect-userprincipalname but I think it needs some more information on "soft matching".  I will follow-up.  Thanks!

You might want to look up the support case REG:118010817427198 where I asked why soft-match-on-UPN wasn't working. The answer (after a long back and forth) is that soft-match only works in managed (non-federated) domains. The article does mention this WRT proxy address matching but didn't have the related caveat for UPN matching.
We have a desire for a provisioning workflow where an AAD object is staged first (with a federated UPN suffix) so that licenses can be applied and mailboxes created and then have the subsequently created AD object hook-up. But that won't work because of the limitations imposed by federated domains (you can't change UPN or immutableId for federated users, even if they are still cloud-only). Ideally you could change those things until AADC sync connects the objects but AAD currently doesn't allow that. We could change the source anchor but that is a much bigger change to our overall environment. I don't believe the option to change source anchor was even available when we initially set up AAD/O365 over 4 years ago. It is the kind of thing best done at that initial setup. Oh well.
Thanks,
Eric

From: Bill Mathers<EMAIL_ADDRESS>Sent: Friday, March 2, 2018 7:58:59 AM
To: MicrosoftDocs/azure-docs
Cc: Eric C Kool-Brown; Mention
Subject: Re: [MicrosoftDocs/azure-docs] Soft match on UPN only works on non-federated accounts (#5108)
@erickoolhttps://github.com/erickool Thanks for the feedback. Let me verify this with some of the developers and follow up with you. We have some additional UPN info here: https://docs.microsoft.com/en-us/azure/active-directory/connect/active-directory-aadconnect-userprincipalname but I think it needs some more information on "soft matching". I will follow-up. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/MicrosoftDocs/azure-docs/issues/5108#issuecomment-369962569, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AWU58LJMW-PePtTTOkh_e00cNevn09V3ks5taWxDgaJpZM4SXG5F.

@erickool  Just a follow-up.  I am waiting on confirmation from a developer.  If I don't hear back later today I will create a work item for this and follow up with him.  I will follow-up later today.

@erickool I have not heard back from the dev yet.  At this point, I created a work item for this and have it in my backlog.  I don't have an ETA on it but I will ping this thread once I have updated it.  Let me know if there is anything else I can do otherwise I will close this out later today.   Thanks!

@MohitGargMSFT  #please-close


Introduce APIRule v1beta2

Description
Changes proposed in this pull request:

APIRule v1beta2 api package
Conversion webhook
Certificate controller to handle certificate needed for webhook and rotation

Related issues
#986

The root cause for the failing UI tests is that the rules fields are not rendered. The UI renders the fields based on the Kubernetes OpenApi response. The OpenApi response is influenced by setting x-kubernetes-preserve-unknown-fields: true in the CRD. We can find more information about that in the Kubernetes CRD docs:

A structural schema is an OpenAPI v3.0 validation schema which:
specifies a non-empty type (via type in OpenAPI) for the root, for each specified field of an object node (via properties or >additionalProperties in OpenAPI) and for each item in an array node (via items in OpenAPI), with the exception of:
a node with x-kubernetes-int-or-string: true
a node with x-kubernetes-preserve-unknown-fields: true

For the old CRD the API response for rules looks like this:
"rules": {
          "description": "Represents the array of Oathkeeper access rules to be applied.",
          "type": "array",
          "minItems": 1,
          "items": {
            "description": "Rule .",
            "type": "object",
            "required": [
              "accessStrategies",
              "methods",
              "path"
            ],
            "properties": {
              "accessStrategies": {
                "description": "Specifies the list of access strategies. All strategies listed in [Oathkeeper documentation](https://www.ory.sh/docs/oathkeeper/pipeline/authn) are supported.",
                "type": "array",
                "minItems": 1,
                "items": {
                  "description": "Represents a handler that authenticates provided credentials. See the corresponding type in the oathkeeper-maester project.",
                  "type": "object",
                  "required": [
                    "handler"
                  ],
                  "properties": {
                    "config": {
                      "description": "Configures the handler. Configuration keys vary per handler.",
                      "x-kubernetes-preserve-unknown-fields": true
                    },
                    "handler": {
                      "description": "Specifies the name of the handler.",
                      "type": "string"
                    }
                  }
                }
              },
              "methods": {
                "description": "Represents the list of allowed HTTP request methods available for the **spec.rules.path**.",
                "type": "array",
                "minItems": 1,
                "items": {
                  "description": "HttpMethod specifies the HTTP request method. The list of supported methods is defined in RFC 9910: HTTP Semantics and RFC 5789: PATCH Method for HTTP.",
                  "type": "string",
                  "enum": [
                    "GET",
                    "HEAD",
                    "POST",
                    "PUT",
                    "DELETE",
                    "CONNECT",
                    "OPTIONS",
                    "TRACE",
                    "PATCH"
                  ]
                }
              },
              "mutators": {
                "description": "Specifies the list of [Ory Oathkeeper](https://www.ory.sh/docs/oathkeeper/pipeline/mutator) mutators.",
                "type": "array",
                "items": {
                  "description": "Mutator represents a handler that transforms the HTTP request before forwarding it. See the corresponding in the oathkeeper-maester project.",
                  "type": "object",
                  "required": [
                    "handler"
                  ],
                  "properties": {
                    "config": {
                      "description": "Configures the handler. Configuration keys vary per handler.",
                      "x-kubernetes-preserve-unknown-fields": true
                    },
                    "handler": {
                      "description": "Specifies the name of the handler.",
                      "type": "string"
                    }
                  }
                }
              },
              "path": {
                "description": "Specifies the path of the exposed service.",
                "type": "string",
                "pattern": "^([0-9a-zA-Z./*()?!\\\\_-]+)"
              },
              "service": {
                "description": "Describes the service to expose. Overwrites the **spec** level service if defined.",
                "type": "object",
                "required": [
                  "name",
                  "port"
                ],
                "properties": {
                  "external": {
                    "description": "Specifies if the service is internal (in cluster) or external.",
                    "type": "boolean"
                  },
                  "name": {
                    "description": "Specifies the name of the exposed service.",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Specifies the Namespace of the exposed service. If not defined, it defaults to the APIRule Namespace.",
                    "type": "string",
                    "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?$"
                  },
                  "port": {
                    "description": "Specifies the communication port of the exposed service.",
                    "type": "integer",
                    "format": "int32",
                    "maximum": 65535,
                    "minimum": 1
                  }
                }
              },
              "timeout": {
                "description": "Timeout for HTTP requests in seconds. The timeout can be configured up to 3900 seconds (65 minutes).",
                "type": "integer",
                "maximum": 3900,
                "minimum": 1
              }
            }
          }
        },

For the new CRD with x-kubernetes-preserve-unknown-fields: true the response looks like this:
"rules": {
          "description": "Represents the array of Oathkeeper access rules to be applied.",
          "type": "array",
          "minItems": 1,
          "items": {
            "description": "Rule .",
            "required": [
              "accessStrategies",
              "methods",
              "path"
            ],
            "x-kubernetes-preserve-unknown-fields": true
          }
        },

As far as I know Busola uses /openapi/v2 endpoint to load the schema and parse it.
You can reproduce this by checking the response of the request to this endpoint on initial rendering of Busola or directly query the Kubernetes API server using
kubectl proxy --port=8080 & and curl http://localhost:8080/openapi/v2

We should also create an ADR for the decision to handle the certificate rotation in the controller instead of using a separate job.

The root cause for the failing UI tests is that the rules fields are not rendered. The UI renders the fields based on the Kubernetes OpenAPI response from /openapi/v2. The OpenAPI response is influenced by setting x-kubernetes-preserve-unknown-fields: true in the CRD. ...`

we decided we will remove the preserveUnknownFields and for extAuths we will introduce it as a new handler in v1beta1 accessStrategies so we have it fully convertable v1beta1 <-> v1beta2

As far as I can see there is no integration tests for the init container behaviour. Was this a decision or did we forget to evaluate this?

As far as I can see there is no integration tests for the init container behaviour. Was this a decision or did we forget to evaluate this?

there is real integration test that is validating that the conversion works, so it is checked. But will think of adding some envtest to check the outcome of the init-container work.

It is possible to create a v1beta2 rule without JWT and NoAuth (or noAuth set to false). This will result in an APIRule without a status.
APIRule:
kubectl apply -f - <<EOF
apiVersion: gateway.kyma-project.io/v1beta2
kind: APIRule
metadata:
  name: httpbin-rule
  namespace: default
  labels:
    app: httpbin
spec:
  gateway: kyma-system/kyma-gateway
  hosts:
    - httpbin
  service:
    name: httpbin
    port: 8000
  rules:
    - path: /.*
      methods: [ "GET"]
      mutators: [ ]
EOF

APIRule after reconciliation:
apiVersion: gateway.kyma-project.io/v1beta2
kind: APIRule
metadata:
  annotations:
    gateway.kyma-project.io/original-version: v1beta2
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"gateway.kyma-project.io/v1beta2","kind":"APIRule","metadata":{"annotations":{},"labels":{"app":"httpbin"},"name":"httpbin-rule","namespace":"default"},"spec":{"gateway":"kyma-system/kyma-gateway","hosts":["httpbin"],"rules":[{"methods":["GET"],"mutators":[],"path":"/.*"}],"service":{"name":"httpbin","port":8000}}}
  creationTimestamp: "2024-05-14T08:29:33Z"
  generation: 1
  labels:
    app: httpbin
  name: httpbin-rule
  namespace: default
  resourceVersion: "370724"
  uid: 5826d3ec-4b72-49b0-b47f-cc3d702c12e2
spec:
  gateway: kyma-system/kyma-gateway
  hosts:
  - httpbin
  rules:
  - methods:
    - GET
    path: /.*
  service:
    name: httpbin
    port: 8000
status: {}

Maybe the following error that deletion is blocked is related to the issue reported in this comment.
Applying the following APIRule with invalid jwt config will set the APIRule correctly in Error:
kubectl apply -f - <<EOF
apiVersion: gateway.kyma-project.io/v1beta2
kind: APIRule
metadata:
  name: httpbin-rule
  namespace: default
  labels:
    app: httpbin
spec:
  gateway: kyma-system/kyma-gateway
  hosts:
    - httpbin
  service:
    name: httpbin
    port: 8000
  rules:
    - path: /.*
      methods: [ "GET"]
      mutators: [ ]
      jwt: {}
EOF

Updating the APIRule by removing the jwt field and applying the APIRule again will keep the previous error:
kubectl apply -f - <<EOF
apiVersion: gateway.kyma-project.io/v1beta2
kind: APIRule
metadata:
  name: httpbin-rule
  namespace: default
  labels:
    app: httpbin
spec:
  gateway: kyma-system/kyma-gateway
  hosts:
    - httpbin
  service:
    name: httpbin
    port: 8000
  rules:
    - path: /.*
      methods: [ "GET"]
      mutators: [ ]
EOF

Then deleting the APIRule will not work and deletion is blocked and there are errors in the controller logs:
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:37Z	INFO	apirule-controller	Starting reconciliation	{"namespacedName": "default/httpbin-rule"}
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:37Z	INFO	apirule-controller	Starting ApiRule reconciliation{"jwtHandler": "istio"}
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:37Z	INFO	apirule-controller	ApiRule is converted from v1beta2
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:37Z	INFO	apirule-controller	Reconciling ApiRule	{"name": "httpbin-rule", "namespace": "default", "resource version": "373798"}
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:37Z	ERROR	apirule-controller	Error happened during finalizer removal	{"error": "APIRule.gateway.kyma-project.io \"httpbin-rule\" is invalid: spec.rules[0].accessStrategies: Required value"}
api-gateway-controller-manager-686799c6ff-mt775 manager github.com/kyma-project/api-gateway/controllers/gateway.(*APIRuleReconciler).Reconcile
api-gateway-controller-manager-686799c6ff-mt775 manager 	/workspace/controllers/gateway/apirule_controller.go:201
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:119
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:316
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:266
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:227
api-gateway-controller-manager-686799c6ff-mt775 manager 2024/05/14 08:53:37 http: TLS handshake error from <IP_ADDRESS>:47392: EOF
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:38Z	INFO	apirule-controller	Starting reconciliation	{"namespacedName": "default/httpbin-rule"}
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:38Z	INFO	apirule-controller	Starting ApiRule reconciliation{"jwtHandler": "istio"}
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:38Z	INFO	apirule-controller	ApiRule is converted from v1beta2
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:38Z	INFO	apirule-controller	Reconciling ApiRule	{"name": "httpbin-rule", "namespace": "default", "resource version": "373798"}
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T08:53:38Z	ERROR	apirule-controller	Error happened during finalizer removal	{"error": "APIRule.gateway.kyma-project.io \"httpbin-rule\" is invalid: spec.rules[0].accessStrategies: Required value"}
api-gateway-controller-manager-686799c6ff-mt775 manager github.com/kyma-project/api-gateway/controllers/gateway.(*APIRuleReconciler).Reconcile
api-gateway-controller-manager-686799c6ff-mt775 manager 	/workspace/controllers/gateway/apirule_controller.go:201
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:119
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:316
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:266
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:227

Accidentally (😏 ) deleting the secret api-gateway-webhook-certificate  will cause a continuous failed reconciliation being logged by the manager. Shouldn't we implement some self-healing capabilities, because only a manual restart of the manager will fix this.
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T09:23:32Z	INFO	certificate-controller	Received reconciliation request{"namespace": "kyma-system", "name": "api-gateway-webhook-certificate"}
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T09:23:32Z	ERROR	Reconciler error	{"controller": "secret", "controllerGroup": "", "controllerKind": "Secret", "Secret": {"name":"api-gateway-webhook-certificate","namespace":"kyma-system"}, "namespace": "kyma-system", "name": "api-gateway-webhook-certificate", "reconcileID": "5b40d3d6-4e80-4df6-b55d-aec82729f2af", "error": "Secret \"api-gateway-webhook-certificate\" not found"}
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:329
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:266
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:227

kubectl apply -f - <<EOF
apiVersion: gateway.kyma-project.io/v1beta2
kind: APIRule
metadata:
  name: httpbin-rule
  namespace: default
  labels:
    app: httpbin
spec:
  gateway: kyma-system/kyma-gateway
  hosts:
    - httpbin
  service:
    name: httpbin
    port: 8000
  rules:
    - path: /.*
      methods: [ "GET"]
      mutators: [ ]
      jwt: {}
EOF

I not sure about this one, I was thinking about it and I am more of a fan to deal with the problem with the workaround (restarting the operator). Deleting Secrets is kind of harsh and this is kyma-system resource, so has to be handled with an incident. Not a fan in the self-healing in this case.

Accidentally (😏 ) deleting the secret api-gateway-webhook-certificate will cause a continuous failed reconciliation being logged by the manager. Shouldn't we implement some self-healing capabilities, because only a manual restart of the manager will fix this.
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T09:23:32Z	INFO	certificate-controller	Received reconciliation request{"namespace": "kyma-system", "name": "api-gateway-webhook-certificate"}
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T09:23:32Z	ERROR	Reconciler error	{"controller": "secret", "controllerGroup": "", "controllerKind": "Secret", "Secret": {"name":"api-gateway-webhook-certificate","namespace":"kyma-system"}, "namespace": "kyma-system", "name": "api-gateway-webhook-certificate", "reconcileID": "5b40d3d6-4e80-4df6-b55d-aec82729f2af", "error": "Secret \"api-gateway-webhook-certificate\" not found"}
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:329
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:266
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:227

I not sure about this one, I was thinking about it and I am more of a fan to deal with the problem with the workaround (restarting the operator). Deleting Secrets is kind of harsh and this is kyma-system resource, so has to be handled with an incident. Not a fan in the self-healing in this case.

Accidentally (😏 ) deleting the secret api-gateway-webhook-certificate will cause a continuous failed reconciliation being logged by the manager. Shouldn't we implement some self-healing capabilities, because only a manual restart of the manager will fix this.
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T09:23:32Z	INFO	certificate-controller	Received reconciliation request{"namespace": "kyma-system", "name": "api-gateway-webhook-certificate"}
api-gateway-controller-manager-686799c6ff-mt775 manager 2024-05-14T09:23:32Z	ERROR	Reconciler error	{"controller": "secret", "controllerGroup": "", "controllerKind": "Secret", "Secret": {"name":"api-gateway-webhook-certificate","namespace":"kyma-system"}, "namespace": "kyma-system", "name": "api-gateway-webhook-certificate", "reconcileID": "5b40d3d6-4e80-4df6-b55d-aec82729f2af", "error": "Secret \"api-gateway-webhook-certificate\" not found"}
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:329
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:266
api-gateway-controller-manager-686799c6ff-mt775 manager sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
api-gateway-controller-manager-686799c6ff-mt775 manager 	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.3/pkg/internal/controller/controller.go:227

I not sure about this one, I was thinking about it and I am more of a fan to deal with the problem with the workaround (restarting the operator). Deleting Secrets is kind of harsh and this is kyma-system resource, so has to be handled with an incident. Not a fan in the self-healing in this case.

Maybe we could secure it with a finalizer so it will not be "accidentally" deleted?

It is possible to create a v1beta2 rule without JWT and NoAuth (or noAuth set to false). This will result in an APIRule without a status. We should make sure that we have at least JWT configured or noAuth set to true. APIRule:

this cases including the deletion has to be solved now, could you please retest?

Maybe we could secure it with a finalizer so it will not be "accidentally" deleted?

https://github.com/kyma-project/api-gateway/pull/996/commits/806766c449fbc1b5d4f2507cd1b6f4607ab0890f

Maybe we could secure it with a finalizer so it will not be "accidentally" deleted?

806766c

Are we removing the secret as part of module deletion? If so it also needs to be cleared up

Are we removing the secret as part of module deletion? If so it also needs to be cleared up

how is this actually handled ? module deletion is kind of KLM ground, they delete static manifest that we provide ? this certificate secret is kind of bound the the operator lifecycle and not the APIGateway CR.

Are we removing the secret as part of module deletion? If so it also needs to be cleared up

how is this actually handled ? module deletion is kind of KLM ground, they delete static manifest that we provide ? this certificate secret is kind of bound the the operator lifecycle and not the APIGateway CR.

Yep, KLM will not delete it if it is not part of the manifest

Are we removing the secret as part of module deletion? If so it also needs to be cleared up

how is this actually handled ? module deletion is kind of KLM ground, they delete static manifest that we provide ? this certificate secret is kind of bound the the operator lifecycle and not the APIGateway CR.

Yep, KLM will not delete it if it is not part of the manifest

Using OwnerReference to api-gateway deployment to clean it up should work, than the secret would be deleted with the controller

But doesn't the finalizer make it even worse, as it masks the issue? At latest when the secret needs rotation this will fail since it cannot be updated. I think a finalizer only is not the best solution in this case.

Accidental removal has to be handled via incident and solved with operator restart.
@videlov Should we have a follow up to create already a troubleshooting guide for this? It's a scenario that will probably happen in some way in future 😅

@videlov Should we have a follow up to create already a troubleshooting guide for this? It's a scenario that will probably happen in some way in future 😅

did create a follow-up issue for this, but do not see it as a high prio task. lets see.

@videlov
@werdes72
I just saw that we are missing release notes. Can you please go through the DoD and check it.
I already saw that code coverage is lowered, but checking the coverage in the IDE shows that coverage can be considered fine.

@videlov @werdes72 I just saw that we are missing release notes. Can you please go through the DoD and check it. I already saw that code coverage is lowered, but checking the coverage in the IDE shows that coverage can be considered fine.

There is no milestone set for this issue.


[CWS] Reduce fallbacks to cgroup file read

What does this PR do?
Motivation
Describe how you validated your changes

Possible Drawbacks / Trade-offs
Additional Notes

/merge


Fix failing IRGen arm64e tests

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

@swift-ci smoke test

@kubamracek: seems that this change, which sets linux-gnu with an stable ABI for testing, might broke the Android tests (https://ci-external.swift.org/job/oss-swift-RA-linux-ubuntu-16.04-android-arm64/3981). It seems that the code I am seeing generated might work with the stable ABI checks. Is it safe to put Android in that list of targets? (I can open the PR myself, but I want to double check that I am not doing something weird)

Sorry for the late reply! The “stable ABI” applies only to platforms that ship Swift in the OS (Darwin), and on Linux we should be emitting the stable ABI version of code. If this broke a test, a PR would be great and I can take a look.


Multiple multi-line data labels and vertical spacing/line-height

Creating a horizontalBar chart with many multiple-line labels on the left causes (visually) incorrect vertical spacing between them, if the chart is not tall enough. I've tried to properties inside beforeFit/afterFit callbacks but no success so far.
Current Behavior

https://jsfiddle.net/ncfs4164/6/

Expected Behavior
User should be able to manually set the spacing (or label's lineHeight?) between lines inside a multi-line label.

Chart.js version: 2.5.0 (tho older versions yield the same result)

@smogg do you have a fiddle that reproduces this?

@etimberg yup, it was posted in the original message after the picture, here it is again: https://jsfiddle.net/ncfs4164/6/

Sorry, missed that. Thanks for posting it again

@smogg Did you manage to handle the issue?

Line-height issue related to https://github.com/chartjs/Chart.js/issues/4379 as well. Are there any plans to allow for configuration of line height? Has anyone found a solution?
Ideally we'd be able to vertically-align labels, but adjusting line height might also help with my issue:

Got the same issue and would love to have vertical align for (multiline-)labels. Any plans or updates on this?

Any workaround for this?


Add high-level positions getter, exclude virtual sites by default

Description
While working on a short-term solution to #1054, I realized there's no clean high-level getter in the public API for accessing positions with virtual sites. This adds that, via refactoring to_openmm_positions, and documents some of the quirks in the existing design around positions and other topology objects.
Checklist

[x] Add Interchange.get_positions with (optionally, off by default) virtual sites
[x] Refactor to_openmm_positions to use the non-OpenMM positions getter
[x] Document quirks
[ ] Add tests
[x] Lint
[ ] Update docstrings

Thanks!


chore: fix addBabelPresets doc and test babel fns

Closes #97
I investigated #97 and discovered that addBabelPresets works similarly to addBabelPlugins in that it spreads its arguments and then maps them. This means that passing an array of presets instead of a flat list of arguments will result in an array nested one level deeper than expected.
Correct usage example:
module.exports = override(
  ...addBabelPresets(
    [
      "@babel/env",
      {
        targets: {
          browsers: ["> 1%", "last 2 versions"]
        },
        modules: "commonjs"
      }
    ],
    "@babel/preset-flow",
    "@babel/preset-react"
  )
);

Changes

added a note in readme.md to not pass an array to addBabelPresets
removed the surrounding array from the addBabelPresets arguments in the readme.md code example
installed jest
added tests for addBabelPreset and addBabelPresets to guarantee their usage matches this PR
added tests for the rest of the babel functions
replaced npm test script with jest call
added coverage/ to .gitignore for jest --coverage usage

I went ahead and added full test coverage to the babel-related functions. Also added coverage/ to .gitignore for jest --coverage usage.

@FezVrasta you have a second to give this a quick test run? I haven’t even used CRA in upwards of a year at this point, so I’m barely qualified to accept PR’s to my own project :)

@with-heart ok I'm just gonna merge these changes. Hey, would you be interested in being a contributor to this project?  I'll give you write access to the repo, and publish rights on npm, if you want.

Published in 0.2.14

@arackaf Awesome! Also, I'd love that! I've had a few ideas brewing that I've been meaning to propose after fleshing out the test suite.

@with-heart what's your npm username?

@arackaf ~with-heart

Is this you?  Let me know if you!!!

@arackaf it is :)


CARDS NEED SOME CSS

Describe the feature
ADDING CSS AND BOX-SHAODW,HOVER EFFECT,AND BACKGROUND-COLOR ON THEM TO INCREASE UI.
Add ScreenShots
We can add properties as shown below.

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Hello, I've been reviewing website and have ideas to improve the card elements. Enhancements like customized borders, padding adjustments, image effects, interactive elements, and animations could boost engagement and visual appeal. Kindly consider assigning me this task under GSSoc'24. Thank you!

@Its-Aman-Yadav  please consider this issue.


picotool built by SDK has no USB capability

To reproduce put the following files in a directory next to the pico-sdk:
CMakeLists.txt: (Note the custom target which runs picotool.)
cmake_minimum_required(VERSION 3.16)

include(../pico-sdk/pico_sdk_init.cmake)

project(testola)

pico_sdk_init()

add_executable(testola main.cpp)

# Link with the pico stdlib
target_link_libraries(testola pico_stdlib)

# Create map/bin/hex/uf2 files
pico_add_extra_outputs(testola)

add_custom_target (flash picotool load -f ${PROJECT_NAME}.uf2 && picotool reboot DEPENDS ${PROJECT_NAME})

main.cpp:
int main() {;}

Run: mkdir build && cd build && cmake .. && make && make flash
Expected result:
The built uf2 is loaded to the connected pico over USB.
Actual result:
ERROR: Unknown command: load

COMMANDS:
    info        Display information from the target device(s) or file.
                Without any arguments, this will display basic information for all connected RP2040 devices in BOOTSEL mode
    config      Display or change program configuration settings from the target device(s) or file.
    encrypt     Encrypt the program.
    seal        Add final metadata to a binary, optionally including a hash and/or signature.
    link        Link multiple binaries into one block loop.
    otp         Commands related to the RP2350 OTP (One-Time-Programmable) Memory
    partition   Commands related to RP2350 Partition Tables
    uf2         Commands related to UF2 creation and status
    version     Display picotool version
    coprodis    Post-process coprocessor instructions in disassembly files.
    help        Show general help or help for a specific command

Use "picotool help <cmd>" for more info

This happens because the picotool build could not find libusb, even though I have libusb-1.0-0-dev and pkg-config installed (on Linux):
[11/108] Performing configure step for 'picotoolBuild'
Not searching for unused variables given on the command line.
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
.//home/al/Source/Pico/testola/cmake-build-debug/_deps/picotool/
-- Using the single-header code from /home/al/Source/Pico/testola/cmake-build-debug/_deps/picotool-src/lib/nlohmann_json/single_include/
CMake Deprecation Warning at /home/al/Source/Pico/pico-sdk/lib/mbedtls/CMakeLists.txt:23 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- Found Python3: /usr/bin/python3.12 (found version "3.12.3") found components: Interpreter
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
libUSB is not found - no USB support will be built
-- Configuring done (1.6s)
-- Generating done (0.1s)
-- Build files have been written to: /home/al/Source/Pico/testola/cmake-build-debug/_deps/picotool-build

Building picotool manually myself produces a working binary with USB support.

Installing my manually built version does not work as a workaround because pico-sdk does not recognize that it is installed, and builds its own copy anyway:
CMake Warning at /home/al/Source/Pico/pico-sdk/tools/Findpicotool.cmake:28 (message):
  No installed picotool with version 2.0.0 found - building from source

  It is recommended to build and install picotool separately, or to set
  PICOTOOL_FETCH_FROM_GIT_PATH to a common directory for all your SDK
  projects

This is then the version that gets used by the custom target.

A workaround that does work is to make the custom target use the absolute path to the working picotool:
add_custom_target (flash /home/al/.local/bin/picotool load -f ${PROJECT_NAME}.uf2 && picotool reboot DEPENDS ${PROJECT_NAME})

Of course this won't work on anyone else's computer...

This is by design - when building picotool as part of the SDK we set PICOTOOL_NO_LIBUSB, for speedier compilation. If you want to build a full version of picotool separately and have the SDK use that, see the picotool readme for details of how to make sure the SDK can find your installed picotool.

Okay, so those instructions are wrong for Linux. The correct way to do it is to configure picotool with:
cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
And then make install (without root).
Now the SDK will find it without having to pass an additional environment variable to every project.

Another workaround (if you don't care which version the SDK uses) is to just use cmake's find_program:
cmake_minimum_required(VERSION 3.16)

find_program(PICOTOOL picotool)

// ... normal project boilerplate here ...

add_custom_target (flash ${PICOTOOL} load -f ${PROJECT_NAME}.uf2 && ${PICOTOOL} reboot DEPENDS ${PROJECT_NAME})

Because find_program is run before the SDK stuff, it will find the version in $PATH, before the SDK shadows it with a broken version.

Okay, so those instructions are wrong for Linux

Can you clarify exactly which bit of the instructions you’re referring to?
For me in Debian, Ubuntu, and macOS, the instructions of
mkdir build
cd build
cmake ..
make
sudo make install

work fine. If you want a non-root install then installing to ~/.local will also work fine, it’s just user preference.

The part where this is the only alternative to doing a root install:

Alternatively you can install in a custom path via:
cmake -DCMAKE_INSTALL_PREFIX=$MY_INSTALL_DIR -DPICOTOOL_FLAT_INSTALL=1 ..
In order for the SDK to find picotool in this custom path, you will need to set the picotool_DIR variable in your project, either by passing to -Dpicotool_DIR=$MY_INSTALL_DIR/picotool to your SDK cmake command, or by adding
set(picotool_DIR $MY_INSTALL_DIR/picotool)
to your CMakeLists.txt file.

The part where this is the only alternative to doing a root install:

You're adding the word "only" there...
That's not an exhaustive list of alternatives, just one alternative that'll work with any platform and any install directory. I'll add a note about ~/.local being another alternative for some Linux users who don't want to do a root install

I had exactly same issue, for me, it was caused by holding broken packages (libusb), so installing proper version of them solved the problem.

Closing as by design, and the message printed when compiling has been fixed in develop


For DeviceMotion.Plugin, no UWP implementation

Hi,
I noticed that the DeviceMotion Plugin has no implementation for UWP.  I'm hoping this is in the works, as I see that the dir has been created.
-thanks
-e

Hi guys.
Great plugin!
I also need it for UWP. Any plans to implement it?
Paymon

The current version 1.1.2 has some UWP support, but there is a problem when using it in release mode possibly due to some reflection or serialization metadata that's being written out by the .NET native compiler, which may be solvable using runtime directive...it's just that build and runtime output doesn't give much away (at least not for me) in terms of what type or namespace should we add to rd.xml...the error seems to come directly from Microsoft's V2 device sensor DLLs (for build 10586) so maybe it's even Microsoft that has problems with it's own .NET native compiler that's going to be fixed in 14393 or later?

I've published a UWP app, open link on Windows, and you'll see, 1.1.2 works, definitely.

@dimitrijevic android api provides function to check if device has specific sensor, i cant figure it out how to do it with the plugin. how does it actually behave if device doesnt have the sensor hardware?

The current 1.1.2 works only with Accelerometer sensor which is most common one thus if you're using it on a mobile phone it should work (although if you're trying to make some pitch/roll/yaw calculations then you're going to get lagged results - depending on your CPU), but in case you're going to use it on a custom hardware that may lack Accelerometer all together then it's going to fail. It should fail gracefully though, just not returning anything else than what's been initialized. Hope that helps.


code release

👍👍Your work is very enlightening and I am looking forward to the code release.

WHen can we expect code release

WHen can we expect code release

Hi, thanks for your interest in our project! We are now organizing the code and document and we plan to release the code in a few days (maybe later this week).

Hi, thanks for your interest in our project! We are now organizing the code and document and we plan to release the code in a few days (maybe later this week).

Same question.

Same question.

Hi everyone! We have just released our code. Feel free to open an issue if you encounter any problems.

Hi everyone! We have just released our code. Feel free to open an issue if you encounter any problems.


Hosted method not working

It might be my mistake but when I'm running this command npm run register_linux it gives he output like

<EMAIL_ADDRESS>register_linux
node backend/register.cjs linux

Using default mode: systemd
Unregistering the service'

No matter how many times I repeat it, it keeps showing unregistering. Also localhost:8000 is unable to connect.
Any solution?

the bug is fixed in the 3c58ee1 commit


METRON-2021 add screen and configuration to image

testing
./run_end_to_end.sh && scripts/docker_execute_shell.sh
 screen
ctrl-a ctrl-d
exit
exit
scripts/docker_execute_shell.sh
screen -r
Pull Request Checklist
Thank you for submitting a contribution to Apache Metron's Bro kafka writer plugin.
In order to streamline the review of the contribution we ask you follow these guidelines and ask you to double check the following:
For all changes:

[x] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.
[x] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

For code changes:

[-] Have you included steps to reproduce the behavior or problem that is being changed or addressed?
[x] Have you included steps or a guide to how the change may be verified and tested manually?
[x] Have you ensured that the full suite of tests and checks have been executed via:bro-pkg test $GITHUB_USERNAME/metron-bro-plugin-kafka --version $BRANCH

[-] Have you written or updated unit tests and or integration tests to verify your changes?
[-] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[-] Have you verified the basic functionality of the build by building and running locally with Apache Metron's Vagrant full-dev environment or the equivalent?

Also, what about something like:
caption always "%{= Wk}%-w%{= Bw}%n %t%{-}%+w %-="```

+1 by inspection


Optimize search to ignore on empty string

This PR intends to optimize a little the query generated when using Crudry.Query.search/3.
But this is possibly a breaking change, since before this change, with an empty search_term, the rows that have null values for any of the columns specified in fields were being filtered out. With this PR, the rows with null values will be returned too.
What do you guys think, should we proceed with this change?

It's hard to define what is the expected behaviour here, but I think it's reasonable to assume that searching by an empty string shouldn't impact the result of the query, so I would say that this could enter as a minor version bump. What do you think @jotaviobiondo?

I agree! Maybe document it also as a bug fix? since now it behaves as expected


Remove unnecessary if/else

Though in looking at the blame, this was just edited/reviewed, so
perhaps I'm just missing some black magic beyond my understanding.
This caught my eye while trying to see if I could fathom any explanation for the behavior I mentioned in #510 regarding different behavior in opening a file using encoding='utf-8'.

Coverage increased (+0.04%) to 76.529% when pulling df4a38935eb977b58b686dbe290b9b4657357634 on jdmcbr:env-initialize into 0123e3911a7d1082d6e6411c0a2c8cb2598a2dfc on Toblerity:master.

@sgillies Sounds good. It obviously isn't causing any issues as is, it was just a little distracting/confusing for me.


update README.md with new charset attribute

as mentioned in the last PR: the new attributed mentioned in README.
So everyone who needs it, can use it.
Cheers, Martin

Thanks!


Laravel 9 support?

Are there any plans for the package to support Laravel 9 as well?

I planned to support Laravel 9 tomorrow

@wi-wissen now support laravel 9 in latest release


Error while running data step with riboformer 6.1

Hi,
so Ive been trying your lastest iteration of riboformer and while running the data step i come up with this error
Processed assembly data restored (/home/noxatras/scratch/riboformer/reference/Homo_sapiens.GRCh38.109.chr.h5)
--> parsed transcriptome directory found, assembly information can not be re-processed (for existing h5 files).
Loading in GSE103719...
Traceback (most recent call last):
  File "/opt/conda/envs/ribo/bin/riboformer", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/conda/envs/ribo/lib/python3.12/site-packages/transcript_transformer/riboformer.py", line 60, in main
    f = process_data(args)
        ^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/ribo/lib/python3.12/site-packages/transcript_transformer/data.py", line 80, in process_data
    parse_ribo_experiments(
  File "/opt/conda/envs/ribo/lib/python3.12/site-packages/transcript_transformer/data.py", line 109, in parse_ribo_experiments
    df = pl.read_csv(
         ^^^^^^^^^^^^
  File "/opt/conda/envs/ribo/lib/python3.12/site-packages/polars/utils/decorators.py", line 126, in wrapper
    return function(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/ribo/lib/python3.12/site-packages/polars/utils/decorators.py", line 35, in wrapper
    return function(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/ribo/lib/python3.12/site-packages/polars/io/csv.py", line 361, in read_csv
    df = DataFrame._read_csv(
         ^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/envs/ribo/lib/python3.12/site-packages/polars/internals/dataframe/frame.py", line 781, in _read_csv
    self._df = PyDataFrame.read_csv(
               ^^^^^^^^^^^^^^^^^^^^^
exceptions.ComputeError: projection index 3 is out of bounds for CSV schema with 3 columns

Since there is no csv implicated in the overall workflow i am kinda at a loss about whats cuasing the error
if there is extra information you need dont hesitate to ask
Thank a lot

You stracktrace does not line up with the code lines of the newest transcript_transformer package. Are you certain you updated the tool correctly?

aaaaaaa thank you, it installed the version 6.1

By default biobear v 0.13.7 isnt avalaible in pip anymore is there a fix for that, can later version of biobear still work with the transcript_transformer package?

There is a way to get the right version of biobear using conda libraries
conda install biobear==0.13.7
Though i am not sure that forcing the use of conda was the goal since you made your tool avalaible through pip
If 0.13.7 is the only possible version of biobear i suggest you specify how to get it in in the read.me as a step before installing pytorch
hopefully this helps

Thanks for pointing this out. I have updated dependencies so pip install now properly installs the latest transcript-transformer version.


Panic in DNS Zone

Here is described with more detail
https://caddy.community/t/issues-with-bunny-dns-module/27224
This is the error
{
  "level": "info",
  "ts":<PHONE_NUMBER>.6386855,
  "msg": "panic: certificate worker: runtime error: index out of range [0] with length 0\ngoroutine 51 [running]:\ngithub.com/caddyserver/certmagic.(*jobManager).worker.func1()\n\tgithub.com/caddyserver/certmagic@v0.21.3/async.go:58 +0x65\npanic({0x1869600?, 0xc0007c4ed0?})\n\truntime/panic.go:770 +0x132\ngithub.com/libdns/bunny.getZoneID({0x1e767c8, 0xc00077ee40}, {0xc00043e550, 0x48}, {0xc0002f19b0?, 0x0?})\n\tgithub.com/libdns/bunny@v0.1.0/client.go:82 +0x1ac\ngithub.com/libdns/bunny.createRecord({0x1e767c8, 0xc00077ee40}, {0xc00043e550, 0x48}, {0xc0002f19b0, 0x20}, {{0x0, 0x0}, {0x19424f1, 0x3}, ...})\n\tgithub.com/libdns/bunny@v0.1.0/client.go:122 +0x85\ngithub.com/libdns/bunny.(*Provider).AppendRecords(0xc000500b70, {0x1e767c8, 0xc00077ee40}, {0xc0002f19b0, 0x21}, {0xc000712780?, 0x168cc00?, 0x1?})\n\tgithub.com/libdns/bunny@v0.1.0/provider.go:31 +0x26a\ngithub.com/caddyserver/certmagic.(*DNSManager).createRecord(0xc0002c0d20, {0x1e767c8, 0xc00077ee40}, {0xc0003d6f00, 0x20}, {0x19424f1, 0x3}, {0xc0002f18c0, 0x2b})\n\tgithub.com/caddyserver/certmagic@v0.21.3/solvers.go:401 +0x815\ngithub.com/caddyserver/certmagic.(*DNS01Solver).Present(0xc0002c0d20, {0x1e767c8, 0xc00077ee40}, {{0xc0002b1a68, 0x6}, {0xc000736840, 0x54}, {0xc0002b1a70, 0x7}, {0x0, ...}, ...})\n\tgithub.com/caddyserver/certmagic@v0.21.3/solvers.go:265 +0x19e\ngithub.com/caddyserver/certmagic.solverWrapper.Present({{0x1e6d848?, 0xc0002c0d20?}}, {0x1e767c8, 0xc00077ee40}, {{0xc0002b1a68, 0x6}, {0xc000736840, 0x54}, {0xc0002b1a70, 0x7}, ...})\n\tgithub.com/caddyserver/certmagic@v0.21.3/solvers.go:827 +0x22e\ngithub.com/mholt/acmez/v2.(*Client).presentForNextChallenge(0xc0008be2c0, {0x1e767c8, 0xc00077ee40}, 0xc00097b340)\n\tgithub.com/mholt/acmez/v2@v2.0.1/client.go:410 +0x7ab\ngithub.com/mholt/acmez/v2.(*Client).solveChallenges(_, {_, _}, {{0xc000714d38, 0x5}, {0x0, 0x0, 0x0}, 0x1, {0x0, ...}, ...}, ...)\n\tgithub.com/mholt/acmez/v2@v2.0.1/client.go:361 +0x26d\ngithub.com/mholt/acmez/v2.(*Client).ObtainCertificate(0xc0008be2c0, {0x1e767c8, 0xc00077ee40}, {{{0xc000714d38, 0x5}, {0x0, 0x0, 0x0}, 0x1, {0x0, ...}, ...}, ...})\n\tgithub.com/mholt/acmez/v2@v2.0.1/client.go:136 +0x598\ngithub.com/caddyserver/certmagic.(*ACMEIssuer).doIssue(0xc0008b7e00, {0x1e767c8, 0xc00077ee40}, 0xc0006bc008, 0x0)\n\tgithub.com/caddyserver/certmagic@v0.21.3/acmeissuer.go:477 +0x648\ngithub.com/caddyserver/certmagic.(*ACMEIssuer).Issue(0xc0008b7e00, {0x1e767c8, 0xc00077ee40}, 0xc0006bc008)\n\tgithub.com/caddyserver/certmagic@v0.21.3/acmeissuer.go:371 +0xa7\ngithub.com/caddyserver/caddy/v2/modules/caddytls.(*ACMEIssuer).Issue(0x2a89150?, {0x1e767c8?, 0xc00077ee40?}, 0xc0008be190?)\n\tgithub.com/caddyserver/caddy/v2@v2.8.4/modules/caddytls/acmeissuer.go:248 +0x25\ngithub.com/caddyserver/certmagic.(*Config).obtainCert.func2({0x1e767c8, 0xc00077ee40})\n\tgithub.com/caddyserver/certmagic@v0.21.3/config.go:620 +0xc84\ngithub.com/caddyserver/certmagic.doWithRetry({0x1e76800, 0xc00040b0e0}, 0xc00071c800, 0xc000787998)\n\tgithub.com/caddyserver/certmagic@v0.21.3/async.go:104 +0x233\ngithub.com/caddyserver/certmagic.(*Config).obtainCert(0xc00080b880, {0x1e76800, 0xc00040b0e0}, {0xc000418258, 0x12}, 0x0)\n\tgithub.com/caddyserver/certmagic@v0.21.3/config.go:694 +0x729\ngithub.com/caddyserver/certmagic.(*Config).ObtainCertAsync(...)\n\tgithub.com/caddyserver/certmagic@v0.21.3/config.go:499\ngithub.com/caddyserver/certmagic.(*Config).manageOne.func1()\n\tgithub.com/caddyserver/certmagic@v0.21.3/config.go:409 +0x73\ngithub.com/caddyserver/certmagic.(*jobManager).worker(0x2aa8220)\n\tgithub.com/caddyserver/certmagic@v0.21.3/async.go:73 +0x11b\ncreated by github.com/caddyserver/certmagic.(*jobManager).Submit in goroutine 1\n\tgithub.com/caddyserver/certmagic@v0.21.3/async.go:50 +0x279"
}

I contacted Bunny CDN team to see if they could assess on the problem and this is the answer:

I took a look and found that the module uses libdns to use our API, The code can be found here: https://github.com/libdns/bunny/blob/main/client.go#L60C1-L85C1 it looks like it doesn't handle cases where Zones (Items) is empty or nonexistent, e.g., a HTTP 500 error and thus fails.

@SirLouen That sounds plausible. I will look into it!

@SirLouen That sounds plausible. I will look into it!

I've found that it seems that the error is in libdns not here.

@SirLouen Yeah, after looking at the methods, an empty or missing Zone item would indeed throw an error but that is intended behavior.

I'm closing this and moving into libdns to identify what can be going on
https://github.com/libdns/bunny/issues/1


Refactor formValidation file

https://github.com/garageScript/c0d3-app/pull/1651#discussion_r835832334

I notice lots of repeated strings in this file. There should be more constants made to be used in this file, rather than repeating the same strings over and over again

The file location

Yeah, we should vary the examples.


Support native for AWS2 Eventbridge extension

Duplicate of https://github.com/apache/camel-quarkus/issues/1976.

Sorry

Assigned #1976


Aspect ratio is supposed to be 1 but panels are stretched really tall

After removing all labels the aspect ratio goes back to what it should be

Example: go here: http://trelliscope.org/examples/lego/#ncol=4&pg=1&viewtype=grid&labels=name,n_parts,rebrickable_url,img_url,theme,inv_id,sub_theme,n_spare_parts,color_map,n_minifig_parts,prim_color_hex,prim_color_name,n_colors,n_part_types,n_minifigs,n_versions,prim_part_num,own_it&sort=n_parts;desc;number&sidebar=-1&fv=name
Then make your browser window taller or shorter. Depending on the size of your window, you may need to remove some labels to get the the spot where it will cross over from way to tall to not.

This seems to be related to the content and the width that is being calculated it goes into this
if (panelHeight > height) {
const newWidth = (height - tableHeight - gridGap * 2 - panelPadding * 4) * aspectRatio;
// const newWidth = (height - tableHeight - gridGap * 2) * aspectRatio;
res.width = newWidth;
res.contentWidth = ${newWidth}px;
}
and results in some funky widths happening. Let's discuss, I know you have a ticket to redo the calcs, so maybe we hold off on this one?


Fix flake of TestPipelineTaskTimeout

Prior to this commit, TestPipelineTaskTimeout was flaky because a Pipeline task that was supposed to succeed timed out. This can happen when the time to create a pod exceeds the timeout, which was 60s.
This commit removes the timeout for that pipeline task, removing this cause of flakes.
/kind flake
closes https://github.com/tektoncd/pipeline/issues/6943
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

n/a Has Docs if any changes are user facing, including updates to minimum requirements e.g. Kubernetes version bumps
[x] Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including functionality, content, code)
[x] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
n/a Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings). See some examples of good release notes.
n/a Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
NONE

/lgtm
It would be helpful if we have descriptive names instead of task1 and task2 😂


feat: delete TSS cognito account

TIS21-3433
TIS21-3434

@DorisWongNHS Make sure you update the ECS task role to include the correct permission before deploying the service.


Creating custom mediation via publisher API fails when API name contains a space character

Description:
Adding custom mediation to an API using /api/am/publisher/v0.14/apis/{{wso2.api.id}}/policies/mediation results in a 500 error when the API name has a space character in it.
{
    "code": 500,
    "message": "Internal server error",
    "description": "Error while getting location header for created mediation policy custom",
    "moreInfo": "",
    "error": []
}

TID: [39] [] [2019-05-29 10:40:30,589] admin<EMAIL_ADDRESS>[39] [AM]ERROR {org.wso2.carbon.apimgt.rest.api.publisher.impl.ApisApiServiceImpl} -  Error while getting location header for created mediation policy custom {org.wso2.carbon.apimgt.rest.api.publisher.impl.ApisApiServiceImpl}
java.net.URISyntaxException: Illegal character in path at index 106: /t/bstep93.bcz/registry/resource/_system/governance/apimgt/applicationdata/provider/admin-AT-bstep93.bcz/**SWAGGER API**/2.0.015/out/custom.xml
	at java.net.URI$Parser.fail(Unknown Source)
	at java.net.URI$Parser.checkChars(Unknown Source)
	at java.net.URI$Parser.parseHierarchical(Unknown Source)
	at java.net.URI$Parser.parse(Unknown Source)
	at java.net.URI.<init>(Unknown Source)
	at org.wso2.carbon.apimgt.rest.api.publisher.impl.ApisApiServiceImpl.apisApiIdPoliciesMediationPost(ApisApiServiceImpl.java:758)
	at org.wso2.carbon.apimgt.rest.api.publisher.ApisApi.apisApiIdPoliciesMediationPost(ApisApi.java:340)

Suggested Labels:

Suggested Assignees:

Affected Product Version:
AM 260
OS, DB, other environments details and versions:
Steps to reproduce:

POST: api/am/publisher/v0.14/apis - ensure name property contains a space.
POST: api/am/publisher/v0.14/apis/{{wso2.api.id}}/policies/mediation

Related Issues:

API name cannot contain spaces. Hence this is invalid


a11y: add support for intellisense

Description
The PR adds accessibility properties for the intellisense component, wires them with input components and fixes some observations.
List of changes:

Added aria attributes set into Intellisense component, so it to be passed down to any input rendered
Updated fields. where it makes sense. to include a11y parameters passed by Intellisense
Added scrollIntoView for CompletionElement to ensure the selected element is in the view
Refactored CompletionList a11y properties. Now list has a listbox role when showing suggestions

Task Item

VSTS 70456

Screenshots
#minor

Coverage increased (+0.02%) to 55.902% when pulling b3891568baedb5bbcd36037c7f843ea9bb76b018 on OEvgeny:a11y/intellisense into f5b059af5047d8b7c9498adf3195339b6c0fe582 on microsoft:main.