text:
Activity logs twice when extending Trait from LogsActivity

I've probably done something wrong, and I can stop the double logging as I describe below. But I'd like to use my own Trait as an extension of the LogsActivity Trait to keep my code just a bit cleaner.
I've extended my own Trait from Spatie\Activitylog\Traits\LogsActivity as follows:
namespace App\Traits;

use Spatie\Activitylog\Traits\LogsActivity as SpatieLogsActivity;

trait LogsActivity
{
    use SpatieLogsActivity;

    /**
     * Log only changed properties
     *
     * @var boolean
     */
    protected static $logOnlyDirty = true;

    /**
     * The custom log name for the model
     *
     * @param string $eventName
     * @return string
     */
    public function getLogNameToUse(string $eventName = ''): string
    {
        return str_plural(strtolower(class_basename($this)));
    }
}

When I apply this Trait to any Model class, the system puts two rows in the activity_log table for each change to a Model record.
If, on the other hand, I don't use my extended Trait and instead apply the Spatie LogsActivity Trait to my Model class, I get only one entry in the activity_log table for each change to a Model record.
This seems to mean that there's something in the way I've extended the Trait, or in PHP's Trait handling, that causes the double logging. If it were something happening in the Model, I would expect to get two log entries regardless which Trait I associated to the Model.
The repo here https://github.com/thc1967/SpatieSortableExtendTraitDemo is a barebones demo of the issue.
I use Tinker to create and save a "Widget" object and poof, two entries in the activity_log table. Switch the Widget model to use the core Spatie LogsActivity trait instead of the extended one and we get one log entry.
// Tinker
$w = new Widget();
$w->name = 'foo';
$w->save();

Result is either 1 or 2 entries in activity_log depending on whether we're using the core Trait or extended Trait.

This issue can be closed.
If I rename the extended Trait to anything else, even if I alias it in my use statement, it only logs one entry. PHP issue, perhaps? Definitely not Spatie's problem though.

Just an idea - the trait is booted by the special bootXyzTrait method. This is generated done by a reflection class and so on. If you have two traits with the same name it could be that the method is executed two times. If so it will add the observer two times.
So if I'm right this is a laravel core issue. Could you try to verify this with a simple dump in the boot method for example?

I've inserted a dump into the Laravel code's Model bootTraits() method as follows:
    protected static function bootTraits()
    {
        $class = static::class;

        foreach (class_uses_recursive($class) as $trait) {
            if (method_exists($class, $method = 'boot'.class_basename($trait))) {
                dump('booting ' . $trait);
                forward_static_call([$class, $method]);
            }
        }
    }

When I Tinker and type $w = new Widget();, I get the following dump. Notice the two LogsActivity traits.
"booting App\Traits\LogsActivity"
"booting Spatie\Activitylog\Traits\LogsActivity"
"booting Spatie\Activitylog\Traits\DetectsChanges"

When I rename my Trait to MyLogsActivity and alias that as LogsActivity in my Model class, I get the following with the same action:
use App\Traits\MyLogsActivity as LogsActivity;
class Widget extends Model
{
    use LogsActivity;

"booting Spatie\Activitylog\Traits\LogsActivity"
"booting Spatie\Activitylog\Traits\DetectsChanges"

Given my relative inexperience with PHP and Laravel, I'm not sure what to make of the difference. There's a simple, public Github project referenced in the original post that makes this easily reproducible.

Ok, this is just the prove that laravel executes the same bootXyzTrait method multiple times if the base class name of multiple traits are the same.
As a solution for you I recommend to rename your trait to AppLogsActivity or `LogsActivityTrait or something like this to prevent this error.
https://github.com/laravel/framework/issues/24548

It's fixed in https://github.com/laravel/framework/pull/24556

Thank you guys for the well explained issue and the given updates, fixed the same issue in no time.

authors: Gummibeer eduarguz thc1967

repo: spatie/laravel-activitylog


text:
Fixed reading of maximum_number_of_collected_logs

This fixes memory leak when collecting logs, cause maximum_number_of_collected_logs config value was always NULL and collecting of logs records was infinite.

Thank you!

source: gharchive/pull-request

authors: faustoFF freekmurze

repo: spatie/laravel-ignition

license: MIT

license_type: permissive

license_source: github-api


text:
Dead Page and Question

This is a dead page -- https://github.com/spatie/laravel-ray/discussions/new?category=q-a
Further, to my question, if ray is not running, I am thinking that code should continue and not throw an error?  Is this not the case?

Thanks for letting me know. I forgot to enable discussions, and have just fixed that. The link is now work.
If the Ray app is not running, it indeed shouldn't throw an exception, I've made some improvements around this in the latest version of the spatie/ray package.
If it does throw an exception for you, could you open a new issue, and mention all the versions you are using, a track trace would also be very helpful in that case.
I do hope you'll enjoy using Ray!

Thanks for letting me know. I forgot to enable discussions, and have just fixed that. The link is now work.
If the Ray app is not running, it indeed shouldn't throw an exception, I've made some improvements around this in the latest version of the spatie/ray package.
If it does throw an exception for you, could you open a new issue, and mention all the versions you are using, a track trace would also be very helpful in that case.
I do hope you'll enjoy using Ray!

source: gharchive/issue

authors: freekmurze mikeerickson

repo: spatie/laravel-ray


text:
Laravel Mailable displayed on Ray not viewable

Describe the bug
Using ray()->mailable(...) to log the mailable. However, the mailable logged on the ray screen is not easily viewable.
Versions
Ray version: 1.17
You can use composer show to get the version numbers of:

spatie/ray: 1.26.0
spatie/laravel-ray: 1.19.1

PHP version: 7.4
Laravel version (if applicable): 8.46
To Reproduce

Log a mailable using ray()->mailable(..)
Check ray app

Expected behavior
Mailable shown in the ray app should be easily viewable.
Screenshots

Desktop:

OS: Windows 10
Version: 2004

This seems to work properly on our demo app, could you compare your mailable to the one we have in the demo app, please?
https://github.com/spatie/laravel-ray-demo-app/blob/64d95a54ed8a6bd66c0a26ebcfa7e826e9069a4c/app/Mail/TestMailable.php

Thanks for your response @AdrianMrn. Turns out that having HTML and body tag in the  view was causing the issue.

But you might want to add the Mail component in the demo app to make it easier to reproduce.

@qwertynik How do you mean? You can run php artisan mail to run the command that displays the Mailable in the app.

@AdrianMrn
The demo app you linked linked to does not have the mail component due to which the email sending fails.
Resolving that should improve the demo quality of Ray.

@qwertynik I don't know what you mean, php artisan mail does send a mail.
Could you send a PR to our demo app with the case that fails for you?

authors: AdrianMrn freekmurze qwertynik

repo: spatie/ray


text:
Automize dependency versioning

Add Mend Renovate or Dependabot or similar tooling to automatically update dependencies.

This requires admit rights for the repository.

repo: spdx/tools-ts


text:
about sh build.sh the path for cuda used is fixed

When I use
 sh build.sh
then I have many error about cuda version.
I checked the version of cuda and found the version is 8.0 which is your recommendation.
I checked the error log and found the path for cuda is not what I used then I checked the build.sh.
I change bulid.sh
nvcc -I/usr/local/cuda/include --expt-extended-lambda -O3 -c -o bn.o bn.cu -x cu -Xcompiler -fPIC -std=c++11 ${CUDA_GENCODE}
into my path then worked.
Maybe others will meet the same problem. Wish what i did can help you.

When I use
 sh build.sh
then I have many error about cuda version.
I checked the version of cuda and found the version is 8.0 which is your recommendation.
I checked the error log and found the path for cuda is not what I used then I checked the build.sh.
I change bulid.sh
nvcc -I/usr/local/cuda/include --expt-extended-lambda -O3 -c -o bn.o bn.cu -x cu -Xcompiler -fPIC -std=c++11 ${CUDA_GENCODE}
into my path then worked.
Maybe others will meet the same problem. Wish what i did can help you.

How did you change your build.sh?

authors: Huaxingweichen TianMingChen

repo: speedinghzl/CCNet


text:
Custom scrollbars show on full screen YouTube videos

When I full screen a YouTube video, the scrollbar is visible on the screen, which is very distracting.
Would it be possible to make a website blacklist so that the custom scrollbars are disabled on those websites. Or, even better, a way to make the scrollbars invisible on certain websites.

@jenabaivab
Found a easy workaround for this: enter fullscreen using firefox's video fullscreen, instead of youtube's.
Right click twice on the video, and then select Full Screen (you can press F to quickly select the fullscreen option)

Bump, this is really annoying

Any potential fixes for this?

repo: spencerwooo/firefox-overlay-scrollbar


text:
500 - Internal server error

Describe the bug
500: INTERNAL_SERVER_ERROR
Code: INTERNAL_FUNCTION_INVOCATION_FAILED
ID: cdg1::crzbm-1686686804561-b89909528173
To Reproduce
Steps to reproduce the behavior:

Go to 'your deployment url'
See error

Expected behavior
To load the webpage
Screenshots

Additional context

Maybe it's because this

I'm facing the same issue. Just wanted to check, are you using the template that includes this commit?

I synced my fork with the latest commits but since vercel's api isn't working it can't be build correctly. It's not the repo issue (although they are depreciating old versions of nextjs).
On Jun 13, 2023, 10:33 PM +0200, crushedoreos @.***>, wrote:

I'm facing the same issue. Just wanted to check, are you using the template that includes this commit?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

repo: spencerwooo/onedrive-vercel-index


text:
Powershell script removal

PS script does not get used in the latest set if enhancements as the .xlam blob is now saved to github

Will be removed in the user enhancements branch is merged to master

license: mit

license_source: bigquery


text:
Why hugo says is it error?

I'm trying to make a custom pagination. Finally I think I made it and it works but hugo says error
My goals are

show page lists(with number not just next, prev button)
notify current page

The second feature was implemented by javascript that compares current windows.location.path with .URL in the loop.
index

          {{ range (.Paginator 6).Pages}}

            {{ .Render "card"}}

        {{ end }}

    {{ $paginator := .Paginator }}
    {{ partial "content/paginator" $paginator }}

paginator

{{ range .Pagers }}
  {{ .PageNumber }}
{{ end }}

error message
$ hugo
Started building site
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html
ERROR: 2016/07/20 16:35:30 template.go:131: template: theme/partials/content/paginator.html:2:9: executing "theme/partials/content/paginator.html" at <.Pagers>: Pagers is not a field of struct type *hugolib.Node in theme/partials/content/paginator.html

These are my codes and I would say again it works perfectly. It can show current page with different style and when I click number 2 then it show page/2 But I don't understand why is it causes error?
Can anyone explain this situation?

Please use http://discuss.gohugo.io/ for questions.


text:
Bug: Databricks ODBC The value of the typed literal \"INTERVAL\" is invalid

Describe the bug
When running some TPCH queries that contain intervals in the where clause (or get re-written as intervals), the query fails and returns an error:
Status { code: Internal, message: "External error: Execution error: Unable to query arrow: ODBC emitted an error calling 'SQLPrepare':\nState: 42604, Native error: 80, Message: [Simba][Hardy] (80) Syntax or semantic analysis error thrown in server while executing query. Error message from server: org.apache.hive.service.cli.HiveSQLException: Error running query: [INVALID_TYPED_LITERAL] org.apache.spark.sql.catalyst.parser.ParseException: \n[INVALID_TYPED_LITERAL] The value of the typed literal \"INTERVAL\" is invalid: '0 YEARS 3 MONS 0 DAYS 0 HOURS 0", source: None }

This error occurs on TPCH queries 3 and 20.
To Reproduce
Steps to reproduce the behavior:

Configure Databricks as an ODBC source with TPCH tables and data
Execute queries 3 or 20
See error

Expected behavior
The queries should complete successfully.
Spicepod
Add the relevant spicepod.yml section.
version: v1beta1
kind: Spicepod
name: spice_app
datasets:
- from: odbc:samples.tpch.customer
  name: customer
  mode: read
  params:
    odbc_connection_string: Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so;Host=<HOST REDACTED>;Port=443;HTTPPath=<HOST REDACTED>;SSL=1;ThriftTransport=2;AuthMech=3;UID=token;PWD=<SECRET REDACTED>
    max_num_rows_per_batch: 65536
- from: odbc:samples.tpch.lineitem
  name: lineitem
  mode: read
  params:
    odbc_connection_string: Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so;Host=<HOST REDACTED>;Port=443;HTTPPath=<HOST REDACTED>;SSL=1;ThriftTransport=2;AuthMech=3;UID=token;PWD=<SECRET REDACTED>
    max_num_rows_per_batch: 65536
- from: odbc:samples.tpch.part
  name: part
  mode: read
  params:
    odbc_connection_string: Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so;Host=<HOST REDACTED>;Port=443;HTTPPath=<HOST REDACTED>;SSL=1;ThriftTransport=2;AuthMech=3;UID=token;PWD=<SECRET REDACTED>
    max_num_rows_per_batch: 65536
- from: odbc:samples.tpch.partsupp
  name: partsupp
  mode: read
  params:
    odbc_connection_string: Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so;Host=<HOST REDACTED>;Port=443;HTTPPath=<HOST REDACTED>SSL=1;ThriftTransport=2;AuthMech=3;UID=token;PWD=<SECRET REDACTED>
    max_num_rows_per_batch: 65536
- from: odbc:samples.tpch.orders
  name: orders
  mode: read
  params:
    odbc_connection_string: Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so;Host=<HOST REDACTED>;Port=443;HTTPPath=<HOST REDACTED>;SSL=1;ThriftTransport=2;AuthMech=3;UID=token;PWD=<SECRET REDACTED>
    max_num_rows_per_batch: 65536
- from: odbc:samples.tpch.nation
  name: nation
  mode: read
  params:
    odbc_connection_string: Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so;Host=<HOST REDACTED>;Port=443;HTTPPath=<HOST REDACTED>;SSL=1;ThriftTransport=2;AuthMech=3;UID=token;PWD=<SECRET REDACTED>
    max_num_rows_per_batch: 65536
- from: odbc:samples.tpch.region
  name: region
  mode: read
  params:
    odbc_connection_string: Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so;Host=<HOST REDACTED>;Port=443;HTTPPath=<HOST REDACTED>;SSL=1;ThriftTransport=2;AuthMech=3;UID=token;PWD=<SECRET REDACTED>
    max_num_rows_per_batch: 65536
- from: odbc:samples.tpch.supplier
  name: supplier
  mode: read
  params:
    odbc_connection_string: Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so;Host=<HOST REDACTED>;Port=443;HTTPPath=<HOST REDACTED>;SSL=1;ThriftTransport=2;AuthMech=3;UID=token;PWD=<SECRET REDACTED>
    max_num_rows_per_batch: 65536

Output of explain query
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| plan_type     | plan                                                                                |
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| logical_plan  | Federated                                                                                |
|               |  Sort: revenue DESC NULLS FIRST, orders.o_orderdate ASC NULLS LAST                                                                                |
|               |   Projection: lineitem.l_orderkey, SUM(lineitem.l_extendedprice * Int64(1) - lineitem.l_discount) AS revenue, orders.o_orderdate, orders.o_shippriority                                                                                |
|               |     Aggregate: groupBy=[[lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority]], aggr=[[SUM(lineitem.l_extendedprice * (CAST(Int64(1) AS Decimal128(20, 0)) - lineitem.l_discount))]]                                                                                |
|               |       Filter: customer.c_mktsegment = Utf8("BUILDING") AND customer.c_custkey = orders.o_custkey AND lineitem.l_orderkey = orders.o_orderkey AND orders.o_orderdate < CAST(Utf8("1995-03-15") AS Date32) AND lineitem.l_shipdate > CAST(Utf8("1995-03-15") AS Date32)                                                                                |
|               |         CrossJoin:                                                                                |
|               |           CrossJoin:                                                                                |
|               |             TableScan: customer                                                                                |
|               |             TableScan: orders                                                                                |
|               |           TableScan: lineitem                                                                                |
| physical_plan | SchemaCastScanExec                                                                                |
|               |   RepartitionExec: partitioning=RoundRobinBatch(20), input_partitions=1                                                                                |
|               |     VirtualExecutionPlan name=odbc compute_context=269952280446484108 sql=SELECT lineitem.l_orderkey, SUM((lineitem.l_extendedprice * (CAST(1 AS DECIMAL(20,0)) - lineitem.l_discount))) AS revenue, orders.o_orderdate, orders.o_shippriority FROM customer JOIN orders ON true JOIN lineitem ON true WHERE (((((customer.c_mktsegment = 'BUILDING') AND (customer.c_custkey = orders.o_custkey)) AND (lineitem.l_orderkey = orders.o_orderkey)) AND (orders.o_orderdate < CAST('1995-03-15' AS DATE))) AND (lineitem.l_shipdate > CAST('1995-03-15' AS DATE))) GROUP BY lineitem.l_orderkey, orders.o_orderdate, orders.o_shippriority ORDER BY revenue DESC NULLS FIRST, orders.o_orderdate ASC NULLS LAST rewritten_sql=SELECT samples.tpch.lineitem.l_orderkey, SUM((samples.tpch.lineitem.l_extendedprice * (CAST(1 AS DECIMAL(20,0)) - samples.tpch.lineitem.l_discount))) AS revenue, samples.tpch.orders.o_orderdate, samples.tpch.orders.o_shippriority FROM samples.tpch.customer JOIN samples.tpch.orders ON true JOIN samples.tpch.lineitem ON true WHERE (((((samples.tpch.customer.c_mktsegment = 'BUILDING') AND (samples.tpch.customer.c_custkey = samples.tpch.orders.o_custkey)) AND (samples.tpch.lineitem.l_orderkey = samples.tpch.orders.o_orderkey)) AND (samples.tpch.orders.o_orderdate < CAST('1995-03-15' AS DATE))) AND (samples.tpch.lineitem.l_shipdate > CAST('1995-03-15' AS DATE))) GROUP BY samples.tpch.lineitem.l_orderkey, samples.tpch.orders.o_orderdate, samples.tpch.orders.o_shippriority ORDER BY revenue DESC NULLS FIRST, samples.tpch.orders.o_orderdate ASC NULLS LAST |
|               |                                                                                |
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

spice, spiced, OS info

spice version: v0.15.2-alpha-rc.f5bf2d0c
spiced version: v0.15.2-alpha-rc.f5bf2d0c
OS info: Linux pop-os 6.9.3-76060903-generic #202405300957~1718348209~22.04~7817b67 SMP PREEMPT_DYNAMIC Mon J x86_64 x86_64 x86_64 GNU/Linux

Have you tried this on the latest trunk branch?
Yes / with edits enabling JoinPushDown for ODBC connections.

Related fix: https://github.com/spiceai/spiceai/pull/1946/files

repo: spiceai/spiceai


text:
Night CI 2023-11-21: Failed

action url: https://github.com/spidernet-io/egressgateway/actions/runs/6948934225

应该是 github runner 偶发的问题
Get "https://registry-1.docker.io/v2/calico/node/manifests/sha256:0b242b133d70518988a5a36c1401ee4f37bf937743ecceafd242bd821b6645c6": EOF

[internal] load metadata for docker.io/library/golang:1.20.5
#3 ERROR: failed to authorize: failed to fetch oauth token: Post "https://auth.docker.io/token": EOF

------
 > [internal] load metadata for docker.io/library/golang:1.20.5:
------
Dockerfile:11
--------------------
   9 |
  10 |     #======= build bin ==========
  11 | >>> FROM --platform=${BUILDPLATFORM} ${GOLANG_IMAGE} as builder
  12 |
  13 |     # docker build var
--------------------
ERROR: failed to solve: docker.io/library/golang:1.20.5: failed to authorize: failed to fetch oauth token: Post "https://auth.docker.io/token": EOF

authors: bzsuni weizhoublue

repo: spidernet-io/egressgateway


text:
Add issuerURL info in OIDC Discovery error handling (#394)

Adding issuerURL info in OIDC Discovery error handling

Before:
2024/04/08 12:19:16 Cannot Configure: Cannot configure auth plugin: Couldn't configure Auth: Could not set up OIDC Discovery client: error

After:
2024/04/08 12:19:16 Cannot Configure: Cannot configure auth plugin: Couldn't configure Auth: Could not set up OIDC Discovery client with issuer = '<insert IssuerURL>': error

closes #394

Thanks

repo: spiffe/tornjak


text:
to_xml or to_json support

WIth binary columns both some_encrypted_model_instance.to_xml and some_encrypted_model_instance.to_json do not work.  I expected them to return ** encrypted ** values.

I'm receiving SystemStackError: stack level too deep errors when trying to use to_json. Same situation that rx had described. Binary column. Encrypted model instance. On version 0.7.2.
Adding as_json resolves it. @spikex I thought you had pushed up the fix? Or did the fix not involve as_json?

authors: MatTarantini rx

repo: spikex/strongbox


text:
feat(plugins): signal that --ui-resource-location will be unneeded in…

… Spinnaker 1.20.0
These notes are inadequate and will need to be updated once Spinnaker 1.20.0 is actually out, but it's a signal of what's to come.
In order to omit the --ui-resource-location flag from your Hal config, you'll need pf4jStagePlugin@1.1.3, but that version requires a change in Orca that won't arrive until Spinnaker 1.20.0.

@aimeeu please review


text:
feat(artifacts): base64 reference

https://github.com/spinnaker/spinnaker/issues/2526

Sloppy me...


text:
RoadRunner 2.12 is downloading instead of 2023.1

composer create project

╭─ bash  test  羽149ms⠀                                                                                ﴱ default WSL at    23,15:50 
╰─ﬀ composer create-project spiral/app demo
Creating a "spiral/app" project at "./demo"
Info from https://repo.packagist.org: #StandWithUkraine
Installing spiral/app (3.3.3)
  - Installing spiral/app (3.3.3): Extracting archive
Created project in /home/necrogami/code/test/demo
> Installer\Installer::install

   _____         _              _
  / ____|       (_)            | |
 | (___   _ __   _  _ __  __ _ | |
  \___ \ | '_ \ | || '__|/ _` || |
  ____) || |_) || || |  | (_| || |
 |_____/ | .__/ |_||_|   \__,_||_|
         | |
         |_|

  Which application preset do you want to install?
  [1] Web
  [2] Cli
  [3] gRPC
  Make your selection (default: 1):

  Create a default application structure and demo data?
  [1] Yes
  [0] No
  [?] Help
  Make your selection (default: 1):

  Would you like to use SAPI?
  [1] Yes
  [0] No
  [?] Help
  Make your selection (default: 0):

  Do you need Cycle ORM?
  [1] Yes
  [0] No
  Make your selection (default: 1):

  Which Collections do you want to use with Cycle ORM?
  [1] Doctrine Collections
  [2] Laravel Collections
  [3] Loophp Collections
  [0] Use PHP array as the collection
  Make your selection (default: 1):

  Which validator component do you want to use?
  [1] Spiral Validator
  [2] Symfony Validator
  [3] Laravel Validator
  [0] None of the above
  [?] Help
  Make your selection (default: 1):

  Do you want to use Queue component?
  [1] Yes
  [0] No
  Make your selection (default: 0):

  Do you want to use Cache component?
  [1] Yes
  [0] No
  Make your selection (default: 0):

  Do you want to use Mailer Component?
  [1] Yes
  [0] No
  Make your selection (default: 0):

  Do you want to use Storage component?
  [1] Yes
  [0] No
  Make your selection (default: 0):

  Which template engine do you want to use?
  [1] Stempler
  [2] Twig
  [0] None of the above
  Make your selection (default: 1):

  Do you want to use the Event Dispatcher?
  [1] Yes
  [0] No
  [?] Help
  Make your selection (default: 0):

  Do you need a cron jobs scheduler?
  [1] Yes
  [0] No
  Make your selection (default: 0):

  Do you need the Temporal?
  [1] Yes
  [0] No
  Make your selection (default: 0):

  Do you need the RoadRunner Metrics?
  [1] Yes
  [0] No
  Make your selection (default: 0):

  Do you need the Sentry?
  [1] Yes
  [0] No
  Make your selection (default: 0):
Loading composer repositories with package information

Updating dependencies
Lock file operations: 145 installs, 0 updates, 0 removals
  - Locking alexkart/curl-builder (1.0.6)
  - Locking amphp/amp (v2.6.2)
  - Locking amphp/byte-stream (v1.8.1)
  - Locking brick/math (0.11.0)
  - Locking cebe/markdown (1.2.1)
  - Locking cocur/slugify (v3.2)
  - Locking codedungeon/php-cli-colors (1.12.2)
  - Locking composer/pcre (3.1.0)
  - Locking composer/semver (3.3.2)
  - Locking composer/xdebug-handler (3.0.3)
  - Locking cycle/annotated (v3.2.1)
  - Locking cycle/database (2.4.1)
  - Locking cycle/migrations (v4.0.1)
  - Locking cycle/orm (v2.3.0)
  - Locking cycle/schema-builder (v2.3.0)
  - Locking cycle/schema-migrations-generator (2.1.0)
  - Locking cycle/schema-renderer (1.2.0)
  - Locking defuse/php-encryption (v2.3.1)
  - Locking dnoegel/php-xdg-base-dir (v0.1.1)
  - Locking doctrine/annotations (2.0.1)
  - Locking doctrine/collections (1.8.0)
  - Locking doctrine/deprecations (v1.0.0)
  - Locking doctrine/inflector (2.0.6)
  - Locking doctrine/instantiator (1.5.0)
  - Locking doctrine/lexer (3.0.0)
  - Locking egulias/email-validator (4.0.1)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking felixfbecker/language-server-protocol (v1.5.2)
  - Locking fidry/cpu-core-counter (0.5.1)
  - Locking google/common-protos (v3.2.0)
  - Locking google/protobuf (v3.22.3)
  - Locking graham-campbell/result-type (v1.1.1)
  - Locking grpc/grpc (1.52.0)
  - Locking hamcrest/hamcrest-php (v2.0.1)
  - Locking league/flysystem (2.5.0)
  - Locking league/mime-type-detection (1.11.0)
  - Locking mockery/mockery (1.5.1)
  - Locking monolog/monolog (2.9.1)
  - Locking myclabs/deep-copy (1.11.1)
  - Locking netresearch/jsonmapper (v4.2.0)
  - Locking nette/php-generator (v4.0.6)
  - Locking nette/utils (v4.0.0)
  - Locking nikic/php-parser (v4.15.4)
  - Locking nyholm/psr7 (1.7.0)
  - Locking opis/closure (3.6.3)
  - Locking paragonie/random_compat (v9.99.100)
  - Locking phar-io/manifest (2.0.3)
  - Locking phar-io/version (3.2.1)
  - Locking php-http/message-factory (1.1.0)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.3.0)
  - Locking phpdocumentor/type-resolver (1.7.1)
  - Locking phpoption/phpoption (1.9.1)
  - Locking phpstan/phpdoc-parser (1.20.2)
  - Locking phpunit/php-code-coverage (9.2.26)
  - Locking phpunit/php-file-iterator (3.0.6)
  - Locking phpunit/php-invoker (3.1.1)
  - Locking phpunit/php-text-template (2.0.4)
  - Locking phpunit/php-timer (5.0.3)
  - Locking phpunit/phpunit (9.6.7)
  - Locking psr/cache (3.0.0)
  - Locking psr/container (2.0.2)
  - Locking psr/event-dispatcher (1.0.0)
  - Locking psr/http-factory (1.0.2)
  - Locking psr/http-message (1.1)
  - Locking psr/http-server-handler (1.0.2)
  - Locking psr/http-server-middleware (1.0.2)
  - Locking psr/log (3.0.0)
  - Locking psr/simple-cache (3.0.0)
  - Locking qossmic/deptrac-shim (1.0.2)
  - Locking ramsey/collection (2.0.0)
  - Locking ramsey/uuid (4.7.4)
  - Locking roadrunner-php/app-logger (1.1.0)
  - Locking roadrunner-php/centrifugo (1.0.0)
  - Locking sebastian/cli-parser (1.0.1)
  - Locking sebastian/code-unit (1.0.8)
  - Locking sebastian/code-unit-reverse-lookup (2.0.3)
  - Locking sebastian/comparator (4.0.8)
  - Locking sebastian/complexity (2.0.2)
  - Locking sebastian/diff (4.0.4)
  - Locking sebastian/environment (5.1.5)
  - Locking sebastian/exporter (4.0.5)
  - Locking sebastian/global-state (5.0.5)
  - Locking sebastian/lines-of-code (1.0.3)
  - Locking sebastian/object-enumerator (4.0.4)
  - Locking sebastian/object-reflector (2.0.4)
  - Locking sebastian/recursion-context (4.0.5)
  - Locking sebastian/resource-operations (3.0.3)
  - Locking sebastian/type (3.2.1)
  - Locking sebastian/version (3.0.2)
  - Locking spatie/array-to-xml (3.1.5)
  - Locking spiral-packages/yii-error-handler-bridge (1.1.0)
  - Locking spiral/attributes (v3.1.0)
  - Locking spiral/composer-publish-plugin (v1.1.2)
  - Locking spiral/cycle-bridge (v2.4.1)
  - Locking spiral/data-grid (v3.0.0)
  - Locking spiral/data-grid-bridge (v3.0.1)
  - Locking spiral/framework (3.7.1)
  - Locking spiral/goridge (v3.2.0)
  - Locking spiral/nyholm-bridge (v1.3.0)
  - Locking spiral/roadrunner (v2.12.3)
  - Locking spiral/roadrunner-bridge (2.6.0)
  - Locking spiral/roadrunner-broadcast (v2.1.0)
  - Locking spiral/roadrunner-cli (v2.5.0)
  - Locking spiral/roadrunner-grpc (v2.0.1)
  - Locking spiral/roadrunner-http (v2.2.0)
  - Locking spiral/roadrunner-jobs (v2.9.0)
  - Locking spiral/roadrunner-kv (v3.0.0)
  - Locking spiral/roadrunner-metrics (v2.0.1)
  - Locking spiral/roadrunner-tcp (v2.0.1)
  - Locking spiral/roadrunner-worker (v2.3.0)
  - Locking spiral/testing (2.3.0)
  - Locking spiral/validator (1.3.0)
  - Locking symfony/console (v6.2.8)
  - Locking symfony/deprecation-contracts (v3.2.1)
  - Locking symfony/event-dispatcher (v6.2.8)
  - Locking symfony/event-dispatcher-contracts (v3.2.1)
  - Locking symfony/filesystem (v6.2.7)
  - Locking symfony/finder (v6.2.7)
  - Locking symfony/http-client (v6.2.9)
  - Locking symfony/http-client-contracts (v3.2.1)
  - Locking symfony/mailer (v6.2.8)
  - Locking symfony/mime (v6.2.7)
  - Locking symfony/polyfill-ctype (v1.27.0)
  - Locking symfony/polyfill-intl-grapheme (v1.27.0)
  - Locking symfony/polyfill-intl-idn (v1.27.0)
  - Locking symfony/polyfill-intl-normalizer (v1.27.0)
  - Locking symfony/polyfill-mbstring (v1.27.0)
  - Locking symfony/polyfill-php72 (v1.27.0)
  - Locking symfony/polyfill-php80 (v1.27.0)
  - Locking symfony/service-contracts (v3.2.1)
  - Locking symfony/string (v6.2.8)
  - Locking symfony/translation (v6.2.8)
  - Locking symfony/translation-contracts (v3.2.1)
  - Locking symfony/var-dumper (v6.2.8)
  - Locking symfony/yaml (v6.2.7)
  - Locking theseer/tokenizer (1.2.1)
  - Locking vimeo/psalm (dev-master a97b6b8)
  - Locking vlucas/phpdotenv (v5.5.0)
  - Locking webmozart/assert (1.11.0)
  - Locking yiisoft/error-handler (3.0.0)
  - Locking yiisoft/friendly-exception (1.1.0)
  - Locking yiisoft/http (1.2.0)
  - Locking yiisoft/injector (1.1.0)
  - Locking yiisoft/strings (2.1.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 145 installs, 0 updates, 0 removals
  - Installing spiral/composer-publish-plugin (v1.1.2): Extracting archive
  - Installing brick/math (0.11.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.27.0): Extracting archive
  - Installing cocur/slugify (v3.2): Extracting archive
  - Installing codedungeon/php-cli-colors (1.12.2): Extracting archive
  - Installing composer/pcre (3.1.0): Extracting archive
  - Installing yiisoft/friendly-exception (1.1.0): Extracting archive
  - Installing doctrine/instantiator (1.5.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.27.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.27.0): Extracting archive
  - Installing phpoption/phpoption (1.9.1): Extracting archive
  - Installing graham-campbell/result-type (v1.1.1): Extracting archive
  - Installing vlucas/phpdotenv (v5.5.0): Extracting archive
  - Installing symfony/translation-contracts (v3.2.1): Extracting archive
  - Installing symfony/translation (v6.2.8): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.2.1): Extracting archive
  - Installing symfony/polyfill-php72 (v1.27.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.27.0): Extracting archive
  - Installing symfony/polyfill-intl-idn (v1.27.0): Extracting archive
  - Installing symfony/mime (v6.2.7): Extracting archive
  - Installing psr/event-dispatcher (1.0.0): Extracting archive
  - Installing symfony/event-dispatcher-contracts (v3.2.1): Extracting archive
  - Installing symfony/event-dispatcher (v6.2.8): Extracting archive
  - Installing psr/log (3.0.0): Extracting archive
  - Installing doctrine/lexer (3.0.0): Extracting archive
  - Installing egulias/email-validator (4.0.1): Extracting archive
  - Installing symfony/mailer (v6.2.8): Extracting archive
  - Installing symfony/finder (v6.2.7): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.27.0): Extracting archive
  - Installing symfony/string (v6.2.8): Extracting archive
  - Installing symfony/deprecation-contracts (v3.2.1): Extracting archive
  - Installing symfony/console (v6.2.8): Extracting archive
  - Installing psr/simple-cache (3.0.0): Extracting archive
  - Installing psr/cache (3.0.0): Extracting archive
  - Installing spiral/attributes (v3.1.0): Extracting archive
  - Installing psr/http-message (1.1): Extracting archive
  - Installing psr/http-server-handler (1.0.2): Extracting archive
  - Installing psr/http-server-middleware (1.0.2): Extracting archive
  - Installing psr/http-factory (1.0.2): Extracting archive
  - Installing php-http/message-factory (1.1.0): Extracting archive
  - Installing nyholm/psr7 (1.7.0): Extracting archive
  - Installing nikic/php-parser (v4.15.4): Extracting archive
  - Installing nette/utils (v4.0.0): Extracting archive
  - Installing nette/php-generator (v4.0.6): Extracting archive
  - Installing myclabs/deep-copy (1.11.1): Extracting archive
  - Installing monolog/monolog (2.9.1): Extracting archive
  - Installing league/mime-type-detection (1.11.0): Extracting archive
  - Installing league/flysystem (2.5.0): Extracting archive
  - Installing doctrine/inflector (2.0.6): Extracting archive
  - Installing doctrine/annotations (2.0.1): Extracting archive
  - Installing paragonie/random_compat (v9.99.100): Extracting archive
  - Installing defuse/php-encryption (v2.3.1): Extracting archive
  - Installing spiral/framework (3.7.1): Extracting archive
  - Installing cycle/database (2.4.1): Extracting archive
  - Installing cycle/orm (v2.3.0): Extracting archive
  - Installing cycle/schema-builder (v2.3.0): Extracting archive
  - Installing doctrine/deprecations (v1.0.0): Extracting archive
  - Installing doctrine/collections (1.8.0): Extracting archive
  - Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive
  - Installing phar-io/version (3.2.1): Extracting archive
  - Installing phar-io/manifest (2.0.3): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (1.20.2): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing phpdocumentor/type-resolver (1.7.1): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive
  - Installing theseer/tokenizer (1.2.1): Extracting archive
  - Installing sebastian/version (3.0.2): Extracting archive
  - Installing sebastian/lines-of-code (1.0.3): Extracting archive
  - Installing sebastian/environment (5.1.5): Extracting archive
  - Installing sebastian/complexity (2.0.2): Extracting archive
  - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
  - Installing phpunit/php-text-template (2.0.4): Extracting archive
  - Installing phpunit/php-file-iterator (3.0.6): Extracting archive
  - Installing phpunit/php-code-coverage (9.2.26): Extracting archive
  - Installing phpunit/php-invoker (3.1.1): Extracting archive
  - Installing phpunit/php-timer (5.0.3): Extracting archive
  - Installing qossmic/deptrac-shim (1.0.2): Extracting archive
  - Installing ramsey/collection (2.0.0): Extracting archive
  - Installing sebastian/cli-parser (1.0.1): Extracting archive
  - Installing sebastian/code-unit (1.0.8): Extracting archive
  - Installing sebastian/recursion-context (4.0.5): Extracting archive
  - Installing sebastian/exporter (4.0.5): Extracting archive
  - Installing sebastian/diff (4.0.4): Extracting archive
  - Installing sebastian/comparator (4.0.8): Extracting archive
  - Installing sebastian/object-reflector (2.0.4): Extracting archive
  - Installing sebastian/global-state (5.0.5): Extracting archive
  - Installing sebastian/object-enumerator (4.0.4): Extracting archive
  - Installing sebastian/resource-operations (3.0.3): Extracting archive
  - Installing sebastian/type (3.2.1): Extracting archive
  - Installing yiisoft/injector (1.1.0): Extracting archive
  - Installing yiisoft/strings (2.1.0): Extracting archive
  - Installing yiisoft/http (1.2.0): Extracting archive
  - Installing cebe/markdown (1.2.1): Extracting archive
  - Installing alexkart/curl-builder (1.0.6): Extracting archive
  - Installing yiisoft/error-handler (3.0.0): Extracting archive
  - Installing spiral-packages/yii-error-handler-bridge (1.1.0): Extracting archive
  - Installing spiral/data-grid (v3.0.0): Extracting archive
  - Installing spiral/data-grid-bridge (v3.0.1): Extracting archive
  - Installing cycle/schema-renderer (1.2.0): Extracting archive
  - Installing cycle/migrations (v4.0.1): Extracting archive
  - Installing cycle/schema-migrations-generator (2.1.0): Extracting archive
  - Installing cycle/annotated (v3.2.1): Extracting archive
  - Installing spiral/cycle-bridge (v2.4.1): Extracting archive
  - Installing spiral/nyholm-bridge (v1.3.0): Extracting archive
  - Installing spiral/goridge (v3.2.0): Extracting archive
  - Installing spiral/roadrunner-worker (v2.3.0): Extracting archive
  - Installing spiral/roadrunner-tcp (v2.0.1): Extracting archive
  - Installing spiral/roadrunner-metrics (v2.0.1): Extracting archive
  - Installing spiral/roadrunner-http (v2.2.0): Extracting archive
  - Installing symfony/yaml (v6.2.7): Extracting archive
  - Installing symfony/http-client-contracts (v3.2.1): Extracting archive
  - Installing symfony/http-client (v6.2.9): Extracting archive
  - Installing composer/semver (3.3.2): Extracting archive
  - Installing spiral/roadrunner-cli (v2.5.0): Extracting archive
  - Installing spiral/roadrunner (v2.12.3)
  - Installing google/protobuf (v3.22.3): Extracting archive
  - Installing spiral/roadrunner-kv (v3.0.0): Extracting archive
  - Installing ramsey/uuid (4.7.4): Extracting archive
  - Installing opis/closure (3.6.3): Extracting archive
  - Installing spiral/roadrunner-jobs (v2.9.0): Extracting archive
  - Installing google/common-protos (v3.2.0): Extracting archive
  - Installing spiral/roadrunner-grpc (v2.0.1): Extracting archive
  - Installing spiral/roadrunner-broadcast (v2.1.0): Extracting archive
  - Installing roadrunner-php/centrifugo (1.0.0): Extracting archive
  - Installing roadrunner-php/app-logger (1.1.0): Extracting archive
  - Installing grpc/grpc (1.52.0): Extracting archive
  - Installing spiral/roadrunner-bridge (2.6.0): Extracting archive
  - Installing phpunit/phpunit (9.6.7): Extracting archive
  - Installing mockery/mockery (1.5.1): Extracting archive
  - Installing spiral/testing (2.3.0): Extracting archive
  - Installing spiral/validator (1.3.0): Extracting archive
  - Installing symfony/var-dumper (v6.2.8): Extracting archive
  - Installing symfony/filesystem (v6.2.7): Extracting archive
  - Installing spatie/array-to-xml (3.1.5): Extracting archive
  - Installing netresearch/jsonmapper (v4.2.0): Extracting archive
  - Installing fidry/cpu-core-counter (0.5.1): Extracting archive
  - Installing felixfbecker/language-server-protocol (v1.5.2): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing dnoegel/php-xdg-base-dir (v0.1.1): Extracting archive
  - Installing composer/xdebug-handler (3.0.3): Extracting archive
  - Installing amphp/amp (v2.6.2): Extracting archive
  - Installing amphp/byte-stream (v1.8.1): Extracting archive
  - Installing vimeo/psalm (dev-master a97b6b8): Extracting archive
25 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
80 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> Installer\Configurator::configure
  Installation complete!

  Next steps:
  1. Please, configure the environment variables in the .env file at the application's root.
  2. Read documentation about Spiral Framework: https://spiral.dev/docs
  RoadRunnerBridge
  1. The settings for RoadRunner are in a file named .rr.yaml at the main folder of the app.
  2. Documentation: https://spiral.dev/docs/start-server
  CycleBridge
  1. Database configuration file: app/config/database.php
  2. Migrations configuration file: app/config/migration.php
  3. Cycle ORM configuration file: app/config/cycle.php
  4. Documentation: https://spiral.dev/docs/basics-orm
  SpiralValidator
  1. Read more about validation in the Spiral Framework: https://spiral.dev/docs/validation-factory
  2. Documentation: https://spiral.dev/docs/validation-spiral
  StemplerBridge
  1. Read more about views in the Spiral Framework: https://spiral.dev/docs/views-configuration
  2. Documentation: https://spiral.dev/docs/views-stempler
  Removing Configurator from composer.json ...
No security vulnerability advisories found
> php app.php encrypt:key -m .env
New encryption key: def000000e76e68caa6418453b5ccf6d09cf62f3cda7d151b6d8304c613ff033c785908f7c4f9cf8af152c5b0081768e12375a000cc9d3cb9265933a04c48d8ec765374b
Encryption key has been updated.
> php app.php configure --quiet
> rr get-binary --quiet
> composer dump-autoload
Generating autoload files
Generated autoload files

change to dir
╭─ bash  test  羽6ms⠀                                                                                ﴱ default WSL at    23,15:51 
╰─ﬀ cd demo

try and start rr
╭─ bash  demo  羽6ms⠀                                                                                ﴱ default WSL at    23,15:51 
╰─ﬀ ./rr serve
2023-04-23T15:51:29.425-0400    ERROR   container/init.go:75    error calling internal_init     {"id": "config.Plugin", "error": "3.0.0"}
github.com/roadrunner-server/endure/pkg/container.(*Endure).callInitFn
        github.com/roadrunner-server/endure@v1.4.6/pkg/container/init.go:75
github.com/roadrunner-server/endure/pkg/container.(*Endure).internalInit
        github.com/roadrunner-server/endure@v1.4.6/pkg/container/init.go:25
github.com/roadrunner-server/endure/pkg/container.(*Endure).Initialize
        github.com/roadrunner-server/endure@v1.4.6/pkg/container/endure.go:404
reflect.Value.call
        reflect/value.go:586
reflect.Value.Call
        reflect/value.go:370
github.com/roadrunner-server/endure/pkg/fsm.(*FSMImpl).Transition
        github.com/roadrunner-server/endure@v1.4.6/pkg/fsm/fsm.go:180
github.com/roadrunner-server/endure/pkg/container.(*Endure).Init
        github.com/roadrunner-server/endure@v1.4.6/pkg/container/endure.go:314
github.com/roadrunner-server/roadrunner/v2/internal/cli/serve.NewCommand.func1
        github.com/roadrunner-server/roadrunner/v2/internal/cli/serve/command.go:60
github.com/spf13/cobra.(*Command).execute
        github.com/spf13/cobra@v1.6.1/command.go:916
github.com/spf13/cobra.(*Command).ExecuteC
        github.com/spf13/cobra@v1.6.1/command.go:1044
github.com/spf13/cobra.(*Command).Execute
        github.com/spf13/cobra@v1.6.1/command.go:968
main.run
        github.com/roadrunner-server/roadrunner/v2/cmd/rr/main.go:26
main.main
        github.com/roadrunner-server/roadrunner/v2/cmd/rr/main.go:16
runtime.main
        runtime/proc.go:250
2023-04-23T15:51:29.425-0400    ERROR   container/init.go:30    error occurred during the call INIT function    {"id": "config.Plugin", "error": "endure_call_init_fn: Function call error:\n\t3.0.0"}
github.com/roadrunner-server/endure/pkg/container.(*Endure).internalInit
        github.com/roadrunner-server/endure@v1.4.6/pkg/container/init.go:30
github.com/roadrunner-server/endure/pkg/container.(*Endure).Initialize
        github.com/roadrunner-server/endure@v1.4.6/pkg/container/endure.go:404
reflect.Value.call
        reflect/value.go:586
reflect.Value.Call
        reflect/value.go:370
github.com/roadrunner-server/endure/pkg/fsm.(*FSMImpl).Transition
        github.com/roadrunner-server/endure@v1.4.6/pkg/fsm/fsm.go:180
github.com/roadrunner-server/endure/pkg/container.(*Endure).Init
        github.com/roadrunner-server/endure@v1.4.6/pkg/container/endure.go:314
github.com/roadrunner-server/roadrunner/v2/internal/cli/serve.NewCommand.func1
        github.com/roadrunner-server/roadrunner/v2/internal/cli/serve/command.go:60
github.com/spf13/cobra.(*Command).execute
        github.com/spf13/cobra@v1.6.1/command.go:916
github.com/spf13/cobra.(*Command).ExecuteC
        github.com/spf13/cobra@v1.6.1/command.go:1044
github.com/spf13/cobra.(*Command).Execute
        github.com/spf13/cobra@v1.6.1/command.go:968
main.run
        github.com/roadrunner-server/roadrunner/v2/cmd/rr/main.go:26
main.main
        github.com/roadrunner-server/roadrunner/v2/cmd/rr/main.go:16
runtime.main
        runtime/proc.go:250
2023-04-23T15:51:29.425-0400    ERROR   container/endure.go:418 error during the internal_init  {"error": "endure_internal_init: Function call error:\n\tendure_call_init_fn:\n\t3.0.0"}
github.com/roadrunner-server/endure/pkg/container.(*Endure).Initialize
        github.com/roadrunner-server/endure@v1.4.6/pkg/container/endure.go:418
reflect.Value.call
        reflect/value.go:586
reflect.Value.Call
        reflect/value.go:370
github.com/roadrunner-server/endure/pkg/fsm.(*FSMImpl).Transition
        github.com/roadrunner-server/endure@v1.4.6/pkg/fsm/fsm.go:180
github.com/roadrunner-server/endure/pkg/container.(*Endure).Init
        github.com/roadrunner-server/endure@v1.4.6/pkg/container/endure.go:314
github.com/roadrunner-server/roadrunner/v2/internal/cli/serve.NewCommand.func1
        github.com/roadrunner-server/roadrunner/v2/internal/cli/serve/command.go:60
github.com/spf13/cobra.(*Command).execute
        github.com/spf13/cobra@v1.6.1/command.go:916
github.com/spf13/cobra.(*Command).ExecuteC
        github.com/spf13/cobra@v1.6.1/command.go:1044
github.com/spf13/cobra.(*Command).Execute
        github.com/spf13/cobra@v1.6.1/command.go:968
main.run
        github.com/roadrunner-server/roadrunner/v2/cmd/rr/main.go:26
main.main
        github.com/roadrunner-server/roadrunner/v2/cmd/rr/main.go:16
runtime.main
        runtime/proc.go:250
handle_serve_command: Init error:
        endure_initialize:
        endure_internal_init: Function call error:
        endure_call_init_fn:
        3.0.0

It seems to stem from .rr.yaml having 3 as the version line.

Hello. Which RR version has been installed?
rr --version
There should be 2023.1.1

rr version 2.12.3 (build time: 2023-02-16T13:08:41+0000, go1.20), OS: linux, arch: amd64

Thank you.
We will fix it. You can download the latest RoadRunner binaries manually.
https://github.com/roadrunner-server/roadrunner/releases/tag/v2023.1.1

There is PR https://github.com/spiral/app/pull/123 with updates. I'll try to merge it today

authors: butschster necrogami roxblnfk

repo: spiral/app


text:
Allow symfony/finder ^5.0

Allow symfony/finder ^5.0 in require section for compatibility with Symfony 5

Thank you!

So fast :)

authors: genhoi wolfy-j

repo: spiral/tokenizer


text:
Check Point Firewall : PAPP-23430 Action Failures - Error "Too many requests in a given amount of time"

Please ensure your pull request (PR) adheres to the following guidelines:

Please refer to our contributing documentation for any questions on submitting a pull request, link: Contribution Guide

Pull Request Checklist
Please check if your PR fulfills the following requirements:

[ ] Testing of all the changes has been performed (for bug fixes / features)
[ ] The readme.html has been reviewed and added / updated if needed (for bug fixes / features)
[ ] Use the following format for the PR description: <App Name>: <PR Type> - <PR Description>
[ ] Provide release notes as part of the PR submission which describe high level points about the changes for the upcoming GA release.
[ ] Verify all checks are passing.
[ ] Do NOT use the next branch of the forked repo. Create separate feature branch for raising the PR.
[ ] Do NOT submit updates to dependencies unless it fixes an issue.

Pull Request Type
Please check the type of change your PR introduces:

[ ] New App
[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation
[ ] Other (please describe):

Release Notes (REQUIRED)

Provide release notes as part of the PR submission which describe high level points about the changes for the upcoming GA release.
Reduce use of login commands by saving session ID

What is the current behavior? (OPTIONAL)

Describe the current behavior that you are modifying.

What is the new behavior? (OPTIONAL)

Describe the behavior or changes that are being added by this PR.

Other information (OPTIONAL)

Any other information that is important to this PR such as screenshots of how the component looks before and after the change.

Pay close attention to (OPTIONAL)

Any specific code change or test case points which must be addressed/reviewed at the time of GA release.

Screenshots (if relevant)

Thanks for contributing!

Integration test fails in github pipelline due to timeout because of asset in use.
Link to passing integration test run on gitlab (5.0.1 on-prem): https://cd.splunkdev.com/phantom-apps/app-tests/-/pipelines/4316100


text:
[BUG] Active_Directory_Disable_Account_Dispatch

If you have a Splunk Support contract, creating a support case for your issue may result in faster resolution.
Describe the bug
There are two bugs:
The playbook has a decision block called "observable output filter" which is not functioning as a filter.
The playbook has a decision block at the beginning called "username filter" which is not functioning as a filter and it is checking for a field called "act" which does not appear to be relevant to the playbook.
Expected behavior
A filter block would follow the decision block and all downstream blocks would use the filtered block.
Screenshots
Existing structure:

Recommended structure:

App Version:
N/A
Additional context
Add any other context about the problem here.

Resolved in linked PR

authors: kelby-shelton ljstella


text:
Handle more deeply nested children

Don't merge this until internal MR 1427 on security_content makes its way to public.

Now expects tags.defend_technique_id (present on playbooks) to be a list instead of a string
Handles multiple D3FEND techniques on the playbooks page
Handles multiple D3FEND techniques on the individual playbook page
Expands depth of iteration in matrix.json (D3FEND topology) to match against more deeply nested Techniques.

Moving from "Draft" -> "Ready for Review" so that once the next release of splunk/security_content happens, we can merge this for the site build.

Added two more commits so that errors will be nicely formatted, and sorting the macros and lookups on each detection's page so that the build is closer to deterministic.

The playbook MR was updated in github! Approving this build now! AMAZING improvement in speed!

authors: ljstella patel-bhavin


text:
Support AKS RBAC metrics

What would you like to be added:
Support for RBAC enabled AKS cluster.
Currently when scraping from kubelet on 10250 on Kubernetes 1.13.5 (AKS), the metrics pod is returning a 401 Unauthorized.
See:
2019-06-12 15:56:47 +0000 [error]: #0 Unexpected error raised. Stopping the timer. title=:cadvisor_metric_scraper error_class=RestClient::Unauthorized error="401 Unauthorized"
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/rest-client-2.0.2/lib/restclient/abstract_response.rb:223:in `exception_with_response'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/rest-client-2.0.2/lib/restclient/abstract_response.rb:103:in `return!'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/rest-client-2.0.2/lib/restclient/request.rb:809:in `process_result'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/rest-client-2.0.2/lib/restclient/request.rb:725:in `block in transmit'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/2.5.0/net/http.rb:910:in `start'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/rest-client-2.0.2/lib/restclient/request.rb:715:in `transmit'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/rest-client-2.0.2/lib/restclient/request.rb:145:in `execute'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/rest-client-2.0.2/lib/restclient/request.rb:52:in `execute'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluent-plugin-kubernetes-metrics-1.1.0/lib/fluent/plugin/in_kubernetes_metrics.rb:633:in `scrape_cadvisor_metrics'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluentd-1.4.0/lib/fluent/plugin_helper/timer.rb:80:in `on_timer'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/cool.io-1.5.3/lib/cool.io/loop.rb:88:in `run_once'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/cool.io-1.5.3/lib/cool.io/loop.rb:88:in `run'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluentd-1.4.0/lib/fluent/plugin_helper/event_loop.rb:93:in `block in start'
  2019-06-12 15:56:47 +0000 [error]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluentd-1.4.0/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create'
2019-06-12 15:56:47 +0000 [error]: #0 Timer detached. title=:cadvisor_metric_scraper

Port 10225 is disabled by default so SSL is the only option.
Below shows the flags for how kubelet is started:
I0522 11:51:58.643780   15035 flags.go:33] FLAG: --allow-privileged="true"
I0522 11:51:58.643787   15035 flags.go:33] FLAG: --allowed-unsafe-sysctls="[]"
I0522 11:51:58.643796   15035 flags.go:33] FLAG: --alsologtostderr="false"
I0522 11:51:58.643801   15035 flags.go:33] FLAG: --anonymous-auth="false"
I0522 11:51:58.643804   15035 flags.go:33] FLAG: --application-metrics-count-limit="100"
I0522 11:51:58.643808   15035 flags.go:33] FLAG: --authentication-token-webhook="false"
I0522 11:51:58.643811   15035 flags.go:33] FLAG: --authentication-token-webhook-cache-ttl="2m0s"
I0522 11:51:58.643820   15035 flags.go:33] FLAG: --authorization-mode="Webhook"
I0522 11:51:58.643824   15035 flags.go:33] FLAG: --authorization-webhook-cache-authorized-ttl="5m0s"
I0522 11:51:58.643828   15035 flags.go:33] FLAG: --authorization-webhook-cache-unauthorized-ttl="30s"

Why is this needed:
Support for RBAC enabled AKS cluster.

Nice catch @cwebbtw. We haven't tested this release on AKS. We will tackle the RBAC issues when supporting AKS. Thanks.
Meanwhile if you have time to experiment you can try using the cluster roles on this page https://kubernetes.io/docs/reference/access-authn-authz/rbac/ to get yourself unblocked. AFAIK cluster-admin role will work for sure. After that, you can try to find a less permissive one which works with AKS.
Please report your findings back to us. Thanks.

After fiddling around, I was able to get the non ssl read only kubelet api working with splunk connect for kubernetes but actually it seems more that even with extremely permissive roles, the ssl port is unauthorised.

@cwebbtw that is interesting.I am glad non ssl kubelet api works for you. I havent looked at AKS for ssl kubelet API support. Maybe there are some cluster settings need to be tweaked. Let me know if you find out something relevant. Thanks :)

AKS uses self signed certificates for creating kubernetes clusters, so unfortunately we can only use insecure mode. Let us know if you find a workaround.

authors: chaitanyaphalak cwebbtw

repo: splunk/splunk-connect-for-kubernetes


text:
Logs catched incorrectly by app-almost-syslogz-hostnodate

Hi,
We have detected that audit logs from our Forcepoint WebProtect (only admin audit events, not the navigation events) are being catched by the app-almost-syslogz-hostnodate parser and therefore are being incorrectly parsed.
The issue is that the parser filter expects that the month in syslog logs come with the first letter in capitals followed by other 2 letters in lowercase but in this case (the audit events from Forcepoint), the month comes with the 3 letters in lowercase and it parses as Host-no-date events and the month is collected as hostname.
The current filter in app-almost-syslogz-hostnodate.conf is:
filter {
            not message('^\<\d+\> ?[A-Z][a-z]{2} ');
        };

An example of the events that we receive (anonimized):
<156> oct 11 16:10:25 172.26.000.000 vendor=Forcepoint product=Security product_version=8.5.4 action=Log Off user={USER} reason={{Role:{_}},_{Type:{}},_{Element:{}},_{Values:{{Previous:_Source:10.0.0.0}{Current:_}}}}
For this case and for us one solution would be change the filter to accept month names with the first letter in capitals as well as with all the letters in lowercase.
filter {
           not message('^\<\d+\> ?[A-Za-z][a-z]{2} ');
       };

Just in case you think that this change will not have any problem with another type of event.
Best regards,
Mikel

@mikelaz,
Are you still facing this issue ?

Hi, we made some tests with the workaround that we were proposing without success and then we verified that the problem was that the audit logs came from a machine whose OS was in Spanish. As you can see on the following screenshot, even though the format was correct (%b for the month name) we were receiving the month names in lowercase:

The reason is that in Spanish the months are not named with the first letter in capitals and instead of receiving "Jan" for January we were receiving "ene" that is the abreviation of "enero".
We have finally deactivated the forwarding of these audit logs since they were not giving us relevant information.
Thanks a lot for your help.

@mikelaz,
Thank you for the update.
We are closing this issue for now.
Please reach out in case of further queries.

authors: bparmar-splunk mikelaz

repo: splunk/splunk-connect-for-syslog


text:
SSL Certificates issue: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException

I am looking for guidance around SSL certificates for talking to Splunk for an app (data input) implemented using your Java SDK. We have an app currently available in splunkbase: https://classic.splunkbase.splunk.com/app/4310/ implemented using the splunk-sdk-java.
When users of our app tries to validateInput or streamEvents, they see the error PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.
Looks like this happens because the certificate presented by their local splunk instance cannot be validated by the splunk-sdk-java code as it in not present in their local trust store.
The present workaround we suggest to our customers, is to manually export this cert and import it into their local java cacerts store. This is not always practical, as the location of truststore can vary for each customer and also in case of splunk cloud, customer would need to contact splunk support to make this change as they don't have access to the actual machines.
I see there are multiple open similar issues: https://github.com/splunk/splunk-sdk-java/issues/209, https://github.com/splunk/splunk-sdk-java/issues/204, https://github.com/splunk/splunk-sdk-java/issues/185
Also, we do not want the setValidateCertificates set to false -> https://docs.splunk.com/DocumentationStatic/JavaSDK/1.9.4/com/splunk/HttpService.html#validateCertificates
For PROD environment, TRUE is strongly recommended, whereas working in localhost OR development environment, FALSE is used.
Do you have any workarounds or possible solution for this issue? Any help would be appreciated.

Hi @jrobins04 sorry for the delay in the response. We are working on a feature to enable passing and validation of SSL certificate. Once we have the feature fully developed and merged, will publish a new SDK release with the feature. Will keep you updated for the same.

@jrobins04 Check this: https://github.com/splunk/splunk-sdk-java/issues/209#issuecomment-2048570594

repo: splunk/splunk-sdk-java


text:
refactor: move spore-sdk as a peer dependency

No changes in the lock file, simply moved the @spore-sdk/core from dependencies to peerDependencies.

a question: why do we require users to install spore-sdk/core manually?

a question: why do we require users to install spore-sdk/core manually?

Developers should use spore-graphql and spore-sdk together. Moving the spore-sdk to peerDependencies can make things easier, as we won't always have to upgrade spore-graphql whenever spore-sdk is upgraded.

authors: ShookLyngs ashuralyk

repo: sporeprotocol/spore-graphql


text:
404 Error in teams

When calling cfb_teams_frame = sportsdataverse.cfb.load_cfb_team_info(seasons=range(2002, 2022)) I get a 404. It works with any other years. Same error comes if I set "seasons=[2021]".

Issue is no longer present in the most recent build of sportsdataverse-py.

authors: armstjc christophermclement

repo: sportsdataverse/sportsdataverse-py


text:
edit techdocs documentation

Hey, I just made a Pull Request!
Added a clarification line to TechDocs documentation regarding templating
:heavy_check_mark: Checklist

[:heavy_check_mark] Added or updated documentation

just some prettier to fix, otherwise it looks good to me 🎉

Great, thanks a lot! @adrianke77 🎉

repo: spotify/backstage


text:
I want execute this plugin in the parent project of maven ,but it appears that the parent project of target folder is not exist.how can I use the plugin to batch execute docker:build

[INFO] cloud-docker-parent ................................ FAILURE [ 46.177 s]
[INFO] cloud-docker-common ................................ SKIPPED
[INFO] cloud-docker-menu-api .............................. SKIPPED
[INFO] cloud-docker-user-api .............................. SKIPPED
[INFO] cloud-docker-resource-api .......................... SKIPPED
[INFO] cloud-docker-front-end ............................. SKIPPED
[INFO] cloud-docker-admin-server .......................... SKIPPED
[INFO] cloud-docker-config ................................ SKIPPED
[INFO] cloud-docker-eureka ................................ SKIPPED
[INFO] cloud-docker-hystrix-turbine ....................... SKIPPED
[INFO] cloud-docker-menu-service .......................... SKIPPED
[INFO] cloud-docker-redis-service ......................... SKIPPED
[INFO] cloud-docker-resource-service ...................... SKIPPED
[INFO] cloud-docker-user-service .......................... SKIPPED
[INFO] cloud-docker-zipkin-server ......................... SKIPPED
[INFO] cloud-docker-zuul .................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:06 min
[INFO] Finished at: 2017-10-29T18:33:16+08:00
[INFO] Final Memory: 67M/425M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:1.0.0:build (default-cli) on project cloud-docker-parent: Exception caught: basedir D:\working\workspace_tz_myeclipse\spring-cloud-demo\cloud-docker-parent\target does not exist -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

This has more to do with the best way to configure plugins when using multimodule builds in Maven, and not related to this plugin per se. See https://stackoverflow.com/questions/12924634/define-maven-plugins-in-parent-pom-but-only-invoke-plugins-in-child-projects as an example of a few ways to accomplish this.

repo: spotify/docker-maven-plugin


text:
Ubuntu 14.04 LTS binaries and the java8-runtime-headless dependency

It seems that the deployment instructions are not enough to get a Helios cluster running in at least DigitalOcean using their Ubuntu 14.04 images. The more serious issue is that the helios packages depend on "java8-runtime-headless" which does not seem to be available (aptitude search '~Pjava8-runtime-headless' returns zero results). The less serious one is that the package lxc-docker referred to by the doc is not available in Ubuntu 14.04, it's docker.io.

Thanks for the report @ilkka . Do you happen to know what the better package would be to depend on to get a java8 runtime? Would be happy to merge a PR to fix this if you have the time

Well, if the README is correct in stating that Java 7 is enough, java7-runtime-headless is available in Ubuntu 14.04, provided by openjdk-7-jre-headless. I guess building in a Java 7 environment and changing the package control files might be enough to test? I'll try it out when I have some slack.

we upgraded the server-side components to Java 8 in https://github.com/spotify/helios/pull/384 ; sorry that the README is incorrect

authors: ilkka mattnworb

repo: spotify/helios


text:
Scalding jobs fail with object has no attribute 'reducer'

Runtime error:
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/luigi/worker.py", line 229, in _run_task
task.run()
File "/usr/lib/python2.6/dist-packages/luigi/hadoop.py", line 507, in run
self.job_runner().run_job(self)
File "/usr/lib/python2.6/dist-packages/luigi/scalding.py", line 180, in run_job
arglist += ['-D%s' % c for c in job.jobconfs()]
File "/usr/lib/python2.6/dist-packages/luigi/hadoop.py", line 478, in jobconfs
if self.reducer == NotImplemented:
AttributeError: 'UserVectorArtistAggregate' object has no attribute 'reducer'

I'm closing this issue.

[x] It has been inactive for +4 months.
[ ] It's not about luigi core, so not as many users are affected about this.
[ ] The change seems quite big, it's unlikely to be sporadically picked up.
[ ] The owner haven't responded or disappeared.
[ ] I don't understand what this issue is about.
[ ] There exists a reasonable workaround for this.
[ ] We need to check if this hasn't been fixed by now (for old issues).
[ ] This is kind of by design and not a bug.
[ ] Resolving this would probably add a lot of complexity.

Every open issue adds some clutter, and we try to make the issues fewer and make it easier for new collaborators to find. Currently we try to close any issue that meets the first checkbox + one other.
Feel free to reopen this issue at any point if you have the intent to continue to work this. :)

authors: Tarrasch edwardnewett

repo: spotify/luigi


text:
Add support for league/commonmark

league/commonmark is a modern Markdown parser which supports custom syntax and has several community-built extensions.

Hello @colinodell. What are the differences/advantages over http://parsedown.org/ or https://michelf.ca/projects/php-markdown/ (they are the built-in Markdown converters)
You may extend Spress with support for this Markfown parser by plugins

authors: colinodell yosymfony

repo: spress/Spress


text:
@Loadbalanced "WebClient" does not have spring-retry LoadBalancer support just like "RestTemplate.

Question?
@Loadbalanced "WebClient" does not have spring-retry LoadBalancer support just like "RestTemplate.
ReactiveLoadBalancerAutoConfiguration does not have any implementation of Spring RetryTemplate just like LoadBalancerAutoConfiguration.
Can you please help to understand if this feature is missed or do we have any other approach to handle LB retry for WebClient?
If there is a different way to handle Spring RetryTemplate with @LoadBalanced WebClient; then please let me know?
And,
If this feature is a miss; then please confirm the same and also what would be the plan to include this?
Thanks!!

Project Reactor has retry functionality built in

Thanks @spencergibb for a quick reply. so you are suggesting to implement retry feature of Reactor framework with @Loadbalanced WebClient and not using Spring RetryTemplate.
And,
because Project Reactor has retry functionality, Spring RetryTemplate is not implemented with WebClient LB.
Correct??

Spring retry hasn't been updated to be reactive, so yes, that is what I'm suggesting

Thanks!!
I have additional questions on this:

Is there any plan to implement Project Reactor retry feature with @Loadbalanced WebClient?
As @Loadbalanced is Ribbon based; so do we have any plan to have retry feature available with @LoadBalancerClient (which is recommended as Ribbon is in maintenance mode) for reactive starter?

The retry features are not based on ribbon, but spring retry. We don't currently have plans for configurations driven retry for webclient when retry is built in to the Reactor api.

Thanks for all these details.

@spencergibb With the reactor built-in Mono.retry() feature, I believe that the LoadBalancerExchangeFilterFunction does not get re-applied on retries. That means that it keeps retrying with the same host, which isn't great since the host might be having issues, while other hosts might be just fine.
If my understanding is correct, I suggest reopening the ticket and implementing a higher level reactive retry feature that does go through LoadBalancerExchangeFilterFunction on each try.

What I'm observing is that the WebClient code goes through the filters synchronously and then delegates the HTTP connections asnychronously. So if you re-subscribe via retry(), you're not going back through the filters.

authors: Anusien abjimmypro csabakos spencergibb

repo: spring-cloud/spring-cloud-commons


text:
Health check from other service configured with retry policy to config server can hang.

We encountered some strange behavior when we have a service, which is configured to contact the config-service with a retry policy (for instance try for 30 minutes) with regards to that service health check page.
Looks like the same retry policy is used for updating the health information of the config service in that service. However, when the config service is down, this check is retrying and retrying. At that time, the /health page of the service hangs and doesn't show.
We use external automated monitoring on /health to identify the health status. In the above case, it marks the service as down, while it isn't.
I'd guess the health check towards the config server should not take into account the configured retry policy and just show DOWN instantly when it is not there.
Kind regards,
Wouter

It should eventually give up though.  Do you have spring.cloud.config.failFast=true set in your config client?

These are our settings:
spring:
cloud:
config:
failFast: true
retry:
multiplier: 1.1
maxAttempts: 100
maxInterval: 30000
I guess we could indeed fiddle around with those to let the health check page hang less time, but I have the feeling that would only be a work-around.

I guess the question is how fast do u want to give up trying to connect to the config server if it is down.  I don't think you want it to keep retrying too long.

You're right about that. But the issue is that, even if it would only try for 2 minutes, that the /health page of the service is unavailable.

I see your point as well.  @dsyer or @spencergibb does it make sense to try and make the health endpoint available while we continue to try to connect to the config server.  I havent looked at the code, but I can imagine we must be able to return a down/unknown status from the interface while we continue to try and make a connection.

In this case, I would disable the config server health check. The retry is annotation based. I'm unsure how to selectively turn off retry. #260 is related.

Since this is a problem, in principle, for all health indicators, maybe we should look for a solution in spring boot? OTOH it seems like a really bad thing that we made it worse with the retry interceptor. There are ways to solve the problem in Spring Cloud as well. For instance, our health indicator could be aware of the problem and try to extract the target from the proxy and call it directly. Or it could create a new instance of the property source locator. That doesn't seem like a bad idea?

I think if the problem can be fixed in spring boot than I think that sounds like the best solution,

authors: dsyer ryanjbaxter spencergibb wblancqu

repo: spring-cloud/spring-cloud-config


text:
@AutoConfigureWireMock should be @Inherited

We have many similar test classes that all rely on WireMock for mocking the server. To make things easier, we would like to use inheritance. However, @AutoConfigureWireMock is not marked as @Inherited, so we'd still have to annotate each child class.

Are you sure it's not working fine either way?
public class AutoConfigureWireMockRandomPortInheretedApplicationTests extends AutoConfigureWireMockRandomPortApplicationTests {

	@Autowired
	private Service service;

	@Test
	public void should_work_with_inherited_config() throws Exception {
		stubFor(get(urlEqualTo("/test")).willReturn(aResponse()
				.withHeader("Content-Type", "text/plain").withBody("Hello World!")));
		assertThat(this.service.go()).isEqualTo("Hello World!");
	}

}

This code works for me well.

This works, but the context is not reset between the classes. It looks to me like the ExecutionListener checks only whether the test class itself is annotated with AutoConfigureWireMock, and not whether the annotation was inherited.

Ah, I see. I'm trying to write a test that would break with the current implementation.
If the configuration is the same, the context should not be reset, it should be reused. Are you able to show a small sample of when this wouldn't work?

I don't want the context reset, but the mappings/stubbings, and possibly the request counts too.

Ah ok, maybe I can try to check the counts, that should be easy to verify, thanks for the hint.

Sure, thank you for your work! :)

That was fast! Thank you! :)
I was going to add a similar problem with meta-annotations, but I'll open a separate issue for that.

authors: fdw marcingrzejszczak

repo: spring-cloud/spring-cloud-contract


text:
Gradle plugin warning from GenerateClientStubsFromDslTask

Describe the bug
One uses org.springframework.cloud.contract Gradle plugin.
Invoking generateClientStubs task with Gradle version 7.1 you will receive following warning
> Task :xxx:generateClientStubs
The JavaExecHandleBuilder.setMain(String) method has been deprecated. This is scheduled to be removed in Gradle 8.0. Please use the mainClass property instead. Consult the upgrading guide for further information: https://docs.gradle.org/7.4.2/userguide/upgrading_version_7.html#java_exec_properties

Source of the issue (spring-cloud-contract-gradle-plugin): https://github.com/spring-cloud/spring-cloud-contract/blob/8faa11750797c6350218ae444630c73b85c55f27/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/java/org/springframework/cloud/contract/verifier/plugin/GenerateClientStubsFromDslTask.java#L94
See deprecation warning since Gradle 7.1 for JavaExec task

API Documentation: https://docs.gradle.org/7.1/dsl/org.gradle.api.tasks.JavaExec.html#org.gradle.api.tasks.JavaExec:main
Release Notes, Deprecations: https://docs.gradle.org/7.1/userguide/upgrading_version_7.html#java_exec_properties
Gradle Issue: https://github.com/gradle/gradle/issues/17048
Gradle commit: https://github.com/gradle/gradle/commit/5dc1bf4d3fc76791fb720d15a6d5d105e77bce48

Sample
Basically any Gradle (using Gradle 7.1 and newer) project with stubs defined. Will create sample project if necessary.

fixed via https://github.com/spring-cloud/spring-cloud-contract/pull/1774

authors: marcingrzejszczak rivancic


text:
Document how to override memory allocation for each application

As a developer, I'd like to document how to override memory allocation for each application.
Acceptance:
Document the memory allocation override in the context of an application within the stream. Specifically, explain how to use spring.cloud.deployer.kubernetes.environmentVariables and JAVA_OPTIONS= as the optional override.

I don't know what section this should go in. It's not a "Getting Started" style topic and doesn't fit in the "Server Configuration" section since it is an app deployment issue.

I think I'll add an "Application Configuration" section in the "Getting Started" chapter

authors: sabbyanandan trisberg


text:
Provide A Way To Simplify Reading And Caching A Body In A Filter or Predicate

There are already multiple issues(#135 #152 #502) regarding reading request body or form data from original request multiple times. The default answer to that use case is implementing caching of getBody for NettyRoutingFilter to work, since getBody allows only one request to succeed, all following requests fail with java.lang.IllegalStateException: Only one connection receive subscriber allowed. Also due to this limitation HiddenHttpMethodFilter was disabled in Gateway.
I think that having to implement body caching is error prone and not very trivial especially for novices in reactive, and since there were already a lot of questions regarding this issue maybe it makes sense to add such global filter into Gateway out of the box?

Not the most efficient but anything else I've tried will leak like the Titanic.  This is compatible with the retry filter.
public class CopyBodyGlobalFilter implements GlobalFilter, Ordered {

    public static final String CUSTOM_CACHED_REQUEST_BODY_KEY = "customCachedRequestBody";

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        Object body = exchange.getAttributeOrDefault(CUSTOM_CACHED_REQUEST_BODY_KEY,
                null);

        if (body != null) {
            return chain.filter(exchange);
        }

        return DataBufferUtils.join(exchange.getRequest().getBody())
                .map(dataBuffer -> {
                    byte[] bytes = new byte[dataBuffer.readableByteCount()];
                    dataBuffer.read(bytes);
                    DataBufferUtils.release(dataBuffer);
                    return bytes;
                })
                .defaultIfEmpty(new byte[0])
                .doOnNext(bytes -> exchange.getAttributes().put(CUSTOM_CACHED_REQUEST_BODY_KEY, bytes))
                .then(chain.filter(exchange));
    }

    @Override
    public int getOrder() {
        return RouteToRequestUrlFilter.ROUTE_TO_URL_FILTER_ORDER + 1;
    }
}

@Component
public class CustomAdaptCachedBodyGlobalFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        byte[] body = exchange.getAttributeOrDefault(CUSTOM_CACHED_REQUEST_BODY_KEY,
                null);
        DataBufferFactory dataBufferFactory = exchange.getResponse().bufferFactory();

        if (body != null) {
            ServerHttpRequestDecorator decorator = new ServerHttpRequestDecorator(
                    exchange.getRequest()) {
                @Override
                public Flux<DataBuffer> getBody() {
                    return Flux.just(dataBufferFactory.wrap(body));
                }
            };
            return chain.filter(exchange.mutate().request(decorator).build());
        }
        return chain.filter(exchange);
    }

    @Override
    public int getOrder() {
        return RouteToRequestUrlFilter.ROUTE_TO_URL_FILTER_ORDER + 2;
    }
}

This might not be the most efficient, but other solutions I have tried using retain/slice along with discard seem to leak.
This appears pretty stable.
public class CopyBodyGlobalFilter implements GlobalFilter, Ordered {

    public static final String CUSTOM_CACHED_REQUEST_BODY_KEY = "customCachedRequestBody";

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        Object body = exchange.getAttributeOrDefault(CUSTOM_CACHED_REQUEST_BODY_KEY,
                null);

        if (body != null) {
            return chain.filter(exchange);
        }

        return DataBufferUtils.join(exchange.getRequest().getBody())
                .map(dataBuffer -> {
                    byte[] bytes = new byte[dataBuffer.readableByteCount()];
                    dataBuffer.read(bytes);
                    DataBufferUtils.release(dataBuffer);
                    return bytes;
                })
                .defaultIfEmpty(new byte[0])
                .doOnNext(bytes -> exchange.getAttributes().put(CUSTOM_CACHED_REQUEST_BODY_KEY, bytes))
                .then(chain.filter(exchange));
    }

    @Override
    public int getOrder() {
        return RouteToRequestUrlFilter.ROUTE_TO_URL_FILTER_ORDER + 1;
    }
}

@Component
public class CustomAdaptCachedBodyGlobalFilter implements GlobalFilter, Ordered {
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        byte[] body = exchange.getAttributeOrDefault(CUSTOM_CACHED_REQUEST_BODY_KEY,
                null);
        DataBufferFactory dataBufferFactory = exchange.getResponse().bufferFactory();

        if (body != null) {
            ServerHttpRequestDecorator decorator = new ServerHttpRequestDecorator(
                    exchange.getRequest()) {
                @Override
                public Flux<DataBuffer> getBody() {
                    if (body.length > 0) {
                        return Flux.defer(() -> {
                            DataBuffer dataBuffer = dataBufferFactory.allocateBuffer(body.length);
                            dataBuffer.write(body);
                            return Flux.just(dataBuffer);
                        });
                    }
                    return Flux.empty();
                }
            };
            return chain.filter(exchange.mutate().request(decorator).build());
        }
        return chain.filter(exchange);
    }
}

This is actually something we were discussing today as a team, it is something we are considering

Do we know when this will be released, we are eagerly waiting for this change request! thanks

Until there is a version assigned, it is not scheduled.

Good Morning.
@spencergibb ,  you have schedule a version yet?.

If there was it would be under the Milestone section

@dave-fl
Thanks a lot, dude. You really saved my day. I've spending countless hours to find the answer. Finally, this one works for me. No truncated body, No changes on body transfer, really perfect solution!

@spencergibb @ryanjbaxter where can we find the documentation for the feature that supports this?

@DJLB #1121 is still open. Otherwise checkout ec0d906ff3992789a79ab6e3029374dae478aea8

Thanks @spencergibb .  Is it correct to assume this feature is not supported in 2.2.1 for YAML-configureed/non-java-configure routes?

What feature?

@spencergibb  Storing/accessing a cached request body object for a routed request (gleaming from discussion about ReadBodyPredicateFactory here https://github.com/spring-cloud/spring-cloud-gateway/issues/690#issuecomment-443690874)

yaml is not supported

@spencergibb thanks, good to know.  Is supporting this feature for YAML-configured routes a part of the SCG roadmap?  Or should a feature request be made in this case?
Also, regarding YAML support in general—is YAML-routing config for SCG considered second-class to Java-based config in terms of feature support and future development?  Is it being deprecated in any way?

configuration based routing isn't second class at all. I literally can't put a programming language in yaml required to support body-based predicates and filters.

@spencergibb @DJLB  Just noting a pretty simple workaround that might work for some people is to just extend the ReadyBodyPredicateFactory
@Component
public class ReadBodyToStringRoutePredicateFactory extends ReadBodyPredicateFactory {

    @Override
    public AsyncPredicate<ServerWebExchange> applyAsync(Config config) {
        config.setPredicate(String.class, i -> true);
        return super.applyAsync(config);
    }

}

which you can then use in yaml file as :
- ReadBodyToString=

Hello, does anyone know why there was a need to use NettyDataBufferFactory(line 335) instead DataBufferFactory interface? I'm facing an issue because in integration tests the request comes with a different implementation of DataBufferFactory, DefaultDataBufferFactory, and of course, the cast fails.
Thanks!

If anyone else gets the class cast exception during integration tests like so:
java.lang.ClassCastException: class org.springframework.core.io.buffer.DefaultDataBufferFactory cannot be cast to class org.springframework.core.io.buffer.NettyDataBufferFactory (org.springframework.core.io.buffer.DefaultDataBufferFactory and org.springframework.core.io.buffer.NettyDataBufferFactory are in unnamed module of loader 'app')

It seems to be fixed with this PR https://github.com/spring-cloud/spring-cloud-gateway/pull/2193 , so update Spring Cloud Gateway.

@spencergibb @DJLB Just noting a pretty simple workaround that might work for some people, if all they want is a string form of the body, is to just extend the ReadyBodyPredicateFactory
@Component
public class ReadBodyToStringRoutePredicateFactory extends ReadBodyPredicateFactory {

    @Override
    public AsyncPredicate<ServerWebExchange> applyAsync(Config config) {
        config.setPredicate(String.class, i -> true);
        return super.applyAsync(config);
    }

}

which you can then use in yaml file as :
- ReadBodyToString=

This worked for me, I tried using the ModifyRequestBody factory but that did not allow me to set the header from within.
Great job and thanks.

authors: Aloren DJLB DeanJain andresr5 chenxi65535 dave-fl diova hsellik jcastillo-bv mtj8033 ryanjbaxter spencergibb

repo: spring-cloud/spring-cloud-gateway


text:
Zuul#add-host-header=true not work,  ProxyRequestHelper ignore "host" header

my Zuul configurations:
zuul:
  sensitive-headers:
  add-host-header: true

add-host-header property should make Zuul send proxy request with header host,but i found these in ProxyRequestHelper：
	public boolean isIncludedHeader(String headerName) {
		String name = headerName.toLowerCase();
		RequestContext ctx = RequestContext.getCurrentContext();
		if (ctx.containsKey(IGNORED_HEADERS)) {
			Object object = ctx.get(IGNORED_HEADERS);
			if (object instanceof Collection && ((Collection<?>) object).contains(name)) {
				return false;
			}
		}
		switch (name) {
		case "host":
		case "connection":
		case "content-length":
		case "content-encoding":
		case "server":
		case "transfer-encoding":
		case "x-application-context":
			return false;
		default:
			return true;
		}
	}

and this:
public MultiValueMap<String, String> buildZuulRequestHeaders(
			HttpServletRequest request) {
		RequestContext context = RequestContext.getCurrentContext();
		MultiValueMap<String, String> headers = new HttpHeaders();
                // ...
		Map<String, String> zuulRequestHeaders = context.getZuulRequestHeaders();
		for (String header : zuulRequestHeaders.keySet()) {
                        // zuulRequestHeaders constains 'host' header, but isIncludedHeader() method ignore it
			if (isIncludedHeader(header)){
				headers.set(header, zuulRequestHeaders.get(header));
			}
		}
                // ...
		return headers;
	}

but ,in Spring Cloud Finchley.Realse version, like this:
public MultiValueMap<String, String> buildZuulRequestHeaders(
			HttpServletRequest request) {
		RequestContext context = RequestContext.getCurrentContext();
		MultiValueMap<String, String> headers = new HttpHeaders();
                // ...
		Map<String, String> zuulRequestHeaders = context.getZuulRequestHeaders();
		for (String header : zuulRequestHeaders.keySet()) {
                                 // add all zuulRequestHeaders , include 'host' header
				headers.set(header, zuulRequestHeaders.get(header));
		}
                // ...
		return headers;
	}

So this worked in Edgware.SR4?
Can you provide a sample that reproduces it?

sorry for reply late, i miss your message.
I write a demo project. link

Fixed via 6e8ef02

repo: spring-cloud/spring-cloud-netflix