Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ucloud/ucloud-cli
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.3.0
Choose a base ref
...
head repository: ucloud/ucloud-cli
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.3.1
Choose a head ref
  • 16 commits
  • 38 files changed
  • 4 contributors

Commits on Jun 12, 2026

  1. feat(oauth): browser login with automatic token lifecycle (0.3.1)

    Add 'ucloud auth login' / 'ucloud auth logout' implementing OAuth 2.0
    authorization-code flow with RFC 8252 loopback auto-capture of the
    callback (--no-browser prints the URL and falls back to manual paste).
    auth_mode on the profile picks exactly one credential mechanism per
    request: oauth profiles send Authorization: Bearer only (stored AK/SK
    stay inert for logout restore), AK/SK and CloudShell signing paths are
    byte-identical to before.
    
    Token lifecycle is fully automatic: proactive refresh before expiry
    (5-minute clock-skew margin), reactive refresh-and-replay-once when the
    gateway rejects a token mid-command (RetCode 174), refresh rotation
    serialized across processes with a file lock plus reread-after-lock,
    and credential/config files written atomically (temp+fsync+rename).
    Token values are redacted across all log sinks and the panic path.
    
    Also fixes: config update --base-url validated against the old gateway
    (chicken-and-egg), login kept a stale project_id from another account,
    init on an oauth profile did not persist the switch back to AK/SK,
    /dev/null was misdetected as an interactive terminal, and
    AggConfigManager held process-lifetime file handles that break
    os.Rename on Windows.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 12, 2026
    Configuration menu
    Copy the full SHA
    6172118 View commit details
    Browse the repository at this point in the history
  2. docs(oauth): authentication guide (EN/CN) and 0.3.1 changelog

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 12, 2026
    Configuration menu
    Copy the full SHA
    e35b724 View commit details
    Browse the repository at this point in the history
  3. fix(oauth): callback server ignores noise requests; tidy login save w…

    …arning; redact oauth error desc
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 12, 2026
    Configuration menu
    Copy the full SHA
    28b8587 View commit details
    Browse the repository at this point in the history
  4. chore: drop internal T0 verification scaffolding from the public branch

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 12, 2026
    Configuration menu
    Copy the full SHA
    5f6104b View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2026

  1. refactor(oauth): centralize service URLs, hosts and endpoint paths in…

    … base/endpoints.go
    
    Move the API gateway base URL, OAuth base URL, client credentials,
    scope, /authorize and /token endpoint paths, and the loopback callback
    constants into one file grouped by service domain. The callback path is
    now a single exported constant (base.OAuthRedirectPath) shared by the
    redirect_uri builder and the callback server's mux, removing a
    cross-file duplicate that had to be kept in sync by hand. No behavior
    change.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 17, 2026
    Configuration menu
    Copy the full SHA
    0ce3c48 View commit details
    Browse the repository at this point in the history
  2. refactor(oauth): inline endpoints.go back into config.go next to othe…

    …r defaults
    
    DefaultBaseURL belongs with the other profile-default constants; a
    dedicated file separated it from its peers. Keep the overridable default
    URLs together (api gateway + oauth) and group the OAuth protocol/loopback
    constants in config.go. No behavior change.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 17, 2026
    Configuration menu
    Copy the full SHA
    4b7c048 View commit details
    Browse the repository at this point in the history
  3. feat(oauth): make OAuth base URL settable via config commands and glo…

    …bal flag
    
    Mirror --base-url: add --oauth-base-url to config add/update, a global
    --oauth-base-url override, and the GlobalFlag/mergeConfigIns plumbing so
    oauth_base_url can be configured without hand-editing config.json — needed
    for environments whose OAuth domain differs from the default.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 17, 2026
    Configuration menu
    Copy the full SHA
    c524a16 View commit details
    Browse the repository at this point in the history
  4. feat(oauth): add --oauth-base-url to auth login for first-time custom…

    …-domain login
    
    A new user targeting a non-default OAuth environment was stuck: the
    global --oauth-base-url is not accepted on the auth command group,
    config update needs an existing profile, and config add requires AK/SK.
    auth login now takes its own --oauth-base-url, usable with no prior
    config and persisted to the profile so later refreshes reuse it.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 17, 2026
    Configuration menu
    Copy the full SHA
    cbd1b05 View commit details
    Browse the repository at this point in the history
  5. revert(oauth): drop config/global --oauth-base-url entry points, keep…

    … auth login only
    
    The config add/update flags and the global --oauth-base-url override added
    in dd60cef were over-built: config add targets AK/SK profiles where an
    oauth domain is meaningless, and the global flag only affects the rare
    refresh path. auth login --oauth-base-url is the one entry point that
    solves the real case (first-time / custom-domain login) and is kept.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 17, 2026
    Configuration menu
    Copy the full SHA
    61b3ee5 View commit details
    Browse the repository at this point in the history
  6. feat(oauth): persist effective oauth_base_url on login; AK/SK profile…

    …s stay omitempty
    
    On login, an oauth profile persists its effective OAuth base URL (the
    --oauth-base-url value, or the built-in default) so it is visible in the
    profile and reused by later refreshes. AK/SK profiles are untouched and
    keep oauth_base_url omitted (omitempty); GetOAuthBaseURL's runtime
    default still applies to old or hand-edited profiles.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    Episkey-G and claude committed Jun 17, 2026
    Configuration menu
    Copy the full SHA
    2b73b75 View commit details
    Browse the repository at this point in the history
  7. Merge pull request #93 from Episkey-G/oauth-browser-login

    feat: OAuth browser login with automatic token lifecycle (0.3.1)
    Ali1213 authored Jun 17, 2026
    Configuration menu
    Copy the full SHA
    8c12f7e View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    42b49df View commit details
    Browse the repository at this point in the history
  9. refactor(umem): simplify memcache create by removing unnecessary para…

    …m struct
    
    - Remove memcacheCreateParams struct and createMemcache helper function
    - Use SDK request object directly since memcache only has one create type
    - Keep redis param structs as they are shared between master-replica and distributed types
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    ucloud-umem-qingpfang and claude committed Jun 17, 2026
    Configuration menu
    Copy the full SHA
    aea3ad9 View commit details
    Browse the repository at this point in the history
  10. refactor(umem): improve flag binding and add parameter validation

    - Use bindRegionS/bindZoneS/bindProjectIDS helpers to reduce code duplication
    - Add name validation with utf8.RuneCountInString for Chinese support
    - Add password validation with len() (ASCII only)
    - Add distributed redis validation: size must be divisible by block-cnt, proxy-size must be multiple of 2
    - Update help text for name and password flags
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    ucloud-umem-qingpfang and claude committed Jun 17, 2026
    Configuration menu
    Copy the full SHA
    85b89b5 View commit details
    Browse the repository at this point in the history
  11. feat(umem): update size default to 2GB and support uregionredis delete

    - Change size-gb default value from 1GB to 2GB
    - Simplify size-gb help text
    - Add support for 'uregionredis' prefix in redis delete command
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    ucloud-umem-qingpfang and claude committed Jun 17, 2026
    Configuration menu
    Copy the full SHA
    10fe685 View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2026

  1. Merge pull request #95 from ucloud-umem-qingpfang/feature/umem-sectio…

    …n-update
    
    Update the new architecture interface of the umem (#94)
    Ali1213 authored Jun 18, 2026
    Configuration menu
    Copy the full SHA
    79ebcdf View commit details
    Browse the repository at this point in the history
Loading