Skip to content

Conversation

@dewi-tik
Copy link
Contributor

Details

Adds a section to the oauth scopes section about email verification. This can then be linked to when required by integration docs. Rather than duplicating the same info across the docs in different locations.


Checklist

  • The documentation has been updated
  • The documentation has been formatted (make docs)

@dewi-tik dewi-tik requested a review from a team as a code owner February 10, 2026 12:04
@dewi-tik dewi-tik self-assigned this Feb 10, 2026
@dewi-tik dewi-tik added area:docs Features or issues related to Docusaurus backport/version-2025.12 Add this label to PRs to backport changes to version-2025.12 labels Feb 10, 2026
@netlify
Copy link

netlify bot commented Feb 10, 2026

Deploy Preview for authentik-integrations ready!

Name Link
🔨 Latest commit 2a665d4
🔍 Latest deploy log https://app.netlify.com/projects/authentik-integrations/deploys/698b354d70f46d0008bca507
😎 Deploy Preview https://deploy-preview-20141--authentik-integrations.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Feb 10, 2026

Deploy Preview for authentik-docs ready!

Name Link
🔨 Latest commit 2a665d4
🔍 Latest deploy log https://app.netlify.com/projects/authentik-docs/deploys/698b354d5bd6300008f59504
😎 Deploy Preview https://deploy-preview-20141--authentik-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@codecov
Copy link

codecov bot commented Feb 10, 2026

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
2952 1 2951 4
View the top 1 failed test(s) by shortest run time
authentik.policies.password.tests.test_policy.TestPasswordPolicy::test_invalid
Stack Traces | 0.01s run time
self = <unittest.case._Outcome object at 0x7fc728b6fb60>
test_case = <authentik.policies.password.tests.test_policy.TestPasswordPolicy testMethod=test_invalid>
subTest = False

    @contextlib.contextmanager
    def testPartExecutor(self, test_case, subTest=False):
        old_success = self.success
        self.success = True
        try:
>           yield

.../hostedtoolcache/Python/3.14.2................../x64/lib/python3.14/unittest/case.py:58: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <authentik.policies.password.tests.test_policy.TestPasswordPolicy testMethod=test_invalid>
result = <TestCaseFunction test_invalid>

    def run(self, result=None):
        if result is None:
            result = self.defaultTestResult()
            startTestRun = getattr(result, 'startTestRun', None)
            stopTestRun = getattr(result, 'stopTestRun', None)
            if startTestRun is not None:
                startTestRun()
        else:
            stopTestRun = None
    
        result.startTest(self)
        try:
            testMethod = getattr(self, self._testMethodName)
            if (getattr(self.__class__, "__unittest_skip__", False) or
                getattr(testMethod, "__unittest_skip__", False)):
                # If the class or method was skipped.
                skip_why = (getattr(self.__class__, '__unittest_skip_why__', '')
                            or getattr(testMethod, '__unittest_skip_why__', ''))
                _addSkip(result, self, skip_why)
                return result
    
            expecting_failure = (
                getattr(self, "__unittest_expecting_failure__", False) or
                getattr(testMethod, "__unittest_expecting_failure__", False)
            )
            outcome = _Outcome(result)
            start_time = time.perf_counter()
            try:
                self._outcome = outcome
    
                with outcome.testPartExecutor(self):
                    self._callSetUp()
                if outcome.success:
                    outcome.expecting_failure = expecting_failure
                    with outcome.testPartExecutor(self):
>                       self._callTestMethod(testMethod)

.../hostedtoolcache/Python/3.14.2................../x64/lib/python3.14/unittest/case.py:669: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <authentik.policies.password.tests.test_policy.TestPasswordPolicy testMethod=test_invalid>
method = <bound method TestPasswordPolicy.test_invalid of <authentik.policies.password.tests.test_policy.TestPasswordPolicy testMethod=test_invalid>>

    def _callTestMethod(self, method):
>       result = method()
                 ^^^^^^^^

.../hostedtoolcache/Python/3.14.2................../x64/lib/python3.14/unittest/case.py:615: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <authentik.policies.password.tests.test_policy.TestPasswordPolicy testMethod=test_invalid>

    def test_invalid(self):
        """Test without password"""
        request = PolicyRequest(get_anonymous_user())
        result: PolicyResult = self.policy.passes(request)
        self.assertFalse(result.passing)
>       self.assertEqual(result.messages[0], "Password not set in context")

.../password/tests/test_policy.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <authentik.policies.password.tests.test_policy.TestPasswordPolicy testMethod=test_invalid>
first = 'Mot de passe non défini dans le contexte'
second = 'Password not set in context', msg = None

    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)

.../hostedtoolcache/Python/3.14.2................../x64/lib/python3.14/unittest/case.py:925: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <authentik.policies.password.tests.test_policy.TestPasswordPolicy testMethod=test_invalid>
first = 'Mot de passe non défini dans le contexte'
second = 'Password not set in context', msg = None

    def assertMultiLineEqual(self, first, second, msg=None):
        """Assert that two multi-line strings are equal."""
        self.assertIsInstance(first, str, "First argument is not a string")
        self.assertIsInstance(second, str, "Second argument is not a string")
    
        if first != second:
            # Don't use difflib if the strings are too long
            if (len(first) > self._diffThreshold or
                len(second) > self._diffThreshold):
                self._baseAssertEqual(first, second, msg)
    
            # Append \n to both strings if either is missing the \n.
            # This allows the final ndiff to show the \n difference. The
            # exception here is if the string is empty, in which case no
            # \n should be added
            first_presplit = first
            second_presplit = second
            if first and second:
                if first[-1] != '\n' or second[-1] != '\n':
                    first_presplit += '\n'
                    second_presplit += '\n'
            elif second and second[-1] != '\n':
                second_presplit += '\n'
            elif first and first[-1] != '\n':
                first_presplit += '\n'
    
            firstlines = first_presplit.splitlines(keepends=True)
            secondlines = second_presplit.splitlines(keepends=True)
    
            # Generate the message and diff, then raise the exception
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            diff = '\n' + ''.join(difflib.ndiff(firstlines, secondlines))
            standardMsg = self._truncateMessage(standardMsg, diff)
>           self.fail(self._formatMessage(msg, standardMsg))

.../hostedtoolcache/Python/3.14.2................../x64/lib/python3.14/unittest/case.py:1291: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <authentik.policies.password.tests.test_policy.TestPasswordPolicy testMethod=test_invalid>
msg = "'Mot de passe non défini dans le contexte' != 'Password not set in context'\n- Mot de passe non défini dans le contexte\n+ Password not set in context\n"

    def fail(self, msg=None):
        """Fail immediately, with the given message."""
>       raise self.failureException(msg)
E       AssertionError: 'Mot de passe non défini dans le contexte' != 'Password not set in context'
E       - Mot de passe non défini dans le contexte
E       + Password not set in context

.../hostedtoolcache/Python/3.14.2................../x64/lib/python3.14/unittest/case.py:750: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@@ -1,5 +1,5 @@
---
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed this because the text is cut off in the sidebar.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 10, 2026

authentik PR Installation instructions

Instructions for docker-compose

Add the following block to your .env file:

AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-6c918185c9e4dd9985d0d2d012e567997dfc7777
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s

Afterwards, run the upgrade commands from the latest release notes.

Instructions for Kubernetes

Add the following block to your values.yml file:

authentik:
    outposts:
        container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
global:
    image:
        repository: ghcr.io/goauthentik/dev-server
        tag: gh-6c918185c9e4dd9985d0d2d012e567997dfc7777

Afterwards, run the upgrade commands from the latest release notes.

@github-project-automation github-project-automation bot moved this from Needs review to In Progress in authentik Core Feb 10, 2026
Co-authored-by: Dominic R <[email protected]>
Signed-off-by: Dewi Roberts <[email protected]>
@dewi-tik dewi-tik requested a review from dominic-r February 10, 2026 13:40
@dewi-tik dewi-tik added the backport/version-2025.10 Add this label to PRs to backport changes to version-2025.10 label Feb 10, 2026
@dominic-r dominic-r enabled auto-merge (squash) February 10, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs Features or issues related to Docusaurus backport/version-2025.10 Add this label to PRs to backport changes to version-2025.10 backport/version-2025.12 Add this label to PRs to backport changes to version-2025.12

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

2 participants