コンテンツへ移動
KAMOUniverse

チェンジログ

何が新しいの?

プラットフォームのすべての改良 それが出荷される

  1. · BillingService

    カバレッジとグループペイロードの更新日を運ぶ

    両面は、現在のPeriodEndとキャンセルAtPeriodEndを報告しています。 日付は、 キャンセル確認は、実際に言う必要があります — "最後にシートを保持する 期間の「抄録」は「3月14日までの座席を保ちましょう」の安心です。 誰かが行動できる安心です.

  2. · kamo-internal

    請求書が必要な時に人々に伝え、支払いを止めましょう

    支払いがこの人が責任を負うとき、ホームページ上のバナー 失敗し、請求ページに直接リンクします。 失敗した支払いまで もはや開いていないアプリとしてだけ現れた — 説明なしの制限 これは、未払いの請求書ではなく、壊れたソフトウェアとして読みます。 調達のみ 彼らが行動することができる請求書: 自分の座席、および管理グループ。 レンダリング 何も省略されていないとき。 キャンセルは、ユーザーが支払う人を見ることができる場所が表示されます。 "キャンセル自動 支払い" 自分の席でアクション, 助けのテキストは、彼らがプレーンに言っている 既に支払った期間の終了まで座席を保ちます。 ザ・オブ・ザ・ ボタンを押しているときの恐怖は、日付の確認の名前です アクセスはすぐに停止します。 「自給者が自分の計画を選ぶように」スイッチがなくなっています。 プランは 組織と内部に支払うすべての人 - 個別またはグループ - 同じプランを購入する。 グループパネルは、組織の計画を明らかにする ピッカーの提供よりも.

  3. · BillingService

    組織ごとの1つの計画、25座席企業の天井および支払を止める方法

    計画は現在、組織レベルの決定であり、他にそれを上書きすることはできません。 自給者やグループマネージャーが親切に自分の読み物を選び、 正しいバグです。 **************** 回答 "このorgesを このアプリは、OR-ing がすべてのライブサブスクリプションを org をターゲットにすることで、 プランのアプリをオンにすると、より高いプランを選択する1席の人 組織全体 組織の計画にすべての支払者をピッキングすると、OR 無害 — サブスクリプションは、同じプランをすべての名前に名前を付けます。 同じです。 OrgPlanServiceは、プランとプランを同じサブスクリプションから読む 請求コンソールは「あなたの計画」と呼びます。そのため、ルールと画面は同意できません。 企業は、組織全体にカウントされ、各々の25席以上が必要です。 請求グループ。 ペイパーのカウントは、グループに分割して、 当日は20席分の50席。 編集は独自のサブスクリプションを除外するので、 縮小は新しいサイズではなく、古いサイズに対して測定されます。 GET /self/alerts は、ホームページバナーを駆動します。 説明なしのアクセス制限 このプロダクトの最悪版です — アプリは開いているのを止め、誰もなぜ言うか、または 読む人はそれを固定できる人です。 請求のためにのみ調達 会員は、管理する座席とグループについて責任を負います。 誰かに伝える 自分の組織のカードは、それがノイズで支払うことができないときに失敗し、ノイズは バナーの読み込みを停止する方法。 POST /self/seat/cancel は、購入したシートに自動支払いを停止します お問い合わせ 常に期間終了時:現在の期間に支払われ、 取り消しは、何も払戻しながらすぐにそのアクセスを取り消します。 そのパスは、プロレーションなしでストライプを要求します。 配線中にキャンセル() の 2 つのバグが見つかりました: - COMPとTRIALのサイレントノップでした。 全身が後ろに座る stripeSubscriptionId null チェックなので、コンパイルまたは試用サブスクリプションが返されます 行がまだACTIVEで200 - 何も変更されたとき、呼び出し主は機能しました。 今、なぜを拒否し、言う. - 即時=trueは危険なままであり、意図的に露出されていない:それはセット CANCELEDは、フォールバックフリーを呼び出し、シートカウント1でACTIVE/FREEを設定します。 25座席のorgは1人の働く人を維持し、24の座席はのために切られました 決して起こらない席数の理由。 entitlement.fail-open は、SecurityService と一致させるためにここに false を設定しています。 /api/security/features は、アプリと機能の画面が読み込まれているものです。 2つのサービス 同じ資格の質問に答えることは、どちらかの回答よりも悪くなります。 確認された安全:すべての6つの活動的な計画はすべての21サービスのためのexplicit列を運びます 以前から付与されたものはすべて拒否されます.

  4. · SecurityService

    権利から解決する役割の承認層のリレー

    ロールは、呼び出し者の権利とその関係から、ここに決定されます 被写体 -- 要求ボディから決して。 自分の役割を名づけることができる身体 誰が支払いを請求するかどうかを聞かせてください。 優先順位: PAYROLL(任意の状態のブロードキャスト、編集)、MANAGER、その後、EMPLOYEE 自分の記録のために。 被写体のスナップショットされたマネージャーが自分自身でカウントされる -- 自分のレポートを承認するラインマネージャーは普通のケースであり、そうしない org-wideの権利が必要です。レビューする他の誰にとっても正しい存在です。 isManagerOf は CLOSED に失敗します: 未解決の報告線は権限ではありません.

  5. · kamo-shared-library

    APPROVE TIMECARD ADJUSTMENTS(197)とFINALIZE PAY PERIODS (198)

    業務の分割が明示的である: 誰がタイムカードを承認しても、 支払期限を過ぎても、自動的に終了することがあります。 MANAGE TIMECARDS(マナエイジ)(183) モジュールのゲートにとどまり、非適度にではないです。 入学はまだ正しいではありません - それは永続的な雇用事実です。 正しい TERMINATEDメンバーから出荷された4つの行動と消える HRが最終タイムカードを生成しなければならないとき、正確に。 NEW RIGHT SEEDSから意図的に不在:それは既存の助成金を運ぶ そして、これらのゲートは誰も持っていなかった機能を持ちます。 正しいニーズだけを追加する SecurityService の再起動 -- KamoInitializer パス無し、DDL 無し。 id は、member rights applied ストアのことです.

  6. · kamo-shared-library

    承認の層の州機械

    従業員は、所有者の決定ごとに、 -> 管理者承認 -> 給与クローズを提出します。 4つのルールは、純粋なトランジションテーブルで強化され、25個のテストでピン留めされています。 1. 管理者は、従業員が提出するまで承認します。 投稿は 従業員自身の主張は、時間が彼らのものであり、完了です。 それを承認せずに承認することは、誰にテストしても承認しません。 2. マネージャーの承認は、従業員をさらに編集からロックアウトします。 3. 管理者MAYは代わって行動します -- 提出するか、承認します -- そしてそれだけです 認可されたルート 過去のルール 1. 記述された理由と行が必要です クリックしたマネージャーと従業員が保管する管理者の両方を記録します。 4。 Payrollは、常に理由でロックを含む任意の状態で編集することができます。 閉じた後の修正は、ルーチンと法的に要求されます。それらを禁止 監査証跡から編集するだけです。 職務の分離は、ロールネーミングではなく、トランジションテーブルに住んでいます。 自分のタイムカードを承認し、管理者は誰かの従業員です。 PAYROLL LOCKEDからカスケードの承認を解除するすべての方法が、 承認を取り消すと、ロックが無効になります。 承認は DATE RANGE にスコープ付けされ、中程度の承認が後続的に存続します サイレントカバーの代わりに、そのスコープの外で編集することは見たことがありません.

  7. · kamo-internal

    会員タイムカードタブとHRSタイムカード設定タブ

    会員タブはSELF-SERVICEのみで、身元に置かれます。 法的な遵守:そのエンドポイントはメンバーIDをまったく受けませんので、構造的に 他人の時間を表示できない。 checkRight は使えません。 神様のモードの下のすべてを真に返し、ページ自身の canViewOtherMemberアカウントまたは関連のない権利を含む メニュー 特定の人のタイムカードに達するHRはあります /hr/attendance の異なる表面は、HR 俳優に帰属します。 計画ビルリングの前に配置されているので、左タブグループに滞在します。 タブの alignRight ml:'auto' を継承します。 HRS ページは、ComingSoonTab の横にある最初の実際のタブを獲得しました。 SETTINGS MENU は、カバレッジテストが両方の指示で必要です。 タブパッドの両方 すべての戻りパスに自分自身; 設定ビュー, タブパネルとモーションは、すべて分割します 供給ゼロ.

  8. · kamo-internal

    /hr/attendanceの回転子およびNavTopの時計制御

    HrTabPlaceholderボディを取り替えて下さい。 ルート, HR TABS エントリー, MANAGE TIMECARDS ゲートとタブi18nキーはすべて既に存在しています。ここで何も登録しません。 毎回読み込まれる不変なパンチログからロスター時間がサーバー側を誘導 走る合計として保たれているのではなく、直進されたパンチショーは、 バグはコンパウンドの代わりに間違った番号を生成します。 時計制御は、NAV REGISTRYではなく、法的およびコンプライアンスの横にある固定クロムです エントリ:レジストリは、2つの固定制御間の位置を表現できません。 badgeKey はデッドコードであり、すべてのレジストリのエントリはドラッグ可能で、ピン不可です。 コンプライアンス時計は、誰かが自分自身から隠すことができるものではありません。 パーシステッドの入学をゲートし、決してチェックレイトをしません。 神のモードの下のすべての権利は、オペレータがすべてのオーガニで時計が表示されます 訪問。 timecardControlApplies は、コントロールとポーリングによって共有されます。 一緒に行く -- その述語の漂流の2つのコピー、および失敗モードはあります フェッチが永遠に動く隠しボタン。 時計の状態は、FOURTH独立した信号です:存在しません(60sハートビート、300s) TTL)、ログアウトおよびゲートの AWAY に自動セットされている Availability status ではなく、 鉛およびサポート ルーティング。 60m2のフロアで、 メディアサービスによるSTOMP中継地 変更; コアNATSは流出せず、損失が少ないので、RESTシードはとにかく必須です.

  9. · kamo-shared-library

    パンチリポジトリのデータベースクロックアクセス

    すべてのパンチのインスタントは、JVM:Podsの再起動とノードから来ません クロックスキュー, 注文する賃金レコードは、どのPodが応答するかによって異なります レコードではない。 SQL 規格 CAST は、 :: キャストがサイレントマングリングされるので、 -- Hibernate 名前付きパラメータプレフィックスとして ':' を読み込み、::timestamp を :timestamp にします.

  10. · kamo-internal

    /api/security/timecards の BFF ルート

    TimecardServiceは、イングレッシブなしでクラスターIPです。 すべてのサービスは健康であり、すべてのビルドは、ブラウザの404sを備えています 緑色 - このプラットフォームで2回既に起こった正確な失敗。 ここの認可無し、意図的に:この層は輸送であり、ハーフチェック それは制御であるという信念を招待します。 ForwardToApi はクエリ文字列を所有しています。 204 は .json() を渡すのではなく 204 として返されます.

  11. · SecurityService

    タイムカードへのセキュリティサービス中継サービス

    認可境界。 TimecardService は、データとエンジンを保持するが、 セッション; これは、セッションを保持し、誰が何をするかを決める, その後、リレー. ザ・オブ・ザ・ 従って、ここを通すことなく、エンジンは到達できません。 SecurityService は、ハンド・ロール・パー・ハンド・オースと anyRequest().permitAll() を実行します。 そのため、すべての方法は、非nullを返すガードで解除します。 セルフサービス endpoints はメンバー ID をまったく受けません。メンバーはセッションから来ています。 他の人に行動する構造的に不可能です。 HRエンドポイントゲート MANAGE TIMECARDS(183). 入学は、正しいのではなく、永続雇用の行から回答されますので、 ゴッドモード演算子は、彼らが見ているすべてのオーガニゼーションに登録されていない。 SUDO MEMBER ID は、: isSelf() 上流は偽装を扱います 対象となるメンバーとしてセッションするので、相手のパンチがなければ 社員自身で記録。 timecard.service.url は configmap で EXPLICITLY を設定しています。 手数料.service.url どこにもセットされ、生産は、サービスがJavaのリテラルに依存します rename は、コンフィグ内のコンフィグで何も実行時に壊れます.

  12. · kamo-shared-library

    ワークデイバケット、パイプラインのステージ2

    解決された間隔は、アロケータの準備が整った、毎営業日秒になります。 間隔は、それが交差するすべての営業日境界でSPLITです:22:00-06:00シフト 深夜営業日以内に1日と6日の2時間です。 アトリビュート 開始日のスパン全体が毎日稼働時間と7日間のルールになります 毎晩の作業員に誤りがあります。 これは、ビジネスの期限が主張したDIFFERENTのアトリビューションを意図的に決定します パンチ。 パンチは、食事/休息の評価、例外のために1日付 --を運びます キューと従業員がシフトとして見えるもの - オーバータイムカウントのニーズ 実際に落ちた仕事の日と仕事週を通した時間。 両方とも 正しい、両方必要とされ、それらを膨脹することはトラップです。 WORKWEEKの境界線を横断するシフトは、2週間に貢献します オーバータイム合計; いずれかのすべてにカウントすることは両方のために間違っています。 秒単位で蓄積します。 テストはDSTの転移、50時間の両方をカバーします カリフォルニア州の週の割り当てを通したスパン、およびパンチ.

  13. · InitializerService

    KI登録とスキーマ移行

    表はddl-autoから来ています。このランナーはHibernateができないものだけを供給します。 1つのオープンプライマリ割り当てと1つのオープンペイレートの部分的なユニークなインデックス ウィンドウと、バックエンド専用のデータベースの半分の REVOKE です。 @Order(0) なので、後者の JPA SELECT の前に、40001 再試行 Yugabyte はオンラインスキーマの変更と ddl-auto 中に発行されたステートメントを行うため レースを失います。 @EnableJpaRepositoriesでcom.kamo.z.shared.hr.timecardを登録します。 @EntityScan がワイルドカードであり、パッケージを省略する際の明示的な配列です。 ビルドはまだ成功を報告しながら、コンテクストを占有するので、ランナーが実行しません.

  14. · kamo-shared-library

    仕事週と仕事日の境界

    ワークウィークはFLSAの過時間単位です--固定、規則的に168-hourを再帰して下さい 期間 -- 支払期間ではありません。 隔週の期間は正確に2つを保持します 半月または毎月の期間は、常に僅かなものを保持するので、 過払いと過払いの両方の合計で時間の計算オーバータイム 一度の期間がエクスポートされると固定できません。 仕事日の境界は別々に運ばれ、必ずしも深夜ではありません。 ツイート 06:00 start は、夜のスタッフのための標準的な修正です。 22:00-06:00 シフトを続けます 2つの半日にわたってそれを分割するのではなく1つの営業日は、それが何になります 日々の過時間と7日連続のルールは、すべてで機能します。 境界線は、ZonedDateTime によって解決される壁時間の時です、従って 06:00 滞在します 06:00 に 23- または 25 時間 日. ピンのトランジションとピンを1つテストする インスタントはロサンゼルスとコルカタの異なる営業日です。 レコードのゾーンは、後に派生するのではなく、パンチ上に持続します.

  15. · kamo-shared-library

    インターバル解像度、計算パイプラインのステージ1

    パンチは分解されたスパンになります。 値型ではなく、純粋、合計、および上 すべてのステージは、永続的なコンテキストなしでフィクスチャーテスト可能です。 デュレーション.betweenから瞬時に来る, 決して壁クロック減算. DSTのストーリー全体とテストピン全体です。22:00-06:00シフトはSEVENです。 スプリング・フォワードとNINEをフォールバックに渡る時間。 壁の時計を引くこと 両方のための計算8 - 1つの過払い、1つの過払い、1日中 9時間の夜を静かに失います。 信じられないほどのものは、推測するのではなく、未解決に戻ってきます。 クローズド シフトは EXCEPTION です: それを開いた accrues absurd 時間残して下さい、自動閉鎖 a スケジュールされたエンド・アンダー・レポート、固定キャップは、誰も目撃した番号を発明します。 働いた日のために何も支払うゼロとして最終的なものでなければなりません。 食事は、自動引き起こされないパンチされます。 TRANSFERは1つのスパンを閉め、開きます シフトを終わらずに次は、食事のタイミングとシフト長の適格性 コストセンター間の中シフト移動を続けていきます.

  16. · kamo-shared-library

    非ピラミッドオーバータイムアロケータと管轄プリセット

    規則は、このライブラリで既に使用されているrequireRule形状のDataです。 コードブランチなので、カリフォルニアはリライトの代わりに設定行です。 配分順序は負荷軸受けです:毎日規則の最も高いしきい値優先順位(13時間) CAの日は1.5xの2xそして4hで1h、1.5xの5hではないです)、そして7thです 連続した日、週単位の NET は毎日プレミアムです。 その最後のステップは、ピラミッドを防ぐものです。そして、それは一つの海軍エンジンです ログイン カリフォルニアの5〜10日は10のプレミアム時間です。20ではありません。 エンジンは毎日、同じ10時間、そしてすべての個々の規則のために毎週支払う 実行中にテストパスを渡します。 アソシエータはまた、時間の保存を主張します 間違ったペイチェックを戻すのではなく、アウトしてスローします。 プリセット:FLSA連邦、カリフォルニア、アラスカ、ネバダ、コロラド州.

  17. · kamo-internal

    ブラウザにorgタイムゾーンを渡す

    クライアントの組織モデルはタイムゾーンフィールド、useFormatters と next-intl を持っていなかった timeZone と timezoneService のバックエンドコール 404'd を使わずに両方設定できます。 ブラウザのゾーンにレンダーされるタイムスタンプと、SSRのサーバーのタイムスタンプが毎回レンダリングされます。 サブセットではなく、すべての27 TimezoneType値をミラーリングします。 部分的なマップは マッピングされていないorgがブラウザゾーンに落ちるサイレントハーフミラー 信号無し。 GMT は、UTC ではなくヨーロッパ/ロンドンにマップします。BST を観察するので、閉じる 一日中時間半を1時間半ずつシフト。 org ゾーンは DISPLAY フォールバックのみです。 生産のcensusは、すべての13のorgsを発見しました 会員がPACIFIC/EAST/ARIZONA/UTC/に及ぶ間非接触PACIFICのデフォルト レコードのタイムカードゾーンは、代わりに作業現場から来ています.

  18. · SecurityService

    メニュー

    timezoneService.ts は、このエンドポイントを記述して存在していたので呼び出しました。 クライアントが404を飲み、UTCに解決しました。 そもそも useFormatters と next-intl は両方とも timeZone で設定されています。 timestamp はブラウザのゾーンでレンダリングします。 ヨーロッパ/ロンドン、BST を観察する「GMT」。 Identity はセッションのみから来ています: SecurityService は allowAll を実行します。 ハンド・ロール・パー・ハンドラーのauth なので、リクエストからアイデンティティを読み込むハンドラ 全く制御がありません。 @EnableJpaRepositoriesでcom.kamo.z.shared.hr.timecardを登録します。 そのリストは @ComponentScan/@EntityScan がワイルドカードでありながら、explicit 配列を省略 パッケージは、CrashLooping デプロイ前の 2 個の文書化された原因です.

  19. · kamo-shared-library

    WorkSite、管轄区域のアンカー

    WorkLocation: TeamMember.workLocation ではなく、WorkSite の名前を付ける オフィス/リモート列列と、その名前による2番目の記号は、すべての grep で衝突します。 ZoneId は、TimezoneType ではなく、その enum's 27 を含んだものです。 値が複数の州の雇用主を覆うことができないため、それはNULLではない 信頼できる地帯の層だけ-生産のあらゆるorgは無接触に坐ります PACIFIC のデフォルト.

  20. · kamo-shared-library

    雇用と効果的な割り当ての修正

    会員ではなく、ASSIGNMENTを参照します。 それは、 同時位置、29 CFR 778.115の重く平均の規則的な率、 複数のサイト リーガルと仕事の費用は、まったく明白です。 ManagerMemberId は、チームメンバーのマネージャーからリビジョン時にスナップショットされます。 誰が承認したかを再編成することはできません。 roster のファインダーは、member rights applied で非適格にビルドされていない: クエリ TeamMember-typed なので、付与されたすべてのオーガナの所有者を省略し、何も返さない 適用される権利が剥がされたTERMINATEDメンバー - 正確に人 その最終タイムカードのHRはまだ生産しなければならない.

  21. · kamo-shared-library

    有効な、付属の支払率

    この組織の前に、このプラットフォーム上の従業員の補償は存在しません。 それは要求されます:FLSAの規則的な率に対して時間超過は計算されます、CAは要求します 賃金明細書の率、およびレートなしで輸出は給与を与えます 何も消費しません。 レイズは新しい矢印です。 エクスポートされた期間内で有効なレートは、 レトロな調整、サイレントリライトなし。 決して /api/security/members/{id} を経由して露出しないで下さい -- そのエンドポイントは右にチェックしません つまり、会社内の全ての給与を漏れてしまうため、レートを割っておきます.

  22. · kamo-shared-library

    パンチログと監査イベントのみ

    NARROW Repository インターフェイスでは、JpaRepository: deleteAllInBatch は使用できません。 そしてバルクJPQLバイパスのエンティティティコールバック、従ってインターフェイス シェイプは作成しますです アドバイザリーではなく、本物だけを申請する。 インスタント + IANA ゾーン + 営業日がすべて持続するので、期間は計算されます インスタントからDSTは無料で正しい - 22:00-06:00シフトは7時間です 壁に置く間、落下バックのまわりでそして9に 両方の8を計算します。 updatable=false は、凍結したパンチの列では使用しません: Hibernate 失敗するのではなく、UPDATEから黙って省略します.

  23. · kamo-shared-library

    Timezone-of-recordソルバー

    権限の注文作業場所 -> メンバー -> org -> UTC. 仕事現場は勝ちます。 wage-and-hour ルールは、作業が実行される場所に従う。 このセッションは、無接触のPACIFICのすべての13のorgsを発見した デフォルトでは、63 人のメンバーの 38 人がタイムゾーンをまったく使用していません。 スパンパシフィック、イーストン、アリゾナ、UTC、インド - 13.5時間のスプレッド。 オルガン したがって、デフォルトは真実の使用可能なソースではありません。そのため、WorkSite.zoneId NULLではなく、重量を運ぶ。 ヨーロッパ/ロンドンである*** 'GMT'の文字列ではなくUTCに戻ってフォールズ BSTを観察する。 比類のないサイトゾーンは、投げるのではなく、 ゾーンを解決する拒否は、実際に作業した時間を記録することを拒否します.

  24. · kamo-shared-library

    共有WORMの拒絶ガード

    @Column(updatable=false) は、不変性を強制しません。 UPDATEから列を省略し、スタイル・ライティングは成功するようなものです。 唯一の作業ガードは、投げる@PreUpdateです.

  25. · kamo-shared-library

    ドメイン列列とポイントインタイムバージョンのリゾルバ

    Enums は、コールサイトの @Enumerated(STRING) です。ORDINAL は数値を生成します。 範囲 CHECK を含むと、SchemaCleanupRunner のインリスト スイープ 意図的にスキップし、すべての新しい値に手元で広まっている必要があります。 解決者は、決してインスタンスを消費するウィンドウによって解決します 候補者セットで閉じたウィンドウを最新の状態に保つ -- 監督は閉じます すべてのウィンドウが、現在のものなので、 open-rows-only クエリは何も返しません 過去の瞬間、レトロな支払いと監査の再構築を中断します。 オーバーラップ 推測するよりもむしろ投げる.

  26. · kamo-internal

    座席に支払うメンバーを表示し、第2者の提供を停止する

    トランスレーションキーとコンポーネント無しで出荷されるカバレッジエンドポイントなので、 答えを問う - 座席に支払う人 - それでも尋ねる場所がなかった。 SeatCoveragePanelはそれを尋ね、答えはそれの横に自己支払のパネルを供給します: 組織またはグループが既に座席を覆っている人 自分のカードで別の購入チャンスを提供しました。 オファーがなかった 既存のカバレッジの知識は、みんなに示されていました。 グループプランも取り消すことができます。 計画削除可能 — ライブサブスクリプションでポイントをまだ削除する 請求が拒否されるため、請求は拒否されません。 組織が既に支払った人を追加すると、代わりに拒否されます 何もしないので、ボタンはそれ自体を説明しています.

  27. · BillingService

    団体の計画をキャンセルし、1人で2回払いを止める

    最後の出荷時の3つのギャップ: 計画のあるグループは、決して削除できませんでした。 delete() は、ライブ中に拒否します サブスクリプションが存在する — 正しい、グループ行が指す唯一のものだから ストライプサブスクリプション — しかし、キャンセル方法がなかったので、保護策は デッドエンド。キャンセルPlan()は座席を最初に解放しますので、ロースターは行くことができません 人は、もはや存在しない席を保持していると主張しています。 組織がすでに座席を購入している人を追加すると、今は拒否されます takeOverFromOrg はそうでなければ言います。 つまり2回を2回充電する方法です。 1人で何も捕まらない:サブスクリプションメンバーのユニークは per-subscription と AccountLicense は、どれもまったく宣言します。 誰かを動かす 組織のグループへの請求書は、管理者が行う本当のことです。 許可 — 事故ではなく、意図的に意図的に。 BillingGroupScopeInterceptor は /api/billing/groups/{uuid}/** リクエストごとにバインド 呼び出し者の組織に。 ハンドラは既にチェックしておらず、これはチェックされていない これらのチェックはパーハンドラであり、グループが現在持っているので、それらを置き換えます。 お金を使うサブリソース。 次のルートは何も継承しない 上記のルールが適用されます。 ハンドラよりも意図的に狭い: 誰が行動するのかではなく、組織が行動するのかを解決します。 不審な回答に漂流します。 未知のグループIDが通過するので、 ハンドラは、id がどこかにあるか確認するのではなく「見つけられない」と答えます.

  28. · kamo-internal

    人を置くことができるグループと支払い

    グループを作成すると、名前を生成し、他に何も生成しません。誰を追加しても、方法はありません マネージャーが計画を選択するために、どこに支払うべきか。 グループを開く 誰がショー 座席を待ち受けている人、そしてその上でいる計画は、 座席購入 カナニカルメンバーピッカーを使って、誰に支払うかを尋ねます。 送信するために使用される 組織のアカウントuidは、すべてのグループが請求された理由です 組織; 支払いは、管理者と管理者からサーバー側を解決しました accountUid は、ワイヤ上にはまったくありません。 ルースターは、待ち合わせから座席を持つことを区別します。 置くマネージャー 5席の8名様が3名様の同僚にではなくアクセスできないと伝えています それらから見つける.

  29. · BillingService

    請求グループが終わるまで終わりに働かせ、何もセルフペイの充満を停止して下さい

    グループが集うようになり、マネージャーのカードでプランを購入し、手札を手に 席外。 存在しない: 唯一の操作が作成され、承認される 削除すると、グループを作ったオーナーがラベルをつけて使用する方法がない。 BillingGroupSeatService は、お金の動きと資格が発行されるところです。 記録保管とは別に、ゲートをスキップする新しいルートは追加できません。 subscribe() create() は、 create() ではなく create() が呼び出される前に、 create() は拒否されます。 ライブ・ストライプ・サブスクリプションを開く — 未承認のグループ、レガシー・ワン、マネージャー カードやシートキャップの違反が止まらない。 2つの欠陥は、グループ請求書を間違った人にした: - 受取人は何のアカウントだったリクエストボディの名前、チェックされていない、および コンソールは組織の送信をしました。 組織に請求されるグループは、 請求グループ; 組織自身のサブスクリプションの2番目の名前です。 受給者は管理者から導き出され、2つは合意を主張しています 何も請求される前に。 accountUid の送信は、Outright を拒否されます。 -AccountForMemberは、メンバーの最古のアカウント会員リンクを再利用します。 組織のアカウントに追加した人は、組織のアカウントです。 validatePersonalAccountForMember は、代わりにプライマリメンバーによって識別します。 アカウントが人に属していると言う唯一のフィールド。 所有者が自分のグループを管理する場所, 「カード」と「組織の」 カード」は本物と同じアカウントの行と同じストライプの顧客であり、 コードは、それらを区別することができます。 紙ではなく、確認しない限り拒否されます お問い合わせ 別々に、2つのライブバグが見つかりました。 - /self/seat は、メンバーを請求し、シートを発行しません。 create() と呼ばれる と返された; サブスクリプションメンバーの行とアカウントがないので、 毎月カードが請求された間に、買い手はライセンスを失いました。 - @Transactional in AccountBillingService がプライベートメソッドにドリフトしたので、 Spring はそれを無視し、すべてのトランザクションでトランザクションなしで実行されるAccountForMember を保証します。 ツイート 2 の間の失敗は、次の検索ができないアカウントを orphaned を保存します 参照して、次の呼び出しは2番目の呼び出しを作成しました。 /self/coverage は新しい: 何もしなかった "私のシートの支払い" に答えます。 すでにカバーされている人が2番目の席を提供しているのを止めることも 自分のカード.

  30. · InitializerService

    実際に支払うことができるグループのためのスキーマ

    3人のランナー: BillingGroupRosterMigration は、グループのメンバーである billing pay group members を作成します。 何かを買った前に支払うべき手段。 org id は非正規化されます。 そのため、データベースは「メンバーは1つのアクティブ課金グループに1つあります。 組織は、部分的なユニークです。 1人で支払う2組は2組 シート1枚分の料金、スキーマの他の何もキャッチしません。 サブスクリプションメンバーのユニークは、サブスクリプションごとに記述され、アカウントライセンスは他にありません。 **************** は、課金 group uid を account subscriptions に追加します。 2つの部分的なユニークで3列のユニークを交換します。 それを拡張する 4つの列は機能しません — NULL は、ここにユニークなインデックスの中に異なるので、 グループ以外の行は、制約されることはありません。 BillingPayGroupColumnsMigration は Market id、seat limit およびステータス、およびマークを追加します。 既存のグループ LEGACY。 リクエストをuidするアカウントに請求されたもの 体が運ばれ、コンソールが組織に送られたので、そのアカウント uid は ほとんど間違っています。 どのカードが意味されているか推測する安全な方法はありません。 間違った手札を間違った人だと推測するので、チャージポイントで拒否されます 修理の代わりに。 最初の実行は、再試行の問題が発生した理由を示しています。両方の置換インデックスは、 40001は、アクセスをシリアライズできませんでした, ランナーは「スキップ」を記録し、実行しました, そして、 古い制約のDROPが成功しました。 この修正の衝突よりも厳密に悪化している、まったくユニークさはありません。 DDL ステートメントはシリアライズの失敗に再試行し、ドロップはスキップされます 両方の交換が所定の位置に確認されない限り、完全に.

君の宇宙は待ってる

数分で無料で開始できます。準備ができたらいつでも製品を追加できます。移行も新しいログインも不要です。

クレジットカード不要