Allow intellisense to recognize files with custom extensions

Currently, pylance fails to parse imported files that end with a custom prefix, this means that we can't have features such as code completion and code navigation on these imported files
Example
Code Snippet
main.py
import somefile

somefile.bla:
def hello():
     pass

Repro Steps

Build two files main.py and somefile as stated above
Put curser on import somefile

Expected behavior
Being able to click on somefile and have all the intellisense features (auto completion for example), maybe by adding the ability
to specify custom extensions (other than .py) in the settings.json
for example:
"python.analysis.customExtensions" = ["bla, "foo"]

Providing such argument will allow pylance to parse files that end with .bla and .foo
Actual behavior
Import "somefile" could not be resolvedPylance[reportMissingImports]
Logs

[Info  - 13:52:10] (26748) Could not import 'somefile' in file '<full_path>/main.py'

I can also see that pylance is indeed checking the correct directory (the file sits next to main.py)
[Info  - 13:52:10] (26748)   Attempting to resolve using root path '<full_path>'

I'm not an expert of Pylance/Pyright, but I believe that this feature can be done by appending user specified custom suffixes to supportedFileExtensions list in pyright importResolver.ts
Related issues: #739, #639, microsoft/pyright#3398
The issues were closed but pylance still fails on files without .py, other users have also expressed that they have faced a similar issue

Can you explain your use case in more detail? Why are you using non-standard file extensions?
How are you able to import a file with a custom extension at runtime? Are you writing a custom import loader that knows about non-standard file extensions?

Can you explain your use case in more detail? Why are you using non-standard file extensions?

Our project takes Python files as input, make some adjustments and changes to the python files and then executes them, we identify the files based on our custom extension.

How are you able to import a file with a custom extension at runtime? Are you writing a custom import loader that knows about non-standard file extensions?

Yes, exactly that, you can write a new custom import loader using Python's built-in importlib

Hi, I see there is still a label "waiting for user response" although @wnakhleh replied.
I will add a bit more info: we are develiping a python-based domain specific language, so we have to use a custom file extentions to be able to differentiate between regular python files and our domain specific language files. Our language extends python – all python capabilities are available for our language, so this enhacement is very important to us.

This use case is pretty far outside the norm — definitely not a targeted use case that was considered when we were writing pyright (the type checker that underlies pylance) or pylance itself.

Thanks for the request. We discussed this with the team and it is not a case that we are able to support.
An option for you would be to use another language server as the base to build the customizations for the DSL.

Using pyinstaller, one can use .spec files to configure the .exe generation. Spec files have proper python syntax, just with a different file extension. It would be quite useful to be able to have intellisense running on .spec files when editing them, and this use is more "inside the norm" than the custom files discussed earlier.
Manually adding the file extensions you want to your config is reasonable, so as not to analyze binary files and such.


Make a logo for Hoaxify.

@Femme-js  I would like to work on this.
Can you please assign this to me??

Assigned

Assigned

@Femme-js any suggestions from your side, which one should we choose.....

@Femme-js any suggestions from your side, which one should we choose.....

the first or third one, i guess choose any

the first or third one, i guess choose any


rewriting hash links forgets to change & into &

I have noticed when when I write

in a template file the template engine turns it into

The problem arises when the URL is, for example, http://www.mysite.co.nz/?sort=5&filter=bar. According to our friends at W3, the ampersand should be escaped in the link (i.e. link should be written as http://www.mysite.co.nz/?sort=5&filter=bar
I had a look at the code and it seems the whole code may need a bit of a cleanup there...
Here is the relevant code, see SSTemplateParser.php line 4654

    /**
     * We convert text
     */
    function Text__finalise(&$res) {
        $text = $res['text'];

        // Unescape any escaped characters in the text, then put back escapes for any single quotes and backslashes
        $text = stripslashes($text);
        $text = addcslashes($text, '\'\\');

        // TODO: This is pretty ugly & gets applied on all files not just html. I wonder if we can make this
        // non-dynamically calculated
        $text = preg_replace(
            '/href\s*\=\s*\"\#/',
            'href="\' . (Config::inst()->get(\'SSViewer\', \'rewrite_hash_links\') ?' .
            ' strip_tags( $_SERVER[\'REQUEST_URI\'] ) : "") .
                \'#',
            $text
        );

        $res['php'] .= '$val .= \'' . $text . '\';' . PHP_EOL;
    }

AND see SSViewer.php line 1054

        $rewrite = Config::inst()->get('SSViewer', 'rewrite_hash_links');
        if($this->rewriteHashlinks && $rewrite) {
            if(strpos($output, '<base') !== false) {
                if($rewrite === 'php') {
                    $thisURLRelativeToBase = "<?php echo strip_tags(\$_SERVER['REQUEST_URI']); ?>";
                } else {
                    $thisURLRelativeToBase = strip_tags($_SERVER['REQUEST_URI']);
                }

                $output = preg_replace('/(]+href *= *)"#/i', '\\1"' . $thisURLRelativeToBase . '#', $output);
            }
        }

Fixed through https://github.com/silverstripe/silverstripe-framework/commit/132e9b3e2fad361ebb4b502b6a37d34d013bfba3


ComponentWillUnmount will be triggered on Android

Environment

RN0.62.2. - Only on Android.
Geolocation.getCurrentPosition  will trigger unwanted componentWillUnmount after the first time accepting the permission. Only happens on android, and this unmount will block the subsequent setState in the success callback.

Same problem here. RN 0.63.3 only on Android


Can not create GreedyProjectionTriangulation object

The following code raises except TypeError: pclpy.pcl.surface.GreedyProjectionTriangulation.PointNormal: No constructor defined!
from pclpy import pcl

o = pcl.surface.GreedyProjectionTriangulation.PointNormal()

Thanks for reporting, the constructor is skipped for this class for some reason. I will look into it.

I'll clean some things and include this fix in v0.9.1


Converge docs

My attempt at writing docs for converge.  Closes #188.
This pull request also fixes a few other typos I ran across in the docs.

Thank you!


value function in collection returns null if the value of the provided key is falsey

Laravel Version
10.47.0
PHP Version
8.2
Database Driver & Version
No response
Description
Setup
When using the value function on a collection like this
$collection = collect([
  [
    'key' => 'good',
    'value' => 'truthy value',
  ],
  [
    'key' => 'bad',
    'value' => '0', // any falsy value like: 0, false, '0', ''
  ]
]);

$collection->where('key', 'bad')->value('value');

Current Behavior
value returns null
Expected Behavior
value function must return '0'
Steps To Reproduce
just open tinker a new Laravel project and paste this code
$collection = collect([
  [
    'key' => 'good',
    'value' => 'truthy value',
  ],
  [
    'key' => 'bad',
    'value' => '0', // any falsy value like: 0, false, '0', ''
  ]
]);

$collection->where('key', 'bad')->value('value'); // this will return `null` instead of '0'

@driesvints the problem isn't fixed or merged yet, can we reopen it and try a different solution?!

There could be a breaking change if we change the behaviour. Right now we have no plans to make changes here sorry.


If-None-Match not working?

Hey guys, I am currently trying to explore the API and having issues requesting files with etag provided. I always get a 200 and never run into a 304, even though I provided the correct E-Tag Header:
If-None-Match "{EF977E3B-81E9-485E-874E-E5A9E03E2184},1"
I am using Postman (with cached turned off) for testing. Also with a different Restclient it is not working.
Any Ideas?
Cheers,
Markus

Hi @markusf, can you let us know what URL you're hitting? That'll help us repro your exact scenario easier.

https://idealerdemo-my.sharepoint.com/_api/v2.0/drive/items/016N7NUIG2SD6ESZAFPVDIQHKIHICZER76/content would be the url

Thanks for confirming - it appears as we do have a bug in precondition evaluation specifically on the use of /content.

Okay, it's good that you can reproduce. Do you already have an idea, when this would be fixed?

Realistically, due to the time of year, I wouldn't expect this to be fixed until towards the end of January at the earliest. But you never know... I'll update when we have some idea of when it will land.

I guess this code is closed-source and we would not have a chance here to collaborate right?
I am just wondering, why such an crucial feature is not working at all.

Any news here?

Is there any update on this topic? We will very soon go- live with our implementation and need this fix

@ificator
Did you have an update on the bubfix. In the earlier discussion you mentioned end of January as expected closure date

@rgregg
Do you have an update on this? Seems like @ificator is not responsive anymore.

I'll figure out where we are on this and report back on Tuesday.

@rgregg
Do you have an update on this topic?

Hi folks: a fix for this issue has been checked in and is still in the deployment process to SharePoint. If everything continues smoothly, it should be broadly deployed in about a week.

Great, thank you!

Hi @rgregg
was the fix deployed?

@rgregg  any update on this topic?

The fix was deployed - if you're still seeing issues please paste in a sample, full, request/response so that we can take a look.


RSpec API request merges array objects

I am not sure if it's exactly RSpec issue, but when I, for example, have the following code in my RSpec API test:
let(:params) {
  { 'fruits' =>
        [ { apples: [{ apple_field: '1' }, { apple_field: '2' }],
           oranges: [{ orange_field: '3' }, { orange_field: '4' }]
         },
         { apples: [{ apple_field: '5' }, { apple_field: '6' }],
           oranges: [{ orange_field: '7' }, { orange_field: '8' }]
         }]
  }
}

it do
  post '/api/v1/fruits', params
  #expect blabla here
end

My controller gets the params looking like this:
{ 'fruits' =>
    [ { apples: [{ apple_field: '1' }, { apple_field: '2' }, { apple_field: '5' }, { apple_field: '6' }],
        oranges: [{ orange_field: '3' }, { orange_field: '4' }, { orange_field: '7' }, { orange_field: '8' }]
      }
    ]
}

So it basically merges them all. When I add some other key to these objects like this:
let(:params) {
  { 'fruits' =>
        [ { some_key: 'some_value', apples: [{ apple_field: '1' }, { apple_field: '2' }],
           oranges: [{ orange_field: '3' }, { orange_field: '4' }]
         },
         { some_key: 'whatever', apples: [{ apple_field: '5' }, { apple_field: '6' }],
           oranges: [{ orange_field: '7' }, { orange_field: '8' }]
         }]
  }
}

They are handled properly and do not get merged. I am using edge Rails and RSpec. Advice please?

I have the same issue
I try send request via rspec, and got them merged...

If you can provide a reproducible isolated example for s @cybdoom that would be a great help

Hi! Thank You for quick response!
Here is the link to my repo on bitbucket (I can not share it as public due
to commercial reasons): https://bitbucket.org/trackerrails
Give me Your bitbucket account if exists and I'll add You to collaborators!
The mentioned spec is app/specs/requests/tracks_spec.rb L:68
Thank You in advantage!
Eugene Narovlyansky, Software Developer
чт, 7 мая 2015 г. в 1:21, Jon Rowe<EMAIL_ADDRESS>
If you can provide a reproducible isolated example for s @cybdoom
https://github.com/cybdoom that would be a great help
—
Reply to this email directly or view it on GitHub
https://github.com/rspec/rspec-rails/issues/985#issuecomment-99628593.

Mistyped in the link, here it is:  https://bitbucket.org/trackerrails
/trackerrails
пт, 8 мая 2015 г. в 18:23, Наровлянский Евгений<EMAIL_ADDRESS>
Hi! Thank You for quick response!
Here is the link to my repo on bitbucket (I can not share it as public due
to commercial reasons): https://bitbucket.org/trackerrails
Give me Your bitbucket account if exists and I'll add You to collaborators!
The mentioned spec is app/specs/requests/tracks_spec.rb L:68
Thank You in advantage!
Eugene Narovlyansky, Software Developer
чт, 7 мая 2015 г. в 1:21, Jon Rowe<EMAIL_ADDRESS>If you can provide a reproducible isolated example for s @cybdoom

https://github.com/cybdoom that would be a great help
—
Reply to this email directly or view it on GitHub
https://github.com/rspec/rspec-rails/issues/985#issuecomment-99628593.

hi @cybdoom none of us can really be added to a private repo for all sorts of horrifying intellectual property and warranty reasons. We need you to either provide a new repo with a reproduction case, or we won't be able to help.
Could you please take the following steps:

initialise a new repo with the correct version of rails
commit just the rails new stuff
do a second commit which includes all of your changes.

Thanks ^_^

I just encountered this problem and made a public repo with an example: https://github.com/meaton-potatoes/rspec-params-bug
I don't believe this is a Rails issue.

I had a similar issue, but with a bit different type of "merging". I had been sending params like this:
put 'https://localhost:3000/api', params: {
  attributes: [
    { id: social_account.id, name: 'User' },
    { network: 'local', name: 'Another User', link: 'https://localhost:3000/another_user', main: true }
  ]
}

But after that request was made params came to the server in such form:
{
  attributes: [
    { id: social_account.id, name: 'User', network: 'local' },
    { name: 'Another User', link: 'https://localhost:3000/another_user', main: true }
  ]
}

And, as you understand, that lead to updating the wrong field for the first user, and not updating the corresponding field for another user.
WHAT ACTUALLY HELPED ME!!!
I just added as: :json to the put request and it fixed the problem:
put 'https://localhost:3000/api', params: {...}, as: :json

🌈🌈🌈


Procbots command labels should follow consistent format

We wish to use labeling going forward to control Procbot implementations. This should follow the:
procbots/<bot>/<command>
format.
[hq edit] connects to https://github.com/resin-io/hq/pull/443

Just adding a note here on updating the README as well to reflect the changes to the commands

Also, given that merging is handled by versionbot, shouldn't
triggerLabels: [ 'flow/ready-to-merge' ]
be changed to triggerLabels: [ 'procbots/versionbot/ready-to-merge' ] as well?
(https://github.com/resin-io-modules/resin-procbots/blob/master/lib/versionbot.ts#L95


Blank line added before function after block comment

Not sure if this is related to the other newline/comment issues or not.  Or intentional?
/********************************************************
  * Helper function for checkAccess()
  * Returns:
  *      false   is not accessible
  *      true    is accessible
  */
-extern(C++) static bool isAccessible(Dsymbol smember, Dsymbol sfunc, AggregateDeclaration dthis, AggregateDeclaration cdscope)
+
+extern (C++) static bool isAccessible(Dsymbol smember, Dsymbol sfunc,
+    AggregateDeclaration dthis, AggregateDeclaration cdscope)
 {

Looks like the newline preservation code doesn't know how to handle the fact that despite the fact that the "extern" is several lines below the start of the comment, it's only one line after the end of the comment.


Update installation.md

Yoga needs to be in lower case. see The name of the given podspec yoga doesn't match the expected one Yoga

Not sure what happened but the boilerplate was able to run correctly so I am going to close this PR.
Could it be an issue of Xcode version?
I was running with Xcode 9+ but apparently it doesn't seem to support conversion to swift 2 so I downloaded Xcode 8.3.3 from apple and ran the project again.


Sneak Preview: ENF Window Mode

not ready to test on devices
UI not changed

This Preview PR will soon be closed. Actual PR for the Feature is https://github.com/corona-warn-app/cwa-app-android/pull/1659.

continued at https://github.com/corona-warn-app/cwa-app-android/pull/1659


[bug] tauri-driver's native webdriver is not always synced with itself.

Describe the bug
Based on a Twitter thread about using WebDriver, a developer seems to have run into a timing issue while running a WebdriverIO test suite on Windows in CI. Link to the failed CI run. Based on the logs, it seems like the following likely took place:

WebdriverIO starts and prepares to run 2 workers 1 at a time, due to the config
WebdriverIO starts tauri-driver using the beforeSession function from the config
tauri-driver is started
tauri-driver starts the native WebDriver tool (msedgedriver.exe)
msedgedriver.exe starts (based on log output)
The first test's session fails to communicate with the socket, citing a socket hang up.
First test fails
tauri-driver is killed based on the afterSession function from the config
Second WebdriverIO session starts for the second spec file
Like step 2, it starts tauri-driver
tauri-driver is started
tauri-driver starts msedgedriver.exe
msedgedriver.exe fails to start, citing the port already being in use
The second test runs, successfully communicating through tauri-driver to msedgedriver.exe to run and pass the test

In short, my conclusion is that there is likely a timing issue between starting tauri-driver and it starting the native WebDriver which causes the test suite to try and communicate with it before it is ready. The second test likely passed because it used the native WebDriver started in the first test and both it and tauri-driver were ready. I cannot reproduce this locally so this is all speculation based on the CI log output and my current understanding of how the typical workflow goes for the test suite.
Reproduction
Cannot reproduce locally. See log here.
Expected behavior
Both tests should pass. The native WebDriver should not fail to start after the first one should have been killed.
Platform and versions
Operating System - Windows, version 10.0.19044 X64
Webview2 - 96.0.1054.41
Visual Studio Build Tools:
   - Visual Studio Build Tools 2022

Node.js environment
  Node.js - 16.14.0
  @tauri-apps/cli - 1.0.0-rc.5
  @tauri-apps/api - 1.0.0-rc.1

Global packages
  npm - 8.3.1
  pnpm - Not installed
  yarn - 1.22.15

Rust environment
  rustup - 1.24.3
  rustc - 1.59.0
  cargo - 1.59.0
  toolchain - stable-x86_64-pc-windows-msvc

App directory structure
/.github
/.svelte-kit
/bin
/build
/node_modules
/sample_data
/src
/src-tauri
/static
/tests

App
  tauri - 1.0.0-rc.2
  tauri-build - 1.0.0-rc.2
  tao - 0.6.2
  wry - 0.13.1
  build-type - bundle
  CSP - default-src blob: data: filesystem: ws: http: https: 'unsafe-eval' 'unsafe-inline'
  distDir - ../build
  devPath - http://<IP_ADDRESS>:3000/
  framework - Svelte

Stack trace
Run yarn test
  yarn test
  shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
yarn run v1.22.17
$ yarn --cwd tests/webdriverio run test
$ wdio run wdio.conf.ts

Execution of 2 workers started at 2022-02-27T22:24:45.882Z

[0-0] RUNNING in undefined - D:\a\Compotes\Compotes\tests\webdriverio\specs\home.ts
[0-0] Starting MSEdgeDriver 98.0.1108.56 (9a336a18eae89157b3c7ea0568a9cbced8ebc3f7) on port 4445
[0-0] Only local connections are allowed.
[0-0] Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping MSEdgeDriver safe.
[0-0] 2022-02-27T22:24:49.628Z ERROR webdriver: RequestError: socket hang up
[0-0]     at ClientRequest.<anonymous> (D:\a\Compotes\Compotes\tests\webdriverio\node_modules\got\dist\source\core\index.js:962:111)
[0-0]     at Object.onceWrapper (node:events:640:26)
[0-0]     at ClientRequest.emit (node:events:532:35)
[0-0]     at ClientRequest.emit (node:domain:475:12)
[0-0]     at ClientRequest.origin.emit (D:\a\Compotes\Compotes\tests\webdriverio\node_modules\@szmarczak\http-timer\dist\source\index.js:43:20)
[0-0]     at Socket.socketOnEnd (node:_http_client:466:9)
[0-0]     at Socket.emit (node:events:532:35)
[0-0]     at Socket.emit (node:domain:475:12)
[0-0]     at endReadableNT (node:internal/streams/readable:1346:12)
[0-0]     at connResetException (node:internal/errors:691:14)
[0-0]     at Socket.socketOnEnd (node:_http_client:466:23)
[0-0]     at Socket.emit (node:events:532:35)
[0-0]     at Socket.emit (node:domain:475:12)
[0-0]     at endReadableNT (node:internal/streams/readable:1346:12)
[0-0]     at processTicksAndRejections (node:internal/process/task_queues:83:21)
[0-0] 2022-02-27T22:24:49.631Z ERROR @wdio/runner: Error: Failed to create session.
[0-0] socket hang up
[0-0]     at startWebDriverSession (D:\a\Compotes\Compotes\tests\webdriverio\node_modules\webdriver\build\utils.js:72:15)
[0-0]     at processTicksAndRejections (node:internal/process/task_queues:96:5)
[0-0]     at async Function.newSession (D:\a\Compotes\Compotes\tests\webdriverio\node_modules\webdriver\build\index.js:42:45)
[0-0]     at async remote (D:\a\Compotes\Compotes\tests\webdriverio\node_modules\webdriverio\build\index.js:73:22)
[0-0]     at async Runner._startSession (D:\a\Compotes\Compotes\tests\webdriverio\node_modules\@wdio\runner\build\index.js:223:56)
[0-0]     at async Runner._initSession (D:\a\Compotes\Compotes\tests\webdriverio\node_modules\@wdio\runner\build\index.js:176:25)
[0-0]     at async Runner.run (D:\a\Compotes\Compotes\tests\webdriverio\node_modules\@wdio\runner\build\index.js:88:19)
[0-0] FAILED in undefined - D:\a\Compotes\Compotes\tests\webdriverio\specs\home.ts
[0-1] Starting MSEdgeDriver 98.0.1108.56 (9a336a18eae89157b3c7ea0568a9cbced8ebc3f7) on port 4445
[0-1] Only local connections are allowed.
[0-1] Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping MSEdgeDriver safe.
[0-1] RUNNING in undefined - D:\a\Compotes\Compotes\tests\webdriverio\specs\operations.ts
[0-1] MSEdgeDriver was started successfully.
[0-0] [1646000692.648][SEVERE]: bind() returned an error: Only one usage of each socket address (protocol/network address/port) is normally permitted. (0x2740)
[0-0] IPv6 port not available. Exiting...
[0-1] PASSED in undefined - D:\a\Compotes\Compotes\tests\webdriverio\specs\operations.ts

 "spec" Reporter:
------------------------------------------------------------------
[webview2 98.0.1108.56 windows #0-1] Running: webview2 (v98.0.1108.56) on windows
[webview2 98.0.1108.56 windows #0-1] Session ID: f4de589355b97094da10a3f5e7076bbf
[webview2 98.0.1108.56 windows #0-1]
[webview2 98.0.1108.56 windows #0-1] » \specs\operations.ts
[webview2 98.0.1108.56 windows #0-1] Operations page
[webview2 98.0.1108.56 windows #0-1]    ✓ can display operations list
[webview2 98.0.1108.56 windows #0-1]
[webview2 98.0.1108.56 windows #0-1] 1 passing (453ms)

Spec Files:	 1 passed, 1 failed, 2 total (100% completed) in 00:00:12

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Error: Process completed with exit code 1.

Additional context
I'm not sure what the solution is. The desired behavior change seems to be two things, for starters

Some way for tauri-driver to communicate that both itself and the child-process running the native WebDriver server is ready
Better syncing between tauri-driver being killed along with the child process which should be killed with it.

Being not able to reproduce it locally will make it annoying to debug and validate that these fixes addressed the underlying problem. Not sure if it can even be reliably reproduced on CI.

Maybe tauri driver shouldn't be killed at "afterSession()" but instead after the whole test suite is finished? This way, it's okay to "sleep" for 1 second (at most) to let tauri-driver start, and then run the whole suite, and the driver is only killed once afterwards.
WDYT?

I hit the same issue.
The test works on my local Windows 10 PC, but not work on Github hosted windows-latest VM.


url changes with textfield change

this is gonna need a rebase with main. Waiting on #15 to make life easier.

Closing in favor of #17


Events

Math magicians : Event.

Create a new directory called logic inside your project
Copy the files calculate.js and operate.js into your logic/ directory
Install big.js using NPM
Analyze the files calculate.js and operate.js, be sure you understand what they do
Import calculate.js in your Calculator.js component

hi @V-Blaze  so should I delete this pull request and restart everything?


Engagement Retry Logic is too Aggresive

Hey Team,
As of now, there is no way to set any retry timing when it comes to failing engagement calls. We've had users blocking tracking requests on certain apps via tools like Duck Duck go, and then see constant retries in the Apptentive SDK.
It would be awesome if we could either set how often the SDK tries to trigger another engagement call, or could even back off to be as aggressive / wait for next app launch / etc. Currently it looks like it just immediately retries after failing constantly and never stops.
Here's an example after a couple of engagement calls were blocks from DuckDuckGo:
https://github.com/apptentive/apptentive-kit-android/assets/6463368/342f3bf9-7b6e-4f4c-ac8b-5a1250e5b9fe

@eddiecrawford did you find a way to stop/reduce it? I am facing the same issue in my app.


feat: added DLRM Data Ingestion subscriptions

Jira link (if applicable)
https://tools.hmcts.net/jira/browse/DTSPO-15481
Change description
Create 3 new subscripts for DLRM Data Ingestion.
Checklist

[x] commit messages are meaningful and follow good commit message guidelines
[x] README and other documentation has been updated / added (if needed)
[x] tests have been updated / new tests has been added (if needed)
[x] Does this PR introduce a breaking change

Plan Result (sandbox_enterprise)
No changes. Your infrastructure matches the configuration.

Requested approval for the 3 new subscriptions from Linda.

Plan Result (prod_video_hearings)
No changes. Your infrastructure matches the configuration.

Plan Result (prod_enterprise)
Plan: 144 to add, 3 to change, 0 to destroy.

Create

module.subscription["DTS-DLRMINGEST-PROD"].azuread_application.app
module.subscription["DTS-DLRMINGEST-PROD"].azuread_application_password.token
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Azure Kubernetes Service Cluster Admin Role"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Azure Kubernetes Service Cluster User Role"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Contributor"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Key Vault Administrator"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Owner"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Reader"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Security Reader"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Storage Blob Data Reader"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.dts_operation_members
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Azure Kubernetes Service Cluster Admin Role-0"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Contributor-0"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Contributor-1"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Contributor-2"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Key Vault Administrator-0"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Key Vault Administrator-1"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Owner-0"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Reader-0"]
module.subscription["DTS-DLRMINGEST-PROD"].azuread_service_principal.sp
module.subscription["DTS-DLRMINGEST-PROD"].azuredevops_serviceendpoint_azurerm.endpoint
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_key_vault.kv
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_key_vault_access_policy.permissions
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_key_vault_secret.aks_admin_group_id
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_key_vault_secret.aks_user_group_id
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_key_vault_secret.sp_app_id
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_key_vault_secret.sp_object_id
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_key_vault_secret.sp_token
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_custom_role_assignments["Application Gateway Backend Health Reader"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_groups["Azure Kubernetes Service Cluster Admin Role"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_groups["Azure Kubernetes Service Cluster User Role"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_groups["Contributor"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_groups["Key Vault Administrator"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_groups["Owner"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_groups["Reader"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_groups["Security Reader"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_groups["Storage Blob Data Reader"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_role_assignments["Key Vault Contributor"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_role_assignments["Monitoring Contributor"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_role_assignments["Network Contributor"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_role_assignments["Storage Account Contributor"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_role_assignments["Storage Blob Data Contributor"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_role_assignment.local_role_assignments["User Access Administrator"]
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_storage_account.sa
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_storage_container.sc
module.subscription["DTS-DLRMINGEST-PROD"].azurerm_subscription.this
module.subscription["DTS-DLRMINGEST-PROD"].random_uuid.app_uuid
module.subscription["DTS-DLRMINGEST-PROD"].time_rotating.rotation_period
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_application.app
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_application_password.token
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group.groups["Azure Kubernetes Service Cluster Admin Role"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group.groups["Azure Kubernetes Service Cluster User Role"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group.groups["Contributor"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group.groups["Key Vault Administrator"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group.groups["Owner"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group.groups["Reader"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group.groups["Security Reader"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group.groups["Storage Blob Data Reader"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group_member.dts_operation_members
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group_member.members["Azure Kubernetes Service Cluster Admin Role-0"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group_member.members["Contributor-0"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group_member.members["Contributor-1"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group_member.members["Contributor-2"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group_member.members["Key Vault Administrator-0"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group_member.members["Key Vault Administrator-1"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group_member.members["Owner-0"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_group_member.members["Reader-0"]
module.subscription["DTS-DLRMINGEST-SBOX"].azuread_service_principal.sp
module.subscription["DTS-DLRMINGEST-SBOX"].azuredevops_serviceendpoint_azurerm.endpoint
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_key_vault.kv
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_key_vault_access_policy.permissions
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_key_vault_secret.aks_admin_group_id
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_key_vault_secret.aks_user_group_id
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_key_vault_secret.sp_app_id
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_key_vault_secret.sp_object_id
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_key_vault_secret.sp_token
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_custom_role_assignments["Application Gateway Backend Health Reader"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_groups["Azure Kubernetes Service Cluster Admin Role"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_groups["Azure Kubernetes Service Cluster User Role"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_groups["Contributor"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_groups["Key Vault Administrator"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_groups["Owner"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_groups["Reader"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_groups["Security Reader"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_groups["Storage Blob Data Reader"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_role_assignments["Key Vault Contributor"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_role_assignments["Monitoring Contributor"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_role_assignments["Network Contributor"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_role_assignments["Storage Account Contributor"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_role_assignments["Storage Blob Data Contributor"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_role_assignment.local_role_assignments["User Access Administrator"]
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_storage_account.sa
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_storage_container.sc
module.subscription["DTS-DLRMINGEST-SBOX"].azurerm_subscription.this
module.subscription["DTS-DLRMINGEST-SBOX"].random_uuid.app_uuid
module.subscription["DTS-DLRMINGEST-SBOX"].time_rotating.rotation_period
module.subscription["DTS-DLRMINGEST-STG"].azuread_application.app
module.subscription["DTS-DLRMINGEST-STG"].azuread_application_password.token
module.subscription["DTS-DLRMINGEST-STG"].azuread_group.groups["Azure Kubernetes Service Cluster Admin Role"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group.groups["Azure Kubernetes Service Cluster User Role"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group.groups["Contributor"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group.groups["Key Vault Administrator"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group.groups["Owner"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group.groups["Reader"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group.groups["Security Reader"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group.groups["Storage Blob Data Reader"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group_member.dts_operation_members
module.subscription["DTS-DLRMINGEST-STG"].azuread_group_member.members["Azure Kubernetes Service Cluster Admin Role-0"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group_member.members["Contributor-0"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group_member.members["Contributor-1"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group_member.members["Contributor-2"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group_member.members["Key Vault Administrator-0"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group_member.members["Key Vault Administrator-1"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group_member.members["Owner-0"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_group_member.members["Reader-0"]
module.subscription["DTS-DLRMINGEST-STG"].azuread_service_principal.sp
module.subscription["DTS-DLRMINGEST-STG"].azuredevops_serviceendpoint_azurerm.endpoint
module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault.kv
module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_access_policy.permissions
module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.aks_admin_group_id
module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.aks_user_group_id
module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.sp_app_id
module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.sp_object_id
module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.sp_token
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_custom_role_assignments["Application Gateway Backend Health Reader"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Azure Kubernetes Service Cluster Admin Role"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Azure Kubernetes Service Cluster User Role"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Contributor"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Key Vault Administrator"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Owner"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Reader"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Security Reader"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Storage Blob Data Reader"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Key Vault Contributor"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Monitoring Contributor"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Network Contributor"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Storage Account Contributor"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Storage Blob Data Contributor"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["User Access Administrator"]
module.subscription["DTS-DLRMINGEST-STG"].azurerm_storage_account.sa
module.subscription["DTS-DLRMINGEST-STG"].azurerm_storage_container.sc
module.subscription["DTS-DLRMINGEST-STG"].azurerm_subscription.this
module.subscription["DTS-DLRMINGEST-STG"].random_uuid.app_uuid
module.subscription["DTS-DLRMINGEST-STG"].time_rotating.rotation_period

Update

module.enterprise.azurerm_management_group.level_3["Heritage-NonProd"]
module.enterprise.azurerm_management_group.level_3["Heritage-Prod"]
module.enterprise.azurerm_management_group.level_3["Heritage-Sandbox"]

Change Result (Click me)

  # module.enterprise.azurerm_management_group.level_3["Heritage-NonProd"] will be updated in-place
  ~ resource "azurerm_management_group" "level_3" {
        id                         = "/providers/Microsoft.Management/managementGroups/Heritage-NonProd"
        name                       = "Heritage-NonProd"
      ~ subscription_ids           = [
          - "9c604868-4643-43b8-9eb1-4c348c739a3e",
          - "ae75b9fb-7d34-4112-82ff-64bd3855ce27",
          - "cad00ede-36df-4e04-ad0b-d34a1e94ef76",
          - "d24c931e-2e6d-4508-8583-85ac42715580",
        ] -> (known after apply)
        # (2 unchanged attributes hidden)
    }

  # module.enterprise.azurerm_management_group.level_3["Heritage-Prod"] will be updated in-place
  ~ resource "azurerm_management_group" "level_3" {
        id                         = "/providers/Microsoft.Management/managementGroups/Heritage-Prod"
        name                       = "Heritage-Prod"
      ~ subscription_ids           = [
          - "17390ec1-5a5e-4a20-afb3-38d8d726ae45",
          - "61432c17-4377-4780-be02-d56e56ef2b07",
          - "c170c61a-f00f-4295-a718-634e27af1597",
        ] -> (known after apply)
        # (2 unchanged attributes hidden)
    }

  # module.enterprise.azurerm_management_group.level_3["Heritage-Sandbox"] will be updated in-place
  ~ resource "azurerm_management_group" "level_3" {
        id                         = "/providers/Microsoft.Management/managementGroups/Heritage-Sandbox"
        name                       = "Heritage-Sandbox"
      ~ subscription_ids           = [] -> (known after apply)
        # (2 unchanged attributes hidden)
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_application.app will be created
  + resource "azuread_application" "app" {
      + app_role_ids                = (known after apply)
      + application_id              = (known after apply)
      + disabled_by_microsoft       = (known after apply)
      + display_name                = "DTS Bootstrap (sub:dts-dlrmingest-prod)"
      + id                          = (known after apply)
      + logo_url                    = (known after apply)
      + oauth2_permission_scope_ids = (known after apply)
      + object_id                   = (known after apply)
      + prevent_duplicate_names     = false
      + publisher_domain            = (known after apply)
      + sign_in_audience            = "AzureADMyOrg"
      + tags                        = (known after apply)
      + template_id                 = (known after apply)

      + api {
          + requested_access_token_version = 1

          + oauth2_permission_scope {
              + admin_consent_description  = "Allow the application to access DTS Bootstrap (sub:dts-dlrmingest-prod) on behalf of the signed-in user."
              + admin_consent_display_name = "Access DTS Bootstrap (sub:dts-dlrmingest-prod)"
              + enabled                    = true
              + id                         = (known after apply)
              + type                       = "User"
              + user_consent_description   = "Allow the application to access DTS Bootstrap (sub:dts-dlrmingest-prod) on your behalf."
              + user_consent_display_name  = "Access DTS Bootstrap (sub:dts-dlrmingest-prod)"
              + value                      = "user_impersonation"
            }
        }

      + required_resource_access {
          + resource_app_id = "00000003-0000-0000-c000-000000000000"

          + resource_access {
              + id   = "06da0dbc-49e2-44d2-8312-53f166ab848a"
              + type = "Scope"
            }
          + resource_access {
              + id   = "5b567255-7703-4780-807c-7be8301ae99b"
              + type = "Role"
            }
          + resource_access {
              + id   = "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30"
              + type = "Role"
            }
        }

      + web {
          + homepage_url = "https://dev.azure.com/hmcts/PlatformOperations"

          + implicit_grant {
              + access_token_issuance_enabled = false
              + id_token_issuance_enabled     = true
            }
        }
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_application_password.token will be created
  + resource "azuread_application_password" "token" {
      + application_object_id = (known after apply)
      + display_name          = (known after apply)
      + end_date              = (known after apply)
      + id                    = (known after apply)
      + key_id                = (known after apply)
      + rotate_when_changed   = (known after apply)
      + start_date            = (known after apply)
      + value                 = (sensitive value)
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Azure Kubernetes Service Cluster Admin Role"] will be created
  + resource "azuread_group" "groups" {
      + auto_subscribe_new_members     = (known after apply)
      + description                    = "Grants aks cluster admin permissions to the DTS-DLRMINGEST-PROD subscription"
      + display_name                   = "DTS AKS Administrators (sub:dts-dlrmingest-prod)"
      + external_senders_allowed       = (known after apply)
      + hide_from_address_lists        = (known after apply)
      + hide_from_outlook_clients      = (known after apply)
      + id                             = (known after apply)
      + mail                           = (known after apply)
      + mail_nickname                  = (known after apply)
      + members                        = (known after apply)
      + object_id                      = (known after apply)
      + onpremises_domain_name         = (known after apply)
      + onpremises_group_type          = (known after apply)
      + onpremises_netbios_name        = (known after apply)
      + onpremises_sam_account_name    = (known after apply)
      + onpremises_security_identifier = (known after apply)
      + onpremises_sync_enabled        = (known after apply)
      + owners                         = (known after apply)
      + preferred_language             = (known after apply)
      + prevent_duplicate_names        = true
      + proxy_addresses                = (known after apply)
      + security_enabled               = true
      + visibility                     = (known after apply)
      + writeback_enabled              = false
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Azure Kubernetes Service Cluster User Role"] will be created
  + resource "azuread_group" "groups" {
      + auto_subscribe_new_members     = (known after apply)
      + description                    = "Grants aks cluster user permissions to the DTS-DLRMINGEST-PROD subscription"
      + display_name                   = "DTS AKS Users (sub:dts-dlrmingest-prod)"
      + external_senders_allowed       = (known after apply)
      + hide_from_address_lists        = (known after apply)
      + hide_from_outlook_clients      = (known after apply)
      + id                             = (known after apply)
      + mail                           = (known after apply)
      + mail_nickname                  = (known after apply)
      + members                        = (known after apply)
      + object_id                      = (known after apply)
      + onpremises_domain_name         = (known after apply)
      + onpremises_group_type          = (known after apply)
      + onpremises_netbios_name        = (known after apply)
      + onpremises_sam_account_name    = (known after apply)
      + onpremises_security_identifier = (known after apply)
      + onpremises_sync_enabled        = (known after apply)
      + owners                         = (known after apply)
      + preferred_language             = (known after apply)
      + prevent_duplicate_names        = true
      + proxy_addresses                = (known after apply)
      + security_enabled               = true
      + visibility                     = (known after apply)
      + writeback_enabled              = false
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Contributor"] will be created
  + resource "azuread_group" "groups" {
      + auto_subscribe_new_members     = (known after apply)
      + description                    = "Grants contributor permissions to the DTS-DLRMINGEST-PROD subscription"
      + display_name                   = "DTS Contributors (sub:dts-dlrmingest-prod)"
      + external_senders_allowed       = (known after apply)
      + hide_from_address_lists        = (known after apply)
      + hide_from_outlook_clients      = (known after apply)
      + id                             = (known after apply)
      + mail                           = (known after apply)
      + mail_nickname                  = (known after apply)
      + members                        = (known after apply)
      + object_id                      = (known after apply)
      + onpremises_domain_name         = (known after apply)
      + onpremises_group_type          = (known after apply)
      + onpremises_netbios_name        = (known after apply)
      + onpremises_sam_account_name    = (known after apply)
      + onpremises_security_identifier = (known after apply)
      + onpremises_sync_enabled        = (known after apply)
      + owners                         = (known after apply)
      + preferred_language             = (known after apply)
      + prevent_duplicate_names        = true
      + proxy_addresses                = (known after apply)
      + security_enabled               = true
      + visibility                     = (known after apply)
      + writeback_enabled              = false
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Key Vault Administrator"] will be created
  + resource "azuread_group" "groups" {
      + auto_subscribe_new_members     = (known after apply)
      + description                    = "Grants key vault administrator permissions to the DTS-DLRMINGEST-PROD subscription"
      + display_name                   = "DTS Key Vault Administrators (sub:dts-dlrmingest-prod)"
      + external_senders_allowed       = (known after apply)
      + hide_from_address_lists        = (known after apply)
      + hide_from_outlook_clients      = (known after apply)
      + id                             = (known after apply)
      + mail                           = (known after apply)
      + mail_nickname                  = (known after apply)
      + members                        = (known after apply)
      + object_id                      = (known after apply)
      + onpremises_domain_name         = (known after apply)
      + onpremises_group_type          = (known after apply)
      + onpremises_netbios_name        = (known after apply)
      + onpremises_sam_account_name    = (known after apply)
      + onpremises_security_identifier = (known after apply)
      + onpremises_sync_enabled        = (known after apply)
      + owners                         = (known after apply)
      + preferred_language             = (known after apply)
      + prevent_duplicate_names        = true
      + proxy_addresses                = (known after apply)
      + security_enabled               = true
      + visibility                     = (known after apply)
      + writeback_enabled              = false
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Owner"] will be created
  + resource "azuread_group" "groups" {
      + auto_subscribe_new_members     = (known after apply)
      + description                    = "Grants owner permissions to the DTS-DLRMINGEST-PROD subscription"
      + display_name                   = "DTS Owners (sub:dts-dlrmingest-prod)"
      + external_senders_allowed       = (known after apply)
      + hide_from_address_lists        = (known after apply)
      + hide_from_outlook_clients      = (known after apply)
      + id                             = (known after apply)
      + mail                           = (known after apply)
      + mail_nickname                  = (known after apply)
      + members                        = (known after apply)
      + object_id                      = (known after apply)
      + onpremises_domain_name         = (known after apply)
      + onpremises_group_type          = (known after apply)
      + onpremises_netbios_name        = (known after apply)
      + onpremises_sam_account_name    = (known after apply)
      + onpremises_security_identifier = (known after apply)
      + onpremises_sync_enabled        = (known after apply)
      + owners                         = (known after apply)
      + preferred_language             = (known after apply)
      + prevent_duplicate_names        = true
      + proxy_addresses                = (known after apply)
      + security_enabled               = true
      + visibility                     = (known after apply)
      + writeback_enabled              = false
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Reader"] will be created
  + resource "azuread_group" "groups" {
      + auto_subscribe_new_members     = (known after apply)
      + description                    = "Grants reader permissions to the DTS-DLRMINGEST-PROD subscription"
      + display_name                   = "DTS Readers (sub:dts-dlrmingest-prod)"
      + external_senders_allowed       = (known after apply)
      + hide_from_address_lists        = (known after apply)
      + hide_from_outlook_clients      = (known after apply)
      + id                             = (known after apply)
      + mail                           = (known after apply)
      + mail_nickname                  = (known after apply)
      + members                        = (known after apply)
      + object_id                      = (known after apply)
      + onpremises_domain_name         = (known after apply)
      + onpremises_group_type          = (known after apply)
      + onpremises_netbios_name        = (known after apply)
      + onpremises_sam_account_name    = (known after apply)
      + onpremises_security_identifier = (known after apply)
      + onpremises_sync_enabled        = (known after apply)
      + owners                         = (known after apply)
      + preferred_language             = (known after apply)
      + prevent_duplicate_names        = true
      + proxy_addresses                = (known after apply)
      + security_enabled               = true
      + visibility                     = (known after apply)
      + writeback_enabled              = false
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Security Reader"] will be created
  + resource "azuread_group" "groups" {
      + auto_subscribe_new_members     = (known after apply)
      + description                    = "Grants security reader permissions to the DTS-DLRMINGEST-PROD subscription"
      + display_name                   = "DTS Security Readers (sub:dts-dlrmingest-prod)"
      + external_senders_allowed       = (known after apply)
      + hide_from_address_lists        = (known after apply)
      + hide_from_outlook_clients      = (known after apply)
      + id                             = (known after apply)
      + mail                           = (known after apply)
      + mail_nickname                  = (known after apply)
      + members                        = (known after apply)
      + object_id                      = (known after apply)
      + onpremises_domain_name         = (known after apply)
      + onpremises_group_type          = (known after apply)
      + onpremises_netbios_name        = (known after apply)
      + onpremises_sam_account_name    = (known after apply)
      + onpremises_security_identifier = (known after apply)
      + onpremises_sync_enabled        = (known after apply)
      + owners                         = (known after apply)
      + preferred_language             = (known after apply)
      + prevent_duplicate_names        = true
      + proxy_addresses                = (known after apply)
      + security_enabled               = true
      + visibility                     = (known after apply)
      + writeback_enabled              = false
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group.groups["Storage Blob Data Reader"] will be created
  + resource "azuread_group" "groups" {
      + auto_subscribe_new_members     = (known after apply)
      + description                    = "Grants storage blob data contributor permissions to the DTS-DLRMINGEST-PROD subscription"
      + display_name                   = "DTS Blob Readers (sub:dts-dlrmingest-prod)"
      + external_senders_allowed       = (known after apply)
      + hide_from_address_lists        = (known after apply)
      + hide_from_outlook_clients      = (known after apply)
      + id                             = (known after apply)
      + mail                           = (known after apply)
      + mail_nickname                  = (known after apply)
      + members                        = (known after apply)
      + object_id                      = (known after apply)
      + onpremises_domain_name         = (known after apply)
      + onpremises_group_type          = (known after apply)
      + onpremises_netbios_name        = (known after apply)
      + onpremises_sam_account_name    = (known after apply)
      + onpremises_security_identifier = (known after apply)
      + onpremises_sync_enabled        = (known after apply)
      + owners                         = (known after apply)
      + preferred_language             = (known after apply)
      + prevent_duplicate_names        = true
      + proxy_addresses                = (known after apply)
      + security_enabled               = true
      + visibility                     = (known after apply)
      + writeback_enabled              = false
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.dts_operation_members will be created
  + resource "azuread_group_member" "dts_operation_members" {
      + group_object_id  = "1a4bada3-4107-47e4-a5d7-aa66a580369a"
      + id               = (known after apply)
      + member_object_id = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Azure Kubernetes Service Cluster Admin Role-0"] will be created
  + resource "azuread_group_member" "members" {
      + group_object_id  = (known after apply)
      + id               = (known after apply)
      + member_object_id = "a6ce5b32-e0a5-419e-ba5c-67863c975941"
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Contributor-0"] will be created
  + resource "azuread_group_member" "members" {
      + group_object_id  = (known after apply)
      + id               = (known after apply)
      + member_object_id = "1a4bada3-4107-47e4-a5d7-aa66a580369a"
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Contributor-1"] will be created
  + resource "azuread_group_member" "members" {
      + group_object_id  = (known after apply)
      + id               = (known after apply)
      + member_object_id = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Contributor-2"] will be created
  + resource "azuread_group_member" "members" {
      + group_object_id  = (known after apply)
      + id               = (known after apply)
      + member_object_id = "0ec60e03-4262-44ce-abcf-83e2131c9207"
    }

  # module.subscription["DTS-DLRMINGEST-PROD"].azuread_group_member.members["Key Vault Administrator-0"] will be created
  + resource "azuread_group_member" "members" {
      + group_object_id  = (known after apply)
      + id               = (known after apply)
      + member_object_id = "1a4bada3-4107-47e4-a5d7-aa66a580369a"
    }

  # module.subscrip

# ...
# ... The maximum length of GitHub Comment is 65536, so the content is omitted by tfcmt.
# ...

store",
          + "Recover",
          + "Backup",
        ]
      + storage_permissions     = [
          + "Backup",
          + "Delete",
          + "DeleteSAS",
          + "Get",
          + "GetSAS",
          + "List",
          + "ListSAS",
          + "Recover",
          + "RegenerateKey",
          + "Restore",
          + "Set",
          + "SetSAS",
          + "Update",
        ]
      + tenant_id               = "531ff96d-0ae9-462a-8d2d-bec7c0b42082"
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.aks_admin_group_id will be created
  + resource "azurerm_key_vault_secret" "aks_admin_group_id" {
      + id                      = (known after apply)
      + key_vault_id            = (known after apply)
      + name                    = "aks-admin-rbac-group-id"
      + resource_id             = (known after apply)
      + resource_versionless_id = (known after apply)
      + value                   = (sensitive value)
      + version                 = (known after apply)
      + versionless_id          = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.aks_user_group_id will be created
  + resource "azurerm_key_vault_secret" "aks_user_group_id" {
      + id                      = (known after apply)
      + key_vault_id            = (known after apply)
      + name                    = "aks-user-rbac-group-id"
      + resource_id             = (known after apply)
      + resource_versionless_id = (known after apply)
      + value                   = (sensitive value)
      + version                 = (known after apply)
      + versionless_id          = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.sp_app_id will be created
  + resource "azurerm_key_vault_secret" "sp_app_id" {
      + id                      = (known after apply)
      + key_vault_id            = (known after apply)
      + name                    = "sp-application-id"
      + resource_id             = (known after apply)
      + resource_versionless_id = (known after apply)
      + value                   = (sensitive value)
      + version                 = (known after apply)
      + versionless_id          = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.sp_object_id will be created
  + resource "azurerm_key_vault_secret" "sp_object_id" {
      + id                      = (known after apply)
      + key_vault_id            = (known after apply)
      + name                    = "sp-object-id"
      + resource_id             = (known after apply)
      + resource_versionless_id = (known after apply)
      + value                   = (sensitive value)
      + version                 = (known after apply)
      + versionless_id          = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_key_vault_secret.sp_token will be created
  + resource "azurerm_key_vault_secret" "sp_token" {
      + id                      = (known after apply)
      + key_vault_id            = (known after apply)
      + name                    = "sp-token"
      + resource_id             = (known after apply)
      + resource_versionless_id = (known after apply)
      + value                   = (sensitive value)
      + version                 = (known after apply)
      + versionless_id          = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_custom_role_assignments["Application Gateway Backend Health Reader"] will be created
  + resource "azurerm_role_assignment" "local_custom_role_assignments" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = (known after apply)
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Azure Kubernetes Service Cluster Admin Role"] will be created
  + resource "azurerm_role_assignment" "local_groups" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Azure Kubernetes Service Cluster Admin Role"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Azure Kubernetes Service Cluster User Role"] will be created
  + resource "azurerm_role_assignment" "local_groups" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Azure Kubernetes Service Cluster User Role"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Contributor"] will be created
  + resource "azurerm_role_assignment" "local_groups" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Contributor"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Key Vault Administrator"] will be created
  + resource "azurerm_role_assignment" "local_groups" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Key Vault Administrator"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Owner"] will be created
  + resource "azurerm_role_assignment" "local_groups" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Owner"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Reader"] will be created
  + resource "azurerm_role_assignment" "local_groups" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Reader"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Security Reader"] will be created
  + resource "azurerm_role_assignment" "local_groups" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Security Reader"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_groups["Storage Blob Data Reader"] will be created
  + resource "azurerm_role_assignment" "local_groups" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Storage Blob Data Reader"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Key Vault Contributor"] will be created
  + resource "azurerm_role_assignment" "local_role_assignments" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Key Vault Contributor"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Monitoring Contributor"] will be created
  + resource "azurerm_role_assignment" "local_role_assignments" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = "e6c7b379-03ba-483d-ae1d-f3cab6579a6f"
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Monitoring Contributor"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Network Contributor"] will be created
  + resource "azurerm_role_assignment" "local_role_assignments" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = "e6c7b379-03ba-483d-ae1d-f3cab6579a6f"
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Network Contributor"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Storage Account Contributor"] will be created
  + resource "azurerm_role_assignment" "local_role_assignments" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Storage Account Contributor"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["Storage Blob Data Contributor"] will be created
  + resource "azurerm_role_assignment" "local_role_assignments" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = (known after apply)
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "Storage Blob Data Contributor"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_role_assignment.local_role_assignments["User Access Administrator"] will be created
  + resource "azurerm_role_assignment" "local_role_assignments" {
      + id                               = (known after apply)
      + name                             = (known after apply)
      + principal_id                     = "63469462-b784-42e8-8a66-20a8840ac84a"
      + principal_type                   = (known after apply)
      + role_definition_id               = (known after apply)
      + role_definition_name             = "User Access Administrator"
      + scope                            = (known after apply)
      + skip_service_principal_aad_check = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_storage_account.sa will be created
  + resource "azurerm_storage_account" "sa" {
      + access_tier                       = (known after apply)
      + account_kind                      = "StorageV2"
      + account_replication_type          = "ZRS"
      + account_tier                      = "Standard"
      + allow_nested_items_to_be_public   = false
      + cross_tenant_replication_enabled  = true
      + default_to_oauth_authentication   = false
      + enable_https_traffic_only         = true
      + id                                = (known after apply)
      + infrastructure_encryption_enabled = false
      + is_hns_enabled                    = false
      + large_file_share_enabled          = (known after apply)
      + location                          = "uksouth"
      + min_tls_version                   = "TLS1_2"
      + name                              = (known after apply)
      + nfsv3_enabled                     = false
      + primary_access_key                = (sensitive value)
      + primary_blob_connection_string    = (sensitive value)
      + primary_blob_endpoint             = (known after apply)
      + primary_blob_host                 = (known after apply)
      + primary_connection_string         = (sensitive value)
      + primary_dfs_endpoint              = (known after apply)
      + primary_dfs_host                  = (known after apply)
      + primary_file_endpoint             = (known after apply)
      + primary_file_host                 = (known after apply)
      + primary_location                  = (known after apply)
      + primary_queue_endpoint            = (known after apply)
      + primary_queue_host                = (known after apply)
      + primary_table_endpoint            = (known after apply)
      + primary_table_host                = (known after apply)
      + primary_web_endpoint              = (known after apply)
      + primary_web_host                  = (known after apply)
      + public_network_access_enabled     = true
      + queue_encryption_key_type         = "Service"
      + resource_group_name               = "azure-control-stg-rg"
      + secondary_access_key              = (sensitive value)
      + secondary_blob_connection_string  = (sensitive value)
      + secondary_blob_endpoint           = (known after apply)
      + secondary_blob_host               = (known after apply)
      + secondary_connection_string       = (sensitive value)
      + secondary_dfs_endpoint            = (known after apply)
      + secondary_dfs_host                = (known after apply)
      + secondary_file_endpoint           = (known after apply)
      + secondary_file_host               = (known after apply)
      + secondary_location                = (known after apply)
      + secondary_queue_endpoint          = (known after apply)
      + secondary_queue_host              = (known after apply)
      + secondary_table_endpoint          = (known after apply)
      + secondary_table_host              = (known after apply)
      + secondary_web_endpoint            = (known after apply)
      + secondary_web_host                = (known after apply)
      + shared_access_key_enabled         = true
      + table_encryption_key_type         = "Service"
      + tags                              = {
          + "application"  = "bais"
          + "builtFrom"    = "hmcts/azure-enterprise"
          + "businessArea" = "Cross-Cutting"
          + "criticality"  = "High"
          + "environment"  = "staging"
        }

      + blob_properties {
          + change_feed_enabled      = false
          + default_service_version  = (known after apply)
          + last_access_time_enabled = false
          + versioning_enabled       = true

          + delete_retention_policy {
              + days = 30
            }
        }
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_storage_container.sc will be created
  + resource "azurerm_storage_container" "sc" {
      + container_access_type   = "private"
      + has_immutability_policy = (known after apply)
      + has_legal_hold          = (known after apply)
      + id                      = (known after apply)
      + metadata                = (known after apply)
      + name                    = "subscription-tfstate"
      + resource_manager_id     = (known after apply)
      + storage_account_name    = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].azurerm_subscription.this will be created
  + resource "azurerm_subscription" "this" {
      + alias             = "DTS-DLRMINGEST-STG"
      + billing_scope_id  = "/providers/Microsoft.Billing/billingAccounts/59232335/enrollmentAccounts/233705"
      + id                = (known after apply)
      + subscription_id   = (known after apply)
      + subscription_name = "DTS-DLRMINGEST-STG"
      + tenant_id         = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].random_uuid.app_uuid will be created
  + resource "random_uuid" "app_uuid" {
      + id     = (known after apply)
      + result = (known after apply)
    }

  # module.subscription["DTS-DLRMINGEST-STG"].time_rotating.rotation_period will be created
  + resource "time_rotating" "rotation_period" {
      + day              = (known after apply)
      + hour             = (known after apply)
      + id               = (known after apply)
      + minute           = (known after apply)
      + month            = (known after apply)
      + rfc3339          = (known after apply)
      + rotation_days    = 90
      + rotation_rfc3339 = (known after apply)
      + second           = (known after apply)
      + unix             = (known after apply)
      + year             = (known after apply)
    }

Plan: 144 to add, 3 to change, 0 to destroy.

Approval for new subscriptions received from Linda.


[Bug]: milvus-backup 0.3(1.0-beta) only backup meta,not including binlog in Milvus 2.2.10

Current Behavior
After backing up the database, only the m
backup.log
eta directory is available in the backup directory "aiprodbak", and there are no binlog files. The meta directory contains only four files: segment_meta.json, partition_meta.json, collection_meta.json and backup_meta.json. The operating system is Debian.
Expected Behavior
No response
Steps To Reproduce
1. download milvus-backup and check version
   ./milvus-backup version  ==>  Version: 1.0-beta
2. config backup.yaml
   ls -l  milvus-backup ==> OK
   mkdir configs
   cd  configs
   vi  backup.yaml
   cd ..
   ./milvus-backup create -n aiprodbak  ==> That's OK and success

backup.log is uploaded.
Environment
Milvus version  2.2.10 is installed using K8S image. OS is Debian 5.10.179-1(uname -a).

Anything else?
backup.yaml
# Configures the system log output.
log:
  level: info # Only supports debug, info, warn, error, panic, or fatal. Default 'info'.
  console: true
  file:
    rootPath: "logs/backup.log"

http:
  simpleResponse: true

# milvus proxy address, compatible to milvus.yaml
milvus:
  address: IPADDRESS
  port: 30002
  authorizationEnabled: true
  # tls mode values [0, 1, 2]
  # 0 is close, 1 is one-way authentication, 2 is two-way authentication.
  tlsMode: 0
  user: "admin"
  password: "aaPASSWD"

# Related configuration of minio, which is responsible for data persistence for Milvus.
minio:
  address: IPADDRESS  # Address of MinIO/S3
  port: 30080   # Port of MinIO/S3
  accessKeyID: minioaaa # accessKeyID of MinIO/S3
  secretAccessKey: minioaaa  # MinIO/S3 encryption string
  useSSL: false # Access to MinIO/S3 with SSL
  useIAM: false
  cloudProvider: "aws"
  iamEndpoint: ""

  bucketName: "milvus-bucket" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
  rootPath: "files" # Milvus storage root path in MinIO/S3, make it the same as your milvus instance

  backupBucketName: "milvus-bucket" # Bucket name to store backup data. Backup data will store to backupBucketName/backupRootPath
  backupRootPath: "backup" # Rootpath to store backup data. Backup data will store to backupBucketName/backupRootPath

backup:
  maxSegmentGroupSize: 2G

milvus is a cluster and backup.yaml is :
Configures the system log output.
log:
level: info # Only supports debug, info, warn, error, panic, or fatal. Default 'info'.
console: true
file:
rootPath: "logs/backup.log"
http:
simpleResponse: true
milvus proxy address, compatible to milvus.yaml
milvus:
address: <IP_ADDRESS>
port: 30001
authorizationEnabled: true
tls mode values [0, 1, 2]
0 is close, 1 is one-way authentication, 2 is two-way authentication.
tlsMode: 0
user: "aiprod"
password: "abxprod"
Related configuration of minio, which is responsible for data persistence for Milvus.
minio:
address: <IP_ADDRESS>  # Address of MinIO/S3
port: 30005   # Port of MinIO/S3
accessKeyID: minioac # accessKeyID of MinIO/S3
secretAccessKey: minioac # MinIO/S3 encryption string
useSSL: false # Access to MinIO/S3 with SSL
useIAM: false
cloudProvider: "aws"
iamEndpoint: ""
bucketName: "milvus-bucket" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
rootPath: "files" # Milvus storage root path in MinIO/S3, make it the same as your milvus instance
backupBucketName: "milvus-bucket" # Bucket name to store backup data. Backup data will store to backupBucketName/backupRootPath
backupRootPath: "backup" # Rootpath to store backup data. Backup data will store to backupBucketName/backupRootPath
backup:
maxSegmentGroupSize: 2G

sorry, milvus version is 2.2.10.

If you deploy Milvus with helm and default value.
the config should be

But I found your config is

Sorry. I change files to file and backup successful.
Thank you very much.


[Feature] Support ElasticSearch 7 as storage

Please answer these questions before submitting pull request

Why submit this pull request?
[ ] Bug fix
[x] New feature provided
[ ] Improve performance

There're many users asking for support to ES7, #3047 #3187 #3000 #2529 , this PR tries to make the OAP backend work with ES7, without breaking the capabilities of ES6.
There're some breaking changes in ES7, since we are (and will) still using ES6-java-client, all the efforts are made by lower level REST client of ES.
In this PR, we don't use high level REST client to ES7, which is more convenient and is used in ES6 storage plugin, by using low level client, we can pass some parameters that ES6 doesn't support, such as if_seq_no, etc.
Some of the parameters are deprecated in ES7, but according to the upgrade strategy of ES, the deprecated parameters should work at least in all the minor versions under a major version, so there may be warnings in the log, but it does no harm, that's as was expected.
@wu-sheng Although the E2E tests passed (locally, and should be the same in Infra Jenkins), I'll propose to mark this as Experimental in the documentation for now, and invite some users to try and if the feedback is positive, we can make it Stable in the future version, documentations should be added later after fully discussed.
Anyone who wants to review this PR, please pay special attention to the ES6 storage plugin, this PR should not break the ES6 plugin in any aspect, thanks.

The e2e codes are almost the same and can be refactor to reuse the ES6 tests, which will be refactored later in another PR, if I can got some time :)

Apply TBD until it's fully discussed and documentations are supplemented

I want to know whether anyone from community will try this locally and in their test env. This looks very challenge for further maintain works, rather than this tests.
This must be based on near 100% test coverage(logically) supports, including e2e, IT tests, unit tests. We don't know when it breaks. And very hard to review.

Seems it's unwise to do ES7 adaptation along with ES6 together, closing for now

Seems it's unwise to do ES7 adaptation along with ES6 together, closing for now

If you want this, in my old-time, I am playing class loader game, which is not easy :) or redistributes a new release should be better.


[RESTEASY-1366]: fixed Jackson2Provider client deserialization…

…regression that was introduced in version 3.0.14 that breaks the Jackson @JsonView feature

Cool, thanks for the patch. Any chance you can also add a testcase? Thanks

@askannon  (otherwise I'll prepare one later this week)

I added tests as well as fixed the same bug for the writer in addition to the reader.

Any chance to get this merged into WildFly 10.1? Without this patch we can't upgrade to WF10 at all because @JsonView is broken.

OK, I'm closing this PR (would have needed you to rebase against current master which changes quite a bit since you opened this), but I've merged your changes on master and added the same testcase you provided but in a different project module.
As for the changes being included in WildFly 10.1, it really depends on WildFly release date; I'm most likely merging this fix to RESTEasy 3.0.x branch, so either 3.0.19.Final will be included in WildFly 10.1.0.Final or you'll have to install it manually afterwards on top WildFly 10.1.0.Final (or current WildFly 10.0.0.Final).

Ah, and thanks a lot for the contribution ;)


Don't scope by removed tenant

Hi,
thanks for keeping this package maintained. You saved lots of time for us and our project.
We've got one issue though. In our project we use applyTenantScopesToDeferredModels() method at the beginning of the app life circle. Then somewhere in the middle of that life circle we call \Landlord::removeTenant('tenant_id') which means we don't want to scope by a tenant_id for all the models we're going to use after the removeTenant call. But instead of not scoping we're getting exception saying that $tenant must be a string key or an instance of \Illuminate\Database\Eloquent\Model. It's all because tenant_id isn't available in tenants property of TenantManager class anymore but the scope was created already and it expects that tenant_id available.
This pull request fixes the issue. Let me know if the issue description isn't clear or the fix has other issues I didn't notice.
Thanks

Seems like I maybe should update applyTenantScopes as well

Seems like I maybe should update applyTenantScopes as well

CC @nunomazer

CC @nunomazer


Add Headless option

We can't use GL extensions without a display, so for headless just use
the CPU operations regardless of the system it's being run on.

Niceeee


Pointing the netlify preview button to deployed branch url

Describe the bug
When I make a change in my CMS and save it, netlify deploys a preview with https://docs.netlify.com/site-deploys/deploy-previews/. This works flawlessly. However when the preview button shows up, it doesn't link to the preview url, but instead to my default website url.
To Reproduce

Go to a "page" collection, in your cms, that deploys a page.
Make a change in the content.
Click on 'save'
Click on 'preview'
Check what the url is (does it match the deployed branch?)

Expected behavior
I'd expect to see the preview button link to the new deploy preview url, instead of the base website url.
Is this how it was intended? Or am I missing something in the code? In its current state, the user would have to go to netlify to find the url name.
Applicable Versions:
netlify-cms-app 2.15.60
netlify-cms-core 2.54.1
netlify-cms 2.10.180
provider: github
CMS configuration
site_url: https://my-website.org # hiding for privacy
publish_mode: editorial_workflow
backend:
  name: git-gateway
  branch: master
  squash_merges: true

local_backend: true

media_folder: static/img
public_folder: /img

## Aliases code here
## Removed, since not fully relevant

collections:
    - label: 'Pages'
      name: 'pages'
      label_singular: 'Page'
      folder: 'content/pages'
      create: true
      format: 'json'
      show_preview_links: true
      nested:
        depth: 100 # max depth to show in the collection tree
        summary: '{{meta}}' # optional summary for a tree node, defaults to the inferred title field
      editor:
        preview: false
      fields:
        - << : *TITLE
          label: Page title for within cms
        - *SEO
        - *PAGE-COMPONENTS

Thanks in advance!

Hello @ottoscholten, @erezrokah,
I would like to on this issue, and I am working on it. May I know where to ask my doubts and what if I am stuck while resolving this issue?

Hi @SYED-RAFI-NAQVI, you can ask any questions in this issue

@SYED-RAFI-NAQVI If you are not working on it then I can take it up :)

Hi @ottoscholten @erezrokah
As there are no assignees can you assign this issue to me.. I would love to work on it

Hi! is there any update on this? thanks!


linux: Enable BPF_UNPRIV_DEFAULT_OFF in 5.15

Description of changes
https://github.com/NixOS/nixpkgs/pull/154994 enabled this only in kernels 5.10 thru 5.14, on the premise that it would be enabled by default in 5.15. However, that's not true—the commit 8a03e56b253e9691c90bc52ca199323d71b96204 referenced in that PR was for 5.16, not 5.15.
This is needed as a mitigation for Spectre v2, which the current kernel configuration warns you about.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

On linux/master:
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 65) config BPF_UNPRIV_DEFAULT_OFF
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 66)    bool "Disable unprivileged BPF by default"
8a03e56b253e9 (Pawan Gupta     2021-10-29 12:43:54 -0700 67)    default y
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 68)    depends on BPF_SYSCALL
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 69)    help
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 70)      Disables unprivileged BPF by default by setting the corresponding
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 71)      /proc/sys/kernel/unprivileged_bpf_disabled knob to 2. An admin can
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 72)      still reenable it by setting it to 0 later on, or permanently
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 73)      disable it by setting it to 1 (from which no other transition to
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 74)      0 is possible anymore).
08389d888287c (Daniel Borkmann 2021-05-11 22:35:17 +0200 75)
8a03e56b253e9 (Pawan Gupta     2021-10-29 12:43:54 -0700 76)      Unprivileged BPF could be used to exploit certain potential
8a03e56b253e9 (Pawan Gupta     2021-10-29 12:43:54 -0700 77)      speculative execution side-channel vulnerabilities on unmitigated
8a03e56b253e9 (Pawan Gupta     2021-10-29 12:43:54 -0700 78)      affected hardware.
8a03e56b253e9 (Pawan Gupta     2021-10-29 12:43:54 -0700 79)
8a03e56b253e9 (Pawan Gupta     2021-10-29 12:43:54 -0700 80)      If you are unsure how to answer this question, answer Y.

❯ git describe 8a03e56b253e9
v5.15-rc3-1146-g8a03e56b253e

So it really should've been in v5.15 and yet it is not on v5.15.30. Am I holding this wrong?

So git describe shows the most recent tag in the commit's tree, which I guess means it should be interpreted as "came after v5.15-rc3" rather than "is included in v5.15-rc3"

Yeah, sure. But even then 5.15-rc4 is before 5.15.
commit 9e1ff307c779ce1f0f810c7ecce3d95bbae40896 (tag: v5.15-rc4)
Author: Linus Torvalds<EMAIL_ADDRESS>Date:   Sun Oct 3 14:08:47 2021 -0700

    Linux 5.15-rc4

commit 8bb7eca972ad531c9b149c0a51ab43a417385813 (tag: v5.15)
Author: Linus Torvalds<EMAIL_ADDRESS>Date:   Sun Oct 31 13:53:10 2021 -0700

    Linux 5.15

I think what happened is that 5.15rc4 and all other 5.15 tags branch off from master in between 5.15rc3 and 8a03e56b253e9, which is why the only tag git describe finds in the commit's tree is rc3

@robintown Can you prepare the backport into release-21.11 according to https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#backporting-changes?

Sure

Backport: https://github.com/NixOS/nixpkgs/pull/165122


CRI-O does not report disk statistics via ListContainerStats CRI call

Description
CRI-O does not report disk usage statistic via the ListContainerStats rpc call.
In the container stat struct writable_layer is currently set to nil which cause to report 0 for used_bytes and inodes_used
https://github.com/kubernetes-sigs/cri-o/blob/4cd5a7c60349be0678d9f1b0657683324c1a2726/server/container_stats.go#L29
Steps to reproduce the issue:
You can observe the issue using crictl -r unix:///var/run/crio/crio.sock stats that is using ListContainerStats and will report zeroes for disk statistics:
Describe the results you received:
CONTAINER           CPU %               MEM                 DISK                INODES
226d6c4186105       4.81                126.3MB             0B                  0
4b4f4d525501c       0.20                33.66MB             0B                  0
5cb52ff953c2a       1.41                25.79MB             0B                  0

Describe the results you expected:
Using containerd will display disk usage statistics:
CONTAINER           CPU %               MEM                 DISK                INODES
28103c8d7ea02       1.51                28.56MB             32.77kB             9
95591751cd28c       3.88                39.46MB             36.86kB             9
a322d22343340       1.66                26MB                20.48kB             5

Output of crio --version:
crio version 1.11.3-dev

we're aware of this, we currently have stats for kube going through cadvisor but the plan is to, of course, move to the CRI calls.

@runcom that's what I assumed but couldn't find any documentation or issue aknowledging this was missing.

mmm yeah, maybe we don't have an issue open, I'll check and open one if there's not. Also, we're always welcoming contributions if you're up to :)

Looks like this has been completed in upstream.


Run proper failure tests using already prepared script

Understand and describe one scenario where KC fails without recovery.
Find a scenario where a new Pod of Keycloak doesn't become ready after 120 seconds

We ran failure test scenarios and here is the below summary of the tests:

AuthorizationCode with 80 users-per-sec was able to reach a maximum throughput of 75 reqs/sec(for a single endpoint) with less than 300 ms response time for all endpoints and 0 failures
AuthorizationCode with 70 users-per-sec with simulated failure of pods, we were able to get 63 reqs/sec(for a single endpoint) with more than 12 seconds response time and about 13% errors, breaking both SLA's we had in mind for this scenario.

Observations:

We found the cache entries are going into only 1 pod, even when the sticky sessions were disabled, we wanted to confirm this in our subsequent runs - #393
We also wanted to define the desirable capacity, given we were only able to get to 75 reqs/sec with a 80 users-per-sec user load for a 3 pod Keycloak setup - #394


Add dependabot configuration

This will add a dependabot config to the repository, which will help by checking dependencies for updates automatically and making useful merge requests.

Thanks!


[BUG]: AnythingLLM Stuck at "--loading available models--"

How are you running AnythingLLM?
Docker (local)
What happened?
I started Ollama with docker:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
I then loaded some models:
ollama pull llama3:8b-instruct-q8_0
ollama pull mxbai-embed-large:335m
ollama pull codellama:7b-code-q8_0

Then I started AnythingLLM with docker:
docker run -d -p 3001:3001 --cap-add SYS_ADMIN -e STORAGE_DIR="/server/storage" -v "D:/db/anythingllm:/server/storage" -v "D:/db/anythingllm/env:/server/.env" --name anything-llm mintplexlabs/anythingllm:master
Then I opened http://localhost:3001 and went to Get Started, selected Ollama and entered http://localhost:11434 and it does not load the available models, it is stuck at:

http://localhost:11434 shows:

http://localhost:11434/api/tags shows:

Are there known steps to reproduce?
I described all the steps above.

heh... I forgot I was in docker... needed to use http://host.docker.internal:11434 instead of http://localhost:3001 and it worked.
Closing for beeing dumb.